Files
ocr_macro/README.md
2025-08-01 10:05:24 +09:00

3.4 KiB

문서 정보 추출 및 비교 도구

이 프로젝트는 문서(이미지, PDF)에서 정보를 추출하고, 그 결과를 원본 문서와 나란히 비교할 수 있는 도구를 제공합니다.

구성 요소

  1. 추출 스크립트 (workspace/process_directory.py): 지정된 디렉터리의 모든 파일에 대해 정보 추출 API를 호출하고 결과를 JSON 파일로 저장합니다.
  2. 비교 웹앱 (workspace/app.py): Streamlit 기반의 웹 애플리케이션으로, 원본 문서와 추출된 JSON 결과를 업로드하여 시각적으로 비교할 수 있습니다.

1. 추출 스크립트 사용법 (process_directory.py)

사전 준비

스크립트를 실행하기 위해서는 Python 3.6 이상이 필요합니다.

1.1. 환경 변수 설정

API 서버의 정보는 민감 정보이므로, workspace 디렉터리 안에 .env 파일을 생성하여 관리합니다.

.env 파일 예시 (workspace/.env):

BASE_URL="http://172.0.0.1:8888"
API_KEY="sk-xxxxxxxxxxxxxxxxxxxxxxxx"

중요:.env 파일은 .gitignore에 의해 버전 관리에서 자동으로 제외됩니다.

1.2. 의존성 설치

프로젝트 루트 디렉터리에서 다음 명령어를 실행하여 필요한 라이브러리를 설치합니다.

pip install -r requirements.txt

실행 방법

프로젝트 루트 디렉터리에서 다음 형식으로 스크립트를 실행합니다.

python workspace/process_directory.py [입력_디렉터리] [옵션]

인자 설명

  • input_dir (필수): 처리할 파일들이 들어있는 입력 디렉터리의 경로입니다.
  • -o, --output_dir (선택): 결과 JSON 파일들을 저장할 출력 디렉터리입니다. (기본값: results)
  • --endpoint (선택): 호출할 API 엔드포인트를 지정합니다. (i18n 또는 d6c, 기본값: i18n)
  • --model (선택): 사용할 특정 LLM 모델의 이름을 지정합니다.

실행 예시

# 'source_documents/data'에 있는 파일들을 'i18n' 엔드포인트로 처리
python workspace/process_directory.py source_documents/data

# 'd6c' 엔드포인트를 사용하여 처리하고 결과를 'my_results' 폴더에 저장
python workspace/process_directory.py source_documents/data2 --endpoint d6c -o my_results

2. 비교 웹앱 사용법 (app.py)

이 웹앱을 사용하여 원본 문서와 process_directory.py 실행 결과로 생성된 JSON 파일을 시각적으로 비교할 수 있습니다.

실행 방법

프로젝트 루트 디렉터리에서 다음 명령어를 실행합니다.

streamlit run workspace/app.py
or
docker copmose up

위 명령어를 실행하면 웹 브라우저에서 비교 도구가 열립니다.

사용 절차

  1. 웹앱이 실행되면 사이드바에 파일 업로드 영역이 나타납니다.
  2. “원본 문서 파일(들)을 업로드하세요.” 버튼을 클릭하여 하나 이상의 문서 파일(PDF, PNG, JPG 등)을 업로드합니다.
  3. “결과 JSON 파일(들)을 업로드하세요.” 버튼을 클릭하여 해당 문서들의 추출 결과인 JSON 파일들을 업로드합니다.
  4. 파일들이 성공적으로 매칭되면, “비교할 파일을 선택하세요.” 드롭다운 메뉴에 파일 목록이 나타납니다.
  5. 목록에서 파일을 선택하면, 왼쪽에는 원본 문서가, 오른쪽에는 JSON 데이터가 표시되어 내용을 비교할 수 있습니다.