Sign inSign up

teddylee777/teddynote-parser-api

By teddylee777

Updated over 1 year ago

Image
API management
4

3.3K

teddylee777/teddynote-parser-api repository overview

TeddyNote Parser API

PDF 문서 파싱 및 정보 추출을 위한 API 서버입니다. 이 서비스는 PDF 문서를 분석하여 테이블, 이미지, 텍스트 등의 요소를 추출하고 구조화된 형태로 제공합니다.

주요 기능

  • PDF 파일 업로드 및 분석
  • 다양한 언어 지원 (한국어, 영어, 일본어, 중국어)
  • 테이블 및 이미지 데이터 추출
  • 비동기 작업 처리 및 상태 모니터링
  • 결과 ZIP 파일 다운로드

1. 도커 실행 방법

기본 사용법
docker run -d \
  --name teddynote-parser-api \
  -p 9990:9990 \
  -e UPSTAGE_API_KEY=your_upstage_api_key \
  -e OPENAI_API_KEY=your_openai_api_key \
  -e PORT=9990 \
  -e RUN_MODE=api \
  -v $(pwd)/data:/app/data \
  -v $(pwd)/result:/app/result \
  -v $(pwd)/uploads:/app/uploads \
  teddylee777/teddynote-parser-api:latest api
Docker Compose 사용법

docker-compose.yml 파일 예시:

version: '3.8'

services:
  teddynote-parser-api:
    image: teddylee777/teddynote-parser-api:latest
    container_name: teddynote-parser-api
    restart: unless-stopped
    ports:
      - "${PORT}:${PORT}"
    volumes:
      - ./data:/app/data
      - ./result:/app/result
      - ./uploads:/app/uploads
      - ./.env:/app/.env
    environment:
      - UPSTAGE_API_KEY=${UPSTAGE_API_KEY}
      - OPENAI_API_KEY=${OPENAI_API_KEY}
      - TZ=Asia/Seoul
      - PORT=${PORT}
      - RUN_MODE=api
    command: ["api"]

실행 명령어:

docker-compose up -d

2. 환경 변수 설정

필수 환경 변수:

변수명설명필수 여부
UPSTAGE_API_KEYUpStage API 키필수
OPENAI_API_KEYOpenAI API 키필수
PORTAPI 서버 포트 (기본값: 9997)선택

.env 파일 예시:

UPSTAGE_API_KEY=your_upstage_api_key_here
OPENAI_API_KEY=your_openai_api_key_here
PORT=9990

3. REST API 요청 예시

상태 확인 (Health Check)
curl -X GET http://localhost:9990/health

응답 예시:

{
  "status": "ok",
  "timestamp": "2023-05-10T12:34:56.789012"
}
PDF 업로드 및 분석 요청
curl -X POST http://localhost:9990/parse \
  -H "Content-Type: multipart/form-data" \
  -F "file=@/path/to/your/document.pdf" \
  -F "language=Korean" \
  -F "include_image=true" \
  -F "batch_size=30"

응답 예시:

{
  "job_id": "f8e7d6c5-b4a3-2c1d-0e9f-8g7h6i5j4k3l",
  "message": "파일 업로드 완료. 처리 작업이 시작되었습니다.",
  "status": "processing"
}
작업 상태 확인
curl -X GET http://localhost:9990/status/f8e7d6c5-b4a3-2c1d-0e9f-8g7h6i5j4k3l

응답 예시:

{
  "job_id": "f8e7d6c5-b4a3-2c1d-0e9f-8g7h6i5j4k3l",
  "status": "completed",
  "created_at": 1683720123.456789,
  "completed_at": 1683720156.789012,
  "filename": "document.pdf",
  "batch_size": 30,
  "test_page": null,
  "zip_filename": "/app/result/document_1683720123.zip",
  "error": null
}
결과 다운로드
curl -X GET http://localhost:9990/download/f8e7d6c5-b4a3-2c1d-0e9f-8g7h6i5j4k3l \
  -o result.zip
모든 작업 목록 조회
curl -X GET http://localhost:9990/jobs

응답 예시:

{
  "jobs": [
    {
      "job_id": "f8e7d6c5-b4a3-2c1d-0e9f-8g7h6i5j4k3l",
      "status": "completed",
      "created_at": 1683720123.456789,
      "completed_at": 1683720156.789012,
      "filename": "document.pdf",
      "batch_size": 30,
      "test_page": null,
      "zip_filename": "/app/result/document_1683720123.zip",
      "error": null
    },
    {
      "job_id": "a1b2c3d4-e5f6-7g8h-9i0j-k1l2m3n4o5p6",
      "status": "processing",
      "created_at": 1683720200.123456,
      "completed_at": null,
      "filename": "another_document.pdf",
      "batch_size": 30,
      "test_page": null,
      "zip_filename": null,
      "error": null
    }
  ]
}

4. 볼륨 마운트 설명

경로설명
/app/data입력 데이터를 저장하는 디렉토리
/app/result처리 결과를 저장하는 디렉토리
/app/uploads업로드된 파일이 임시로 저장되는 디렉토리

5. 주의 사항

  • API 키는 보안을 위해 환경 변수로 제공해야 합니다.
  • 대용량 PDF 처리 시 충분한 메모리와 CPU 리소스가 필요합니다.
  • 처리 결과는 컨테이너가 재시작되면 초기화될 수 있으므로 중요한 결과는 외부 볼륨에 저장하세요.

Tag summary

Content type

Image

Digest

sha256:dcb22cf94

Size

804.5 MB

Last updated

over 1 year ago

docker pull teddylee777/teddynote-parser-api