Initial commit

This commit is contained in:
b24503@hanmaceng.co.kr
2025-01-07 09:11:27 +09:00
commit fc3ead893a
14 changed files with 752 additions and 0 deletions

60
README.md Executable file
View File

@@ -0,0 +1,60 @@
# FastAPI LLM Inference Framework
## 개요
### 목적
* FastAPI를 이용한 대규모 언어 모델(LLM) 서빙 및 추론 환경 제공
### 특징
* **LLM**을 활용하여 입력 텍스트 기반의 추론 수행
* **다중 모델 지원:** 여러 모델에 대해 순차적으로 추론 가능
* **유연한 배치 처리:** 대용량 CSV 데이터를 분할하여 효율적으로 처리
* **Redis + RQ 큐**를 활용한 비동기 작업 관리 및 확장성 제공
---
## 사용하기
### 빌드
```
docker compose build
```
Dockerfile 상 변경은 없으나 디펜던시 변경 또는 환경 설정 업데이트가 있는 경우, `--no-cache` 옵션을 사용하여 캐시 없이 재빌드가 가능합니다.
### 실행
```
docker compose up
```
`docker-compose.yml`의 실행 진입점은 다음과 같습니다:
```
entrypoint: uvicorn main:app --reload --host 0.0.0.0 --port 8000
```
---
## API
### API 문서 확인
FastAPI의 자동 생성 API 문서를 확인하려면:
```
http://localhost:8000/docs
```
### 주요 API 엔드포인트
1. **추론 시작** (`POST /start-inference/`):
- CSV 데이터와 모델 리스트를 업로드하여 추론 작업 시작
- 결과 파일은 자동으로 저장됨
2. **결과 병합** (`GET /merge-results/`):
- `processed` 디렉토리에 저장된 모든 `_result.csv` 파일을 병합하여 하나의 CSV 파일로 통합합니다.
- 병합된 최종 결과는 `processed/final_result.csv`로 저장되며, 이 파일의 경로가 응답으로 반환됩니다.
- **사용 사례**:
- 다중 모델 추론 결과를 한곳에 통합하여 분석하려는 경우.
- 배치별로 나뉜 결과를 단일 파일로 결합하려는 경우.
3. **최신 결과 다운로드** (`GET /download-latest`):
- 가장 최근에 완료된 추론 결과를 다운로드
---