Spaces:
Sleeping
Sleeping
| from __future__ import annotations | |
| from src.reasoning.llm_client import OpenAIReasoner | |
| from src.retrieval.retriever import evidence_packet | |
| from src.schemas.domain import RetrievedEvidence | |
| from src.schemas.outputs import AnswerResult | |
| from src.schemas.prompts import QA_PROMPT | |
| def answer_question( | |
| reasoner: OpenAIReasoner, | |
| question: str, | |
| evidence: list[RetrievedEvidence], | |
| ) -> AnswerResult: | |
| prompt = f""" | |
| User question: | |
| {question} | |
| Retrieved evidence: | |
| {evidence_packet(evidence)} | |
| Write a clear citation-grounded answer. Keep inline evidence identifiers in the answer_markdown. | |
| List the main auditable factual claims in key_claims with their supporting evidence IDs. | |
| """.strip() | |
| return reasoner.parse( | |
| system_prompt=QA_PROMPT, | |
| user_prompt=prompt, | |
| output_schema=AnswerResult, | |
| max_output_tokens=6000, | |
| ) | |