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, )