50 lines
3.3 KiB
Markdown
50 lines
3.3 KiB
Markdown
# `app.py` - 정답셋 생성 및 비교 도구
|
|
|
|
이 문서는 `workspace/app.py` Streamlit 애플리케이션의 기능, 설정 방법, 그리고 사용법을 상세히 설명합니다.
|
|
|
|
|
|
## 1. 주요 기능
|
|
|
|
- **세션 기반 협업**: 파일 업로드 시 고유한 URL(`seed`)이 생성되어, 이 링크를 공유하면 여러 명의 작업자가 동일한 환경에서 작업할 수 있습니다.
|
|
- **3-Way 비교 뷰**: **원본 문서**, **참고용 모델 결과**, **정답셋 편집기**를 한 화면에 표시하여 직관적인 비교와 수정이 가능합니다.
|
|
- **모델 선택 및 편집**: `paddle_ocr`와 `upstage` 모델 중 하나를 정답셋의 기반으로 선택하고, `parsed` 키의 내용을 직접 수정하여 정답셋을 생성합니다.
|
|
- **작업 상태 추적**: 정답셋 생성이 완료된 파일은 목록에 `✅` 아이콘으로 표시되어 작업 중복을 방지합니다.
|
|
- **정답셋 재수정**: 이미 완료된 정답셋도 언제든지 다시 불러와 수정할 수 있습니다.
|
|
- **동적 레이아웃**: '참고용 영역 숨기기' 옵션을 통해 편집 공간을 넓게 확보할 수 있습니다.
|
|
- **결과물 다운로드**: 현재 세션에서 생성된 모든 정답셋을 하나의 `.zip` 파일로 편리하게 다운로드할 수 있습니다.
|
|
|
|
## 2. 설정 및 실행
|
|
|
|
### 실행
|
|
|
|
프로젝트의 루트 디렉토리에서 다음 명령어를 실행하여 필요한 라이브러리를 설치합니다.
|
|
|
|
```dockerfile
|
|
docker compose up
|
|
```
|
|
|
|
실행 후 웹 브라우저에서 지정된 로컬 주소(예: `http://localhost:8501`)로 접속합니다.
|
|
|
|
## 3. 작업 흐름
|
|
|
|
1. **애플리케이션 실행**: 위의 명령어로 앱을 시작합니다.
|
|
2. **파일 업로드**:
|
|
- 사이드바의 '파일 업로드' 섹션에서 다음 세 종류의 파일을 모두 업로드합니다.
|
|
1. **원본 문서** (이미지/PDF)
|
|
2. **paddle_ocr JSON** 결과물
|
|
3. **upstage JSON** 결과물
|
|
- 파일 이름(확장자 제외)이 세 종류 모두 동일해야 목록에 정상적으로 표시됩니다.
|
|
3. **세션 생성**: '업로드 및 세션 생성' 버튼을 누르면, 고유한 `seed`가 포함된 URL이 생성되며 작업 화면으로 전환됩니다.
|
|
4. **세션 공유 (선택 사항)**: 생성된 URL을 다른 작업자와 공유하여 협업을 시작할 수 있습니다.
|
|
5. **파일 선택 및 검수**:
|
|
- 사이드바의 '파일 탐색' 드롭다운 메뉴에서 검수할 파일을 선택합니다.
|
|
- 화면 상단의 `◀ 이전` / `다음 ▶` 버튼으로 파일을 이동할 수도 있습니다.
|
|
6. **정답셋 생성**:
|
|
- 화면 우측 상단의 버튼을 통해 정답셋의 기반이 될 모델(`paddle_ocr` 또는 `upstage`)을 선택합니다.
|
|
- 오른쪽 '정답셋 편집' 영역에서 `parsed` 키의 텍스트를 정확하게 수정합니다.
|
|
- '✅ 정답셋으로 저장' 버튼을 눌러 작업을 완료합니다.
|
|
7. **작업 반복**: 모든 파일에 대해 5~6번 과정을 반복합니다. 완료된 파일은 목록에 `✅` 아이콘이 표시됩니다.
|
|
8. **정답셋 다운로드**:
|
|
- 모든 작업이 완료되면, 사이드바 하단의 '내보내기' 섹션에서 '정답셋 다운로드 (.zip)' 버튼을 눌러 결과물을 다운로드합니다.
|
|
- 다운로드된 파일은 현재 세션의 `groundtruth` 폴더에 저장된 모든 JSON 파일을 포함합니다.
|