# ── Environment ──────────────────────────────────────────────────────────────── python-dotenv # load .env for local dev # ── Document Fetching ────────────────────────────────────────────────────────── requests==2.32.4 # HTTP calls to SEC EDGAR # ── Document Parsing ────────────────────────────────────────────────────────── docling # PDF/HTML parser with table understanding tf-keras # fixes Keras 3 conflict with transformers # ── Chunking ────────────────────────────────────────────────────────────────── langchain-experimental # SemanticChunker (gradient method) langchain-text-splitters # RecursiveCharacterTextSplitter (fallback) # ── Embeddings ──────────────────────────────────────────────────────────────── langchain-huggingface # HuggingFaceEmbeddings wrapper sentence-transformers # all-MiniLM-L6-v2 + ms-marco reranker + NLI verifier # ── Vector Store ────────────────────────────────────────────────────────────── chromadb # local vector DB (dev / notebook use) qdrant-client # Qdrant Cloud vector DB (production / deployment) # ── LLM + RAG Chain ─────────────────────────────────────────────────────────── langchain # RAG chain orchestration langchain-community # Ollama LLM wrapper (local fallback) langchain-core # base abstractions langchain-google-genai # Google Gemini API (primary LLM for deployment) google-generativeai # Gemini SDK # ── Verification + Grounding ────────────────────────────────────────────────── nltk # sentence tokenizer for claim splitting # NLI model auto-downloaded on first use: # cross-encoder/nli-deberta-v3-small (~180 MB) # ── Data Handling ───────────────────────────────────────────────────────────── pandas # dataframe operations numpy<2.0 # pinned — docling + pyarrow need <2.0 # ── Web Application ─────────────────────────────────────────────────────────── streamlit>=1.39.0 # chat UI for Hugging Face Spaces deployment