69 lines
2.1 KiB
Python
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,
|
|
)
|