Analyzer Module
analyzer.py runs compliance analysis over a vectorstore of contract pages.
Workflow per question:
Retrieve top-k chunks from the vectorstore.
Build a prompt using requirement + context.
Call Ollama (llama3) to generate JSON response.
Parse and validate the response using Pydantic.
Retry once if parsing fails.
Key Functions
analyze_compliance(job_id) → Returns serialized ComplianceReport for all 5 questions.
_analyze_single_question(llm, vs, question, job_id) → Internal, runs analysis for a single question.
_try_parse_response(raw) → Cleans JSON output and parses it.
_format_context(docs) → Formats retrieved chunks into prompt context.