# Summary API 기능 명세서 제공된 코드를 기반으로 `summary` 태그로 그룹화된 API에 대한 기능 명세서입니다. --- ## 1. 통합 요약 생성 (STT 요약) 여러 LLM 모델을 동시에 호출하여 입력된 텍스트에 대한 요약 결과를 통합하여 반환합니다. * **Endpoint:** `/summary` * **Method:** `POST` * **Tag:** `summary` * **Description:** * 하나의 텍스트 입력을 받아 내부적으로 구성된 여러 모델(gpt-4.1-mini, qwen3:custom, gemini-2.5-flash, claude-3-7-sonnet-latest 등)을 통해 요약을 실행하고, 그 결과를 종합하여 반환합니다. * 동기적으로 처리되며, 모든 모델의 요약이 완료될 때까지 응답을 대기합니다. ### Request Body | 필드명 | 타입 | 필수 여부 | 설명 | | :--- | :--- | :--- | :--- | | `text` | `string` | Y | 요약할 원본 텍스트 | ### Response Body | 필드명 | 타입 | 설명 | | :--- | :--- | :--- | | `summary_results` | `object` | 각 모델별 요약 결과가 포함된 객체 | ### cURL Example ```bash curl -X 'POST' \ 'http://localhost:8888/summary' \ -H 'Content-Type: application/json' \ -d '{ "text": "오늘 회의에서는 3분기 신제품 출시 계획에 대해 논의했습니다. 주요 안건은..." }' ``` --- ## 2. Ollama 모델 요약 생성 Ollama를 통해 호스팅되는 `qwen` 모델을 사용하여 텍스트를 요약합니다. * **Endpoint:** `/ollama_summary` * **Method:** `POST` * **Tag:** `summary` * **Description:** * 지정된 `qwen` 모델만을 사용하여 텍스트 요약을 수행합니다. ### Request Body | 필드명 | 타입 | 필수 여부 | 설명 | | :--- | :--- | :--- | :--- | | `text` | `string` | Y | 요약할 원본 텍스트 | ### Response Body | 필드명 | 타입 | 설명 | | :--- | :--- | :--- | | `summary_results` | `string` | `qwen` 모델의 요약 결과 | ### cURL Example ```bash curl -X 'POST' \ 'http://localhost:8888/ollama_summary' \ -H 'Content-Type: application/json' \ -d '{ "text": "Ollama QWEN 모델을 테스트하기 위한 샘플 텍스트입니다." }' ``` --- ## 3. Gemini 모델 요약 생성 Gemini 모델을 사용하여 텍스트를 요약합니다. * **Endpoint:** `/gemini_summary` * **Method:** `POST` * **Tag:** `summary` * **Description:** * Gemini 모델만을 사용하여 텍스트 요약을 수행합니다. ### Request Body | 필드명 | 타입 | 필수 여부 | 설명 | | :--- | :--- | :--- | :--- | | `text` | `string` | Y | 요약할 원본 텍스트 | ### Response Body | 필드명 | 타입 | 설명 | | :--- | :--- | :--- | | `summary_results` | `string` | Gemini 모델의 요약 결과 | ### cURL Example ```bash curl -X 'POST' \ 'http://localhost:8888/gemini_summary' \ -H 'Content-Type: application/json' \ -d '{ "text": "Gemini 모델을 테스트하기 위한 샘플 텍스트입니다." }' ``` --- ## 4. 비동기 요약 작업 생성 모든 모델을 사용하여 텍스트 요약을 수행하는 백그라운드 작업을 시작합니다. * **Endpoint:** `/task_summary` * **Method:** `POST` * **Tag:** `summary` * **Description:** * 요약 작업을 백그라운드에서 실행하도록 요청하고, 즉시 작업 ID(`task_id`)를 반환합니다. * 실제 요약 결과는 반환된 `task_id`를 사용하여 `/task_summary/{task_id}` 엔드포인트에서 조회해야 합니다. ### Request Body | 필드명 | 타입 | 필수 여부 | 설명 | | :--- | :--- | :--- | :--- | | `text` | `string` | Y | 요약할 원본 텍스트 | ### Response Body | 필드명 | 타입 | 설명 | | :--- | :--- | :--- | | `task_id` | `string` | 생성된 백그라운드 작업의 고유 ID | ### cURL Example ```bash curl -X 'POST' \ 'http://localhost:8888/task_summary' \ -H 'Content-Type: application/json' \ -d '{ "text": "이것은 비동기 요약 작업을 테스트하기 위한 긴 텍스트입니다..." }' ``` --- ## 5. 비동기 요약 작업 결과 조회 `task_summary`를 통해 생성된 백그라운드 작업의 상태와 결과를 조회합니다. * **Endpoint:** `/task_summary/{task_id}` * **Method:** `GET` * **Tag:** `summary` * **Description:** * `task_id`를 사용하여 특정 요약 작업의 진행 상태(예: 처리 중, 완료) 및 완료 시 요약 결과를 확인합니다. ### Path Parameters | 파라미터명 | 타입 | 필수 여부 | 설명 | | :--- | :--- | :--- | :--- | | `task_id` | `string` | Y | 조회할 작업의 고유 ID | ### Response Body * **작업이 진행 중일 경우:** ```json { "status": "processing", "results": {} } ``` * **작업이 완료되었을 경우:** ```json { "status": "completed", "results": { "gpt_summary": "GPT 요약 결과...", "qwen_summary": "QWEN 요약 결과...", "gemini_summary": "Gemini 요약 결과...", "claude_summary": "Claude 요약 결과..." } } ``` * **잘못된 `task_id`일 경우:** ```json { "error": "Invalid task_id" } ``` ### cURL Example ```bash curl -X 'GET' \ 'http://localhost:8888/task_summary/your_generated_task_id' ```