원 레포랑 완전 분리
This commit is contained in:
86
workspace/routers/llm_summation.py
Normal file
86
workspace/routers/llm_summation.py
Normal file
@@ -0,0 +1,86 @@
|
||||
import logging
|
||||
|
||||
from fastapi import APIRouter, BackgroundTasks, Depends
|
||||
from pydantic import BaseModel
|
||||
from services.report import (
|
||||
ask_ollama_qwen,
|
||||
dialog_ask_gemini,
|
||||
run_all_models,
|
||||
tasks_store,
|
||||
total_summation,
|
||||
)
|
||||
from utils.checking_keys import create_key
|
||||
from utils.logging_utils import EndpointLogger
|
||||
|
||||
# ------------------------------------------
|
||||
|
||||
# 로깅 설정
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
router = APIRouter(tags=["summary"])
|
||||
|
||||
|
||||
class SummaryRequest(BaseModel):
|
||||
text: str
|
||||
|
||||
|
||||
@router.post("/summary") # STT 요약 모델
|
||||
async def summarize(
|
||||
request: SummaryRequest, endpoint_logger: EndpointLogger = Depends(EndpointLogger)
|
||||
):
|
||||
endpoint_logger.log(
|
||||
model="gpt-4.1-mini, qwen3:custom, gemini-2.5-flash, claude-3-7-sonnet-latest",
|
||||
input_filename="None",
|
||||
prompt_filename="None",
|
||||
context_length=len(request.text),
|
||||
)
|
||||
|
||||
results = await total_summation(request.text)
|
||||
return {"summary_results": results}
|
||||
|
||||
|
||||
@router.post("/ollama_summary") # ollama 모델 전용
|
||||
async def ollama_summary(
|
||||
request: SummaryRequest, endpoint_logger: EndpointLogger = Depends(EndpointLogger)
|
||||
):
|
||||
endpoint_logger.log(
|
||||
model="qwen3:custom",
|
||||
input_filename="None",
|
||||
prompt_filename="None",
|
||||
context_length=len(request.text),
|
||||
)
|
||||
|
||||
results = await ask_ollama_qwen(request.text)
|
||||
return {"summary_results": results}
|
||||
|
||||
|
||||
@router.post("/gemini_summary")
|
||||
async def gemini_summary(request: SummaryRequest):
|
||||
results = await dialog_ask_gemini(request.text)
|
||||
return {"summary_results": results}
|
||||
|
||||
|
||||
@router.post("/task_summary") # 모델 별 전체 요약
|
||||
async def task_summary(
|
||||
request: SummaryRequest,
|
||||
background_tasks: BackgroundTasks,
|
||||
endpoint_logger: EndpointLogger = Depends(EndpointLogger),
|
||||
):
|
||||
endpoint_logger.log(
|
||||
model="gpt-4.1-mini, qwen3:custom, gemini-2.5-flash, claude-3-7-sonnet-latest",
|
||||
input_filename="None",
|
||||
prompt_filename="None",
|
||||
context_length=len(request.text),
|
||||
)
|
||||
|
||||
task_id = create_key()
|
||||
background_tasks.add_task(run_all_models, request.text, task_id)
|
||||
return {"task_id": task_id}
|
||||
|
||||
|
||||
@router.get("/task_summary/{task_id}") # 모델 별 요약 조회
|
||||
async def get_status(task_id: str):
|
||||
task = tasks_store.get(task_id)
|
||||
if not task:
|
||||
return {"error": "Invalid task_id"}
|
||||
return task
|
||||
Reference in New Issue
Block a user