/
tsps
/
ai_tools
Обзор
Документация
Войти
/
tsps
/
ai_tools
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
master
app/api/summary.py
62 строки
3 KB
Василий Петров
Добавлено апи саммаризации
29 апр 2026, 23:09
29 апр 2026, 23:09
48413bb
Код
Авторство
О чём код?
""" HTTP-эндпоинты для сервиса саммаризации. """ import logging from fastapi import APIRouter, HTTPException, Request, status from pydantic import BaseModel, Field logger = logging.getLogger(__name__) router = APIRouter(prefix="/ai", tags=["ai: summary"]) class SummaryRequest(BaseModel): """Запрос на саммаризацию текста.""" text: str = Field(..., min_length=1, max_length=50000, description="Исходный текст для сжатия") class SummaryResponse(BaseModel): """Ответ с результатом саммаризации.""" summary: str = Field(..., description="Сгенерированное краткое содержание") @router.post("/summary", response_model=SummaryResponse) def create_summary(request: Request, payload: SummaryRequest) -> SummaryResponse: """ Генерация краткого содержания переданного текста. Аргументы: request: объект запроса FastAPI для доступа к состоянию приложения. payload: тело запроса с исходным текстом. Возвращает: Сгенерированное краткое содержание. Исключения: HTTPException 400: если текст невалиден или пуст. HTTPException 500: при ошибке инициализации модели или инференса. """ # Берём сервис, инициализированный на старте приложения (main.py) service = request.app.state.summ_service try: summary_text = service.summarize(payload.text) return SummaryResponse(summary=summary_text) except ValueError as e: raise HTTPException( status_code=status.HTTP_400_BAD_REQUEST, detail=str(e) ) except RuntimeError as e: logger.error("Ошибка сервиса саммаризации: %s", e) raise HTTPException( status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, detail="Не удалось выполнить саммаризацию" ) except Exception as e: logger.exception("Необработанная ошибка при саммаризации: %s", e) raise HTTPException( status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, detail="Внутренняя ошибка сервера" )