Files
llm-gateway-sub-backup/docs/summary_api.md
2025-08-11 18:56:38 +09:00

5.2 KiB

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

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

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

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

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

  • 작업이 진행 중일 경우:
    {
      "status": "processing",
      "results": {}
    }
  • 작업이 완료되었을 경우:
    {
      "status": "completed",
      "results": {
        "gpt_summary": "GPT 요약 결과...",
        "qwen_summary": "QWEN 요약 결과...",
        "gemini_summary": "Gemini 요약 결과...",
        "claude_summary": "Claude 요약 결과..."
      }
    }
  • 잘못된 task_id일 경우:
    {
      "error": "Invalid task_id"
    }

cURL Example

curl -X 'GET' \
  'http://localhost:8888/task_summary/your_generated_task_id'