2025-10-30 10:32:31 +09:00
2025-10-30 10:32:31 +09:00
2025-10-30 10:32:31 +09:00
2025-10-30 10:32:31 +09:00
2025-10-30 10:32:31 +09:00
2025-10-30 10:29:16 +09:00
2025-10-30 10:32:31 +09:00
2025-10-30 10:32:31 +09:00
2025-10-30 10:32:31 +09:00
2025-10-30 10:32:31 +09:00
2025-10-30 10:32:31 +09:00

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

설치 및 실행

  1. 프로젝트 클론

    git clone https://github.com/your-username/llm_gateway_macro.git
    cd llm_gateway_macro
  2. 환경 변수 설정 .env.example 파일을 복사하여 .env 파일을 생성하고, 내부에 실제 API 키들을 입력합니다.

    cp .env.example .env
    # .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를 호출할 클라이언트의 키를 설정합니다.

    cp api_keys.json.example api_keys.json
  4. Docker 컨테이너 실행 아래 명령어를 실행하여 애플리케이션을 백그라운드에서 시작합니다.

    docker-compose up -d --build
  5. 로그 확인 (선택 사항)

    docker-compose logs -f

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
No description provided
Readme 659 KiB
Languages
Python 55.5%
HTML 43.9%
Dockerfile 0.6%