new RPG system
This commit is contained in:
@@ -1,10 +1,14 @@
|
||||
from services.rpg_facts import (
|
||||
FACTS_COMPRESS_SYSTEM,
|
||||
merge_facts,
|
||||
parse_facts_list,
|
||||
facts_to_prompt,
|
||||
facts_list_to_json,
|
||||
dedupe_facts_fuzzy,
|
||||
facts_are_similar,
|
||||
is_likely_narrative_event,
|
||||
filter_durable_facts,
|
||||
validate_compressed_against_source,
|
||||
)
|
||||
|
||||
|
||||
@@ -34,6 +38,33 @@ def test_dedupe_collapses_duplicates():
|
||||
assert len(out) == 2
|
||||
|
||||
|
||||
def test_facts_compress_system_format_escapes_json_braces():
|
||||
system = FACTS_COMPRESS_SYSTEM.format(target=22)
|
||||
assert "Target at most 22 facts" in system
|
||||
assert '{"text":' in system
|
||||
|
||||
|
||||
def test_narrative_event_facts_filtered():
|
||||
assert is_likely_narrative_event("Сара и Григо отправились через портал")
|
||||
assert not is_likely_narrative_event("Сара носит красный спортивный костюм")
|
||||
facts = filter_durable_facts([
|
||||
{"text": "Сара любит шоколад", "rp_day": "день 1"},
|
||||
{"text": "Сара и Григо решили вызвать СОДП", "rp_day": "день 2"},
|
||||
])
|
||||
assert len(facts) == 1
|
||||
|
||||
|
||||
def test_validate_compressed_rejects_hallucinations():
|
||||
original = [{"text": "Сара любит шоколад", "rp_day": "день 1"}]
|
||||
compressed = [
|
||||
{"text": "Сара любит шоколад", "rp_day": "день 1"},
|
||||
{"text": "Сара — королева галактики", "rp_day": "день 9"},
|
||||
]
|
||||
out = validate_compressed_against_source(original, compressed)
|
||||
assert len(out) == 1
|
||||
assert "шоколад" in out[0]["text"]
|
||||
|
||||
|
||||
def test_merge_with_rp_day():
|
||||
existing = facts_list_to_json([{"text": "A", "rp_day": "день 1"}])
|
||||
merged = parse_facts_list(
|
||||
|
||||
Reference in New Issue
Block a user