First commit
This commit is contained in:
122
README.md
Normal file
122
README.md
Normal file
@@ -0,0 +1,122 @@
|
||||
# LLM Gateway Macro
|
||||
|
||||
OCR(광학 문자 인식) 결과를 파싱하고, 지정된 LLM(거대 언어 모델)을 통해 처리한 후, 정제된 결과를 반환하는 API 게이트웨이입니다.
|
||||
|
||||
다양한 LLM 공급자를 지원하며, Docker를 통해 쉽게 배포하고 실행할 수 있습니다.
|
||||
|
||||
## 주요 기능
|
||||
|
||||
- OCR 결과 텍스트 정제 및 분석
|
||||
- 다중 LLM 공급자 지원 (Gemini, Anthropic, OpenAI 등)
|
||||
- RESTful API 엔드포인트 제공
|
||||
- Docker Compose를 이용한 간편한 실행 환경
|
||||
|
||||
## 프로젝트 구조
|
||||
|
||||
```
|
||||
/
|
||||
├── .env # API 키 및 환경 변수 설정
|
||||
├── api_keys.json # 클라이언트 API 키 관리
|
||||
├── docker-compose.yml # Docker Compose 설정
|
||||
├── Dockerfile # Docker 이미지 빌드 설정
|
||||
├── requirements.txt # Python 의존성 목록
|
||||
├── post/ # OCR 결과 후처리 관련 모듈
|
||||
├── result/ # 처리 결과 저장 디렉토리 (Git 무시)
|
||||
└── workspace/ # API 서버 로직 (FastAPI 기반)
|
||||
```
|
||||
|
||||
## 시작하기
|
||||
|
||||
### 사전 요구사항
|
||||
|
||||
- Git
|
||||
- Docker
|
||||
- Docker Compose
|
||||
|
||||
### 설치 및 실행
|
||||
|
||||
1. **프로젝트 클론**
|
||||
|
||||
```bash
|
||||
git clone https://github.com/your-username/llm_gateway_macro.git
|
||||
cd llm_gateway_macro
|
||||
```
|
||||
|
||||
2. **환경 변수 설정**
|
||||
`.env.example` 파일을 복사하여 `.env` 파일을 생성하고, 내부에 실제 API 키들을 입력합니다.
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
```
|
||||
|
||||
```dotenv
|
||||
# .env
|
||||
ADMIN_API_KEY=your_admin_api_key
|
||||
GEMINI_API_KEY=your_gemini_api_key
|
||||
ANTHROPIC_API_KEY=your_anthropic_api_key
|
||||
OPENAI_API_KEY=your_openai_api_key
|
||||
```
|
||||
|
||||
3. **클라이언트 API 키 설정**
|
||||
`api_keys.json.example` 파일을 복사하여 `api_keys.json` 파일을 생성하고, API를 호출할 클라이언트의 키를 설정합니다.
|
||||
|
||||
```bash
|
||||
cp api_keys.json.example api_keys.json
|
||||
```
|
||||
|
||||
4. **Docker 컨테이너 실행**
|
||||
아래 명령어를 실행하여 애플리케이션을 백그라운드에서 시작합니다.
|
||||
|
||||
```bash
|
||||
docker-compose up -d --build
|
||||
```
|
||||
|
||||
5. **로그 확인 (선택 사항)**
|
||||
```bash
|
||||
docker-compose logs -f
|
||||
```
|
||||
|
||||
## API 사용법
|
||||
|
||||
### OCR 결과 처리 요청
|
||||
|
||||
- **Endpoint:** `POST /api/v1/process`
|
||||
- **Header:** `X-API-KEY: {your_client_api_key}`
|
||||
- **Body:**
|
||||
|
||||
```json
|
||||
{
|
||||
"ocr_text": "여기에 OCR 결과로 추출된 텍스트를 입력합니다.",
|
||||
"llm_provider": "gemini" // "gemini", "openai", "anthropic" 중 선택
|
||||
}
|
||||
```
|
||||
|
||||
### cURL 예시
|
||||
|
||||
```bash
|
||||
curl -X POST "http://localhost:8000/api/v1/process" \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "X-API-KEY: your_client_api_key" \
|
||||
-d '{
|
||||
"ocr_text": "처리할 OCR 텍스트입니다.",
|
||||
"llm_provider": "gemini"
|
||||
}'
|
||||
```
|
||||
|
||||
### 응답 예시
|
||||
|
||||
```json
|
||||
{
|
||||
"original_text": "처리할 OCR 텍스트입니다.",
|
||||
"processed_text": "LLM에 의해 처리된 결과입니다.",
|
||||
"provider": "gemini"
|
||||
}
|
||||
```
|
||||
|
||||
## 라이선스
|
||||
|
||||
이 프로젝트는 [라이선스 이름] 라이선스를 따릅니다. 자세한 내용은 `LICENSE` 파일을 참고하세요.
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
Reference in New Issue
Block a user