3.4 KiB
3.4 KiB
문서 정보 추출 및 비교 도구
이 프로젝트는 문서(이미지, PDF)에서 정보를 추출하고, 그 결과를 원본 문서와 나란히 비교할 수 있는 도구를 제공합니다.
구성 요소
- 추출 스크립트
(
workspace/process_directory.py): 지정된 디렉터리의 모든 파일에 대해 정보 추출 API를 호출하고 결과를 JSON 파일로 저장합니다. - 비교 웹앱 (
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_results2. 비교 웹앱 사용법
(app.py)
이 웹앱을 사용하여 원본 문서와 process_directory.py 실행
결과로 생성된 JSON 파일을 시각적으로 비교할 수 있습니다.
실행 방법
프로젝트 루트 디렉터리에서 다음 명령어를 실행합니다.
streamlit run workspace/app.py
or
docker copmose up위 명령어를 실행하면 웹 브라우저에서 비교 도구가 열립니다.
사용 절차
- 웹앱이 실행되면 사이드바에 파일 업로드 영역이 나타납니다.
- “원본 문서 파일(들)을 업로드하세요.” 버튼을 클릭하여 하나 이상의 문서 파일(PDF, PNG, JPG 등)을 업로드합니다.
- “결과 JSON 파일(들)을 업로드하세요.” 버튼을 클릭하여 해당 문서들의 추출 결과인 JSON 파일들을 업로드합니다.
- 파일들이 성공적으로 매칭되면, “비교할 파일을 선택하세요.” 드롭다운 메뉴에 파일 목록이 나타납니다.
- 목록에서 파일을 선택하면, 왼쪽에는 원본 문서가, 오른쪽에는 JSON 데이터가 표시되어 내용을 비교할 수 있습니다.