Files
llm-gateway-sub-backup/workspace/routers/dummy_router.py
2025-08-11 18:56:38 +09:00

69 lines
2.1 KiB
Python

from typing import Optional
from fastapi import APIRouter, Depends, Form, Request
from services.inference_service import InferenceHandler
from utils.checking_keys import get_api_key
router = APIRouter(prefix="/dummy", tags=["Dummy"])
# ✅ POST:DUMMY
@router.post(
"/extract/outer",
summary="더미 응답 생성",
description="""### **요약**
실제 모델 추론이나 파일 업로드 없이, 지정된 모델의 응답 형식을 테스트하기 위한 더미(dummy) 결과를 생성합니다.
### **작동 방식**
- 요청 시, 시스템에 미리 저장된 더미 응답(`dummy_response.json`)을 즉시 반환합니다.
- 실제 OCR, LLM 추론 등 어떠한 백그라운드 작업도 수행하지 않습니다.
- 네트워크나 모델 성능에 관계없이 API 응답 구조를 빠르게 확인하는 용도로 사용됩니다.
### **입력 (multipart/form-data)**
- `model` (선택): 응답 형식의 기준이 될 모델 이름. (기본값: `dummy`)
- 이 값은 실제 추론에 사용되지 않으며, 형식 테스트용으로만 기능합니다.
### **출력 (application/json)**
- **즉시 반환**:
```json
{
"filename": "dummy_input.pdf",
"dummy_model": {
"ocr_model": "dummy",
"llm_model": "dummy",
"api_url": "dummy"
},
"time": {
"duration_sec": "0.00",
"started_at": "...",
"ended_at": "..."
},
"fields": {},
"parsed": "dummy",
"generated": "dummy",
"processed": {
"dummy response"
}
}
```
""",
)
async def extract_outer(
request_info: Request,
model: Optional[str] = Form(
default="dummy", description="실제 추론 없이 포맷 테스트용으로 사용됩니다."
),
api_key: str = Depends(get_api_key),
):
return await InferenceHandler.handle_extract_background(
request_id=None,
result_id=None,
input_file=None,
schema_file=None,
prompt_file=None,
mode="dummy",
model_list=[model],
request_info=request_info,
api_key=api_key,
)