Spaces:
Sleeping
Sleeping
| from app.agents.text_ref_engine import TextRefEngine, TextRefGrounding | |
| class _FakeClient: | |
| def __init__(self, obj): | |
| self._obj = obj | |
| def structured_complete(self, messages, schema, **kw): | |
| return self._obj | |
| def test_generate_happy_path_with_web_results_populates_source(): | |
| chunks = [{"source": "paper.pdf", "text": "The transformer architecture relies entirely on attention mechanisms, dispensing with recurrence."}] | |
| grounding = TextRefGrounding( | |
| renderable=True, | |
| anchor="relies entirely on attention mechanisms, dispensing with recurrence", | |
| body_markdown="The transformer relies on attention instead of recurrence, as covered in the source material.", | |
| ) | |
| engine = TextRefEngine(client=_FakeClient(grounding)) | |
| web_results = [{"title": "Attention Is All You Need", "url": "https://example.com/paper"}] | |
| payload = engine.generate("transformer architecture", chunks, "high_school", web_results=web_results) | |
| assert payload.animation_type == "2d_text" | |
| assert payload.html_code == "" | |
| assert payload.text_ref is not None | |
| assert payload.text_ref.body_markdown == grounding.body_markdown | |
| assert payload.text_ref.source_label == "Attention Is All You Need" | |
| assert payload.text_ref.source_url == "https://example.com/paper" | |
| def test_generate_happy_path_without_web_results_leaves_source_blank(): | |
| chunks = [{"source": "paper.pdf", "text": "The transformer architecture relies entirely on attention mechanisms, dispensing with recurrence."}] | |
| grounding = TextRefGrounding( | |
| renderable=True, | |
| anchor="relies entirely on attention mechanisms, dispensing with recurrence", | |
| body_markdown="The transformer relies on attention instead of recurrence.", | |
| ) | |
| engine = TextRefEngine(client=_FakeClient(grounding)) | |
| payload = engine.generate("transformer architecture", chunks, "high_school", web_results=None) | |
| assert payload.text_ref is not None | |
| assert payload.text_ref.source_label == "" | |
| assert payload.text_ref.source_url == "" | |
| payload_empty_list = engine.generate("transformer architecture", chunks, "high_school", web_results=[]) | |
| assert payload_empty_list.text_ref.source_label == "" | |
| assert payload_empty_list.text_ref.source_url == "" | |
| def test_generate_decline_path_returns_2d_text_card_with_no_text_ref(): | |
| chunks = [{"source": "paper.pdf", "text": "This section is purely a list of numeric results with no narrative worth summarizing."}] | |
| grounding = TextRefGrounding( | |
| renderable=False, | |
| decline_reason="'results table' doesn't have a narrative worth a dedicated explainer — better explored in chat.", | |
| ) | |
| engine = TextRefEngine(client=_FakeClient(grounding)) | |
| payload = engine.generate("results table", chunks, "high_school") | |
| assert payload.animation_type == "2d_text" | |
| assert payload.html_code != "" | |
| assert payload.text_ref is None | |
| assert "results table" in payload.html_code | |
| def test_generate_discards_hallucinated_anchor(): | |
| chunks = [{"source": "paper.pdf", "text": "Attention mechanisms compute a weighted sum over value vectors."}] | |
| grounding = TextRefGrounding( | |
| renderable=True, | |
| anchor="this text was never in the source at all", | |
| body_markdown="Attention computes a weighted sum over values.", | |
| ) | |
| engine = TextRefEngine(client=_FakeClient(grounding)) | |
| payload = engine.generate("attention mechanism", chunks, "high_school") | |
| assert payload.animation_type == "2d_text" | |
| assert "this text was never in the source at all" not in payload.explanation | |
| assert payload.explanation == "" | |