LLM 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
설치 및 실행
프로젝트 클론
환경 변수 설정
.env.example파일을 복사하여.env파일을 생성하고, 내부에 실제 API 키들을 입력합니다.# .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클라이언트 API 키 설정
api_keys.json.example파일을 복사하여api_keys.json파일을 생성하고, API를 호출할 클라이언트의 키를 설정합니다.Docker 컨테이너 실행 아래 명령어를 실행하여 애플리케이션을 백그라운드에서 시작합니다.
로그 확인 (선택 사항)
API 사용법
OCR 결과 처리 요청
- Endpoint:
POST /api/v1/process - Header:
X-API-KEY: {your_client_api_key} - Body:
{
"ocr_text": "여기에 OCR 결과로 추출된 텍스트를 입력합니다.",
"llm_provider": "gemini" // "gemini", "openai", "anthropic" 중 선택
}cURL 예시
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"
}'응답 예시
{
"original_text": "처리할 OCR 텍스트입니다.",
"processed_text": "LLM에 의해 처리된 결과입니다.",
"provider": "gemini"
}라이선스
이 프로젝트는 [라이선스 이름] 라이선스를 따릅니다. 자세한 내용은
LICENSE 파일을 참고하세요.
Description
Languages
Python
55.5%
HTML
43.9%
Dockerfile
0.6%