Spaces:
Runtime error
Runtime error
File size: 5,338 Bytes
aad7814 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 | """Interference-level prompt routing in reference_mapper."""
from __future__ import annotations
from backend.core.reference_mapper import (
build_interference_messages,
map_reference_paragraph,
select_mapping_prompt,
)
from backend.prompts.mapping_prompt import (
MAPPING_SYSTEM_BASE_MAXIMUM,
MAPPING_SYSTEM_BASE_MEDIUM,
MAPPING_SYSTEM_BASE_MINIMUM,
)
from backend.models.schema import TemplateSchema
from backend.prompts.maximum_compose_prompt import MAXIMUM_SYSTEM, build_maximum_messages
from backend.prompts.medium_expand_prompt import MEDIUM_SYSTEM, build_medium_messages
from backend.prompts.minimum_weave_prompt import MINIMUM_SYSTEM, build_minimum_messages
def test_select_mapping_prompt_routes_tier_bases():
assert select_mapping_prompt("minimum") is MAPPING_SYSTEM_BASE_MINIMUM
assert select_mapping_prompt("medium") is MAPPING_SYSTEM_BASE_MEDIUM
assert select_mapping_prompt("maximum") is MAPPING_SYSTEM_BASE_MAXIMUM
assert select_mapping_prompt("bogus") is MAPPING_SYSTEM_BASE_MAXIMUM
assert select_mapping_prompt(None) is MAPPING_SYSTEM_BASE_MAXIMUM # type: ignore[arg-type]
def test_build_minimum_messages_signature_and_strategy():
msgs = build_minimum_messages("slate slipped", "The roof comprises slate tiles.")
assert msgs[0]["role"] == "system"
assert msgs[1]["role"] == "user"
assert "zero-inference data mapping engine" in msgs[0]["content"]
assert "DO NOT ADD NEW SENTENCES" in msgs[0]["content"]
assert "SECTION:" in msgs[1]["content"]
assert "INPUT 1: PAST-REPORT SCAFFOLD" in msgs[1]["content"]
assert "INPUT 2: CURRENT INSPECTION NOTES" in msgs[1]["content"]
assert "* slate slipped" in msgs[1]["content"]
def test_build_medium_messages_signature_and_strategy():
msgs = build_medium_messages("det to DPC, rep reqd", "The walls were inspected.")
assert "professional technical copyeditor" in msgs[0]["content"]
assert "ABSOLUTE HISTORICAL GROUNDING" in msgs[0]["content"]
assert "PROOFREAD & ENHANCE TECHNICAL DEPTH" in msgs[0]["content"]
assert "INPUT 2: CURRENT INSPECTION NOTES" in msgs[1]["content"]
assert "* det to DPC, rep reqd" in msgs[1]["content"]
def test_build_maximum_messages_signature_and_strategy():
msgs = build_maximum_messages("asbestos noted", "The ceiling was inspected.")
assert "expert UK Chartered Building Surveyor" in msgs[0]["content"]
assert "UK_PROPERTY_SURVEYING_DOMAIN_KNOWLEDGE" in msgs[0]["content"]
assert "INTEGRATED NARRATIVE DRAFTING" in msgs[0]["content"]
assert "INPUT 2: CURRENT INSPECTION NOTES" in msgs[1]["content"]
assert "* asbestos noted" in msgs[1]["content"]
def test_all_tiers_share_rics_domain_rules():
for system in (MINIMUM_SYSTEM, MEDIUM_SYSTEM, MAXIMUM_SYSTEM):
assert '"1", "2", "3", "NI", "NA"' in system
assert "[AMBIGUOUS:" in system
def test_build_interference_messages_routes_by_level():
baseline = "The roof comprises slate tiles."
notes = ["slate slipped"]
schema = TemplateSchema()
min_msgs = build_interference_messages(
"minimum", observations=notes, baseline=baseline, schema=schema
)
med_msgs = build_interference_messages(
"medium", observations=notes, baseline=baseline, schema=schema
)
max_msgs = build_interference_messages(
"maximum", observations=notes, baseline=baseline, schema=schema
)
assert "UPLOADED USER PAST REPORTS" in min_msgs[0]["content"]
assert MAPPING_SYSTEM_BASE_MINIMUM.strip() in min_msgs[0]["content"]
assert "ABSOLUTE HISTORICAL GROUNDING" in med_msgs[0]["content"]
assert MAPPING_SYSTEM_BASE_MEDIUM.strip() in med_msgs[0]["content"]
assert "INTEGRATED NARRATIVE DRAFTING" in max_msgs[0]["content"]
assert MAPPING_SYSTEM_BASE_MAXIMUM.strip() in max_msgs[0]["content"]
assert min_msgs[0]["content"] != med_msgs[0]["content"] != max_msgs[0]["content"]
def test_build_interference_messages_unknown_defaults_to_maximum():
explicit = build_interference_messages(
"maximum",
observations=["x"],
baseline="baseline prose.",
schema=TemplateSchema(),
)
unknown = build_interference_messages(
"bogus",
observations=["x"],
baseline="baseline prose.",
schema=TemplateSchema(),
)
assert unknown[0]["content"] == explicit[0]["content"]
assert unknown[1]["content"] == explicit[1]["content"]
def test_map_reference_paragraph_branches_on_level(monkeypatch):
captured: list[str] = []
def fake_build(level, **kwargs):
captured.append(str(level))
return [{"role": "system", "content": "sys"}, {"role": "user", "content": "user"}]
monkeypatch.setattr(
"backend.core.reference_mapper.build_interference_messages",
fake_build,
)
monkeypatch.setattr(
"backend.core.reference_mapper.map_inplace_baseline",
lambda *args, **kwargs: kwargs.get("messages") and "ok" or "fail",
)
schema = TemplateSchema()
baseline = "The chimney was inspected."
notes = ["crack noted"]
map_reference_paragraph(baseline, notes, schema, "minimum")
map_reference_paragraph(baseline, notes, schema, "medium")
map_reference_paragraph(baseline, notes, schema, "maximum")
assert captured == ["minimum", "medium", "maximum"]
|