Skip to content

feat(knowledge): stream-download to scratch disk then parse (parity with chat)

변재혁 requested to merge feature/DOP-AI_knowledge_scratch into develop

사전지식(agent_knowledge) 파싱 경로를 chat 첨부와 동일하게 스크래치 디스크 스트림 다운로드 방식으로 전환한다. 기존에는 storage.download() 로 파일 전체를 RAM 에 적재한 뒤 파싱했으나, 이제 /agent_knowledge 로 download_to_path 스트림 다운로드 후 디스크 경로에서 파싱하고 finally 에서 정리한다.

  • service.process_job: download_to_path + agent_knowledge_inflight_limiter 로 감싸고(파일 스테이징 pod 메모리 가드) finally unlink
  • AgentKnowledgeParser.parse: file_bytes -> file_path
    • PDF: fitz.open(path) 메모리맵, image/txt/md/pptx/docx/html 파싱 순간 로딩
    • hwp/hwpx: 경로 기반 extract_document_from_path 신설
    • xlsx: load_workbook(path, read_only)
    • content_hash: 스트리밍 sha256(전체 로딩 없음)
  • config 신설: agent_knowledge_max_file_size_bytes(20MB), agent_knowledge_inflight_count(4) (env_model + local/dev/stg yml)
  • scratch: agent_knowledge_scratch_dir() 신설, sweep_stale() 이 두 도메인 정리
  • /download 프록시(download_bytes)는 현행 유지(파싱 경로만 변경)

Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com

Merge request reports