# 문서 정보 추출 및 비교 도구 이 프로젝트는 문서(이미지, 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`): ```env BASE_URL="http://172.0.0.1:8888" API_KEY="sk-xxxxxxxxxxxxxxxxxxxxxxxx" ``` **중요:** 이 `.env` 파일은 `.gitignore`에 의해 버전 관리에서 자동으로 제외됩니다. #### 1.2. 의존성 설치 프로젝트 루트 디렉터리에서 다음 명령어를 실행하여 필요한 라이브러리를 설치합니다. ```bash pip install -r requirements.txt ``` ### 실행 방법 프로젝트 루트 디렉터리에서 다음 형식으로 스크립트를 실행합니다. ```bash python workspace/process_directory.py [입력_디렉터리] [옵션] ``` #### 인자 설명 - `input_dir` (필수): 처리할 파일들이 들어있는 입력 디렉터리의 경로입니다. - `-o, --output_dir` (선택): 결과 JSON 파일들을 저장할 출력 디렉터리입니다. (기본값: `results`) - `--endpoint` (선택): 호출할 API 엔드포인트를 지정합니다. (`i18n` 또는 `d6c`, 기본값: `i18n`) - `--model` (선택): 사용할 특정 LLM 모델의 이름을 지정합니다. #### 실행 예시 ```bash # '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 파일을 시각적으로 비교할 수 있습니다. ### 실행 방법 프로젝트 루트 디렉터리에서 다음 명령어를 실행합니다. ```bash streamlit run workspace/app.py ``` 위 명령어를 실행하면 웹 브라우저에서 비교 도구가 열립니다. ### 사용 절차 1. 웹앱이 실행되면 사이드바에 파일 업로드 영역이 나타납니다. 2. **"원본 문서 파일(들)을 업로드하세요."** 버튼을 클릭하여 하나 이상의 문서 파일(PDF, PNG, JPG 등)을 업로드합니다. 3. **"결과 JSON 파일(들)을 업로드하세요."** 버튼을 클릭하여 해당 문서들의 추출 결과인 JSON 파일들을 업로드합니다. 4. 파일들이 성공적으로 매칭되면, **"비교할 파일을 선택하세요."** 드롭다운 메뉴에 파일 목록이 나타납니다. 5. 목록에서 파일을 선택하면, 왼쪽에는 원본 문서가, 오른쪽에는 JSON 데이터가 표시되어 내용을 비교할 수 있습니다.