38 lines
828 B
Python
38 lines
828 B
Python
from fastapi import APIRouter
|
|
from typing import Annotated
|
|
from fastapi import Depends
|
|
|
|
from app.models.dto.text_request import TextRequest
|
|
from app.models.response.moderation_response import ModerationResponse
|
|
from app.services.text_moderation_service import TextModerationService
|
|
|
|
|
|
from app.core.dependencies import (
|
|
get_text_moderation_service
|
|
)
|
|
|
|
router = APIRouter(
|
|
prefix="/api/v1/moderation",
|
|
tags=["Moderation"]
|
|
)
|
|
|
|
|
|
@router.post(
|
|
"/text",
|
|
response_model=ModerationResponse
|
|
)
|
|
def moderate_text(
|
|
request: TextRequest,
|
|
service: Annotated[
|
|
TextModerationService,
|
|
Depends(get_text_moderation_service)
|
|
]
|
|
):
|
|
prediction = service.moderate(request.text)
|
|
|
|
return ModerationResponse(
|
|
approved=prediction.approved,
|
|
score=prediction.score,
|
|
reason=prediction.reason
|
|
)
|