원 레포랑 완전 분리
This commit is contained in:
198
docs/summary_api.md
Normal file
198
docs/summary_api.md
Normal file
@@ -0,0 +1,198 @@
|
||||
# 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'
|
||||
```
|
||||
Reference in New Issue
Block a user