콘텐츠로 이동

Dify RAG 대안 탐색 및 PDF 변환 작업기록

Dify RAG 대안 탐색 및 PDF 변환 작업기록

섹션 제목: “Dify RAG 대안 탐색 및 PDF 변환 작업기록”

[!note] 수정이력 | 2026-05-04 17:35, 미미 (openclaw)

  • PDF 변환 파이프라인 구축 (Office COM → A3 landscape)
  • Dify 마크다운 업로드 성공 (NW구성내역서)
  • Ollama 임베딩 모델 과부하 이슈 확인 → RAG 적합성 의문
  • OpenDocuments 대안 발견 (XLSX 지원, 한국어)
  • ERP 통합 검토 필요성 확인

엑셀 기반 설계/준공 내역서에서 “선로ID” 같은 핵심 코드를 자연어 질문으로 찾을 수 있는 검색 시스템 구축.

방법: Windows Office COM 자동화 (LibreOffice 실패)

섹션 제목: “방법: Windows Office COM 자동화 (LibreOffice 실패)”
  • LibreOffice는 엑셀 내장 객체(GIS 지도, 광연결도)를 제대로 렌더링 못함
  • Windows + Microsoft Office COM (ExportAsFixedFormat) 사용
  • A3 landscape (Orientation=2, PaperSize=8) 설정
원본시트출력 PDF
준공서류준공도면(전/후)건천읍대곡리_준공도면전.pdf, 후.pdf
설계내역서설계도면(전/후)건천읍대곡리_설계도면전.pdf, 후.pdf
작업계획서NW구성내역서(전/후)건천읍대곡리_작업계획_NW구성내역서전.pdf, 후.pdf
작업계획서도면(전/후)건천읍대곡리_작업계획도면전.pdf, 후.pdf

⚠️ PDF는 이미지 기반이라 텍스트 추출 안 됨 (Dify 검색 불가)

데이터: 작업계획서 NW구성내역서

섹션 제목: “데이터: 작업계획서 NW구성내역서”
  • 전(前): 8행 x 11열 — 데이터 거의 없음
  • 후(後): 176행 x 52열 — 실제 데이터 다수
| 함체 번호 | 순번 | 선로ID | 규격 | 연결 접속점 | 긍장(m) | 선로NW구분 | 선로명 | ... |
  • 2개 문서 Dify 업로드 성공
  • 인덱싱: Ollama 임베딩 과부하로 전부 실패

4. 핵심 문제: Ollama 임베딩 모델 과부하

섹션 제목: “4. 핵심 문제: Ollama 임베딩 모델 과부하”
  • bge-m3-korean (1.2GB) 모델 로딩 시 500 에러
  • Dify worker가 Ollama에 동시 요청 → 과부하
  • Max retries exceeded with url: /api/embed
  1. OLLAMA_KEEP_ALIVE=24h — 유지되지만 동시 요청 실패
  2. ✅ Worker 재시작 + Celery 큐 비우기 — 잠시 후 동일 증상
  3. ❌ bge-m3-korean → nomic-embed-text 전환 — Dify 설정상 번거로움

Ollama 단일 인스턴스로는 RAG 대량 인덱싱 부적합.

  • Self-hosted RAG 플랫폼 (MIT 라이선스)
  • XLSX 지원 (12종 파일 포맷)
  • 한국어-영어 교차 검색
  • BM25 + 벡터 하이브리드 검색
  • Docker 배포 가능
항목DifyOpenDocuments
XLSX⚠️ (텍스트 추출만)✅ (지원)
한국어 검색
Docker
천 개 파일 관리⚠️? (미확인)
정확한 코드 검색❌ (자연어 기반)❌ (자연어 기반)

6. 핵심 인사이트: “천 개 엑셀” 문제

섹션 제목: “6. 핵심 인사이트: “천 개 엑셀” 문제”
  • RAG는 자연어 유사도 검색 — “선로ID가 뭐야?” 가능
  • RAG는 정확한 숫자/코드 검색에 약함 — “선로ID=123123” 불확실
  • 천 개 파일 인덱싱/관리는 부담
  • 공사관리ERP에 문서 관리 모듈 추가
  • 엑셀 업로드 → DB 테이블 저장 (선로ID, 코어ID 등 정규화)
  • SQL로 정확 검색: WHERE 선로ID = '123123'
  • 참외가 개발 중인 ERP에 붙이면 가장 실용적
  • NW구성내역서 같은 데이터 시트만 마크다운으로 변환
  • RAG는 “어떤 항목들이 있어?” 같은 개괄 질문용
  • 정확한 ID 조회는 ERP에서
  • XLSX 직접 업로드 지원
  • 한국어 교차 검색 가능
  • Docker로 빠르게 테스트 → 적합하면 전환
  1. 참외에게: ERP에 문서/설계데이터 관리 모듈 추가 검토 요청
  2. OpenDocuments: Docker로 1시간 테스트 (XLSX 업로드 → “선로ID” 검색)
  3. Dify: 마크다운 기반 RAG는 보조용으로 유지 (개괄 질문)

  • Dify Console Token: eyJhbGciOiJIUzI1NiIs... (2026-05-05 만료)
  • Dataset ID: 5b2d038b-45a3-46be-9095-da851478e458
  • API Key: dataset-bf0aca3a2e6bf656fa555f9bfaca9580
  • PDF 변환 스크립트: /tmp/nw_docker.py, /tmp/nw_to_markdown.py