- Replace two-stage keyword + LLM reranking with pure LLM semantic filtering
- Update document matching to send all user documents to LLM for analysis
- LLM now selects 0 to N relevant documents based on actual relevance instead of forced limits
- Rename _llm_verify_document_hashes to _llm_filter_documents for clarity
- Add X-Session-Id header support for improved session tracking in ask_question endpoint
- Update README to reflect simplified document filtering approach
- Add session ID logging for debugging agent thread IDs
- Improve LLM prompt to emphasize quality over quantity in document selection
feat(document-matching): implement two-stage document matching with LLM reranking
- Add hybrid keyword scoring + LLM semantic reranking for document matching
- Implement Stage 1 fast keyword scoring with weighted phrase and word-level matching
- Implement Stage 2 LLM-based semantic reranking for top candidates (up to 8 docs)
- Update README with detailed explanation of two-stage matching system
- Refactor resolve_relevant_document_hashes to use new scoring algorithm
- Add _llm_verify_document_hashes method for LLM-based document ranking
- Remove deployment configs (fly.toml, render.yaml) no longer in use
- Update test documents with new sample file
- Improve retrieval accuracy by balancing speed (keyword filtering) with semantic understanding (LLM reranking)
Integrate Jina embeddings and refresh assignment README