feat(rag): PDF/docx ingest + chat citations

- Upload endpoint (base64 JSON, no multipart dep): extracts text from
  pdf/docx/txt/md via pypdf + python-docx, then runs the existing
  chunk/embed pipeline. Documents page uploads files straight through.
- Citations: the chat stream emits an SSE `sources` event listing the
  documents that fed the answer; the UI shows them as chips under the reply.
- Deps: pypdf, python-docx (both pure-Python, Windows-safe).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
jon
2026-07-23 13:48:32 -05:00
co-authored by Claude Opus 4.8
parent f509034fdd
commit ac0eb1e5f6
6 changed files with 123 additions and 9 deletions
+4
View File
@@ -37,6 +37,10 @@ rich
python-dotenv
PyYAML
# Document ingest (RAG): pure-Python text extraction, no native deps
pypdf
python-docx
# Documentation Support
markdown-it-py
MarkupSafe