mirror of
https://github.com/pewdiepie-archdaemon/odysseus.git
synced 2026-09-26 01:52:21 +02:00
Squash Odysseus development history
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
"""The fallback memory extractor must not invert dislikes into preferences.
|
||||
|
||||
_fallback_memory_candidates matched both positive (prefer/like/love) and
|
||||
negative (hate/do not like/don't like) sentiment verbs in one alternation but
|
||||
formatted every hit as "User prefers X.", so "I hate cilantro" was stored as
|
||||
"User prefers cilantro" -- the opposite of what the user said, then persisted
|
||||
to memory and re-injected into context. These pin the sentiment.
|
||||
"""
|
||||
from services.memory.memory_extractor import _fallback_memory_candidates
|
||||
|
||||
|
||||
def _texts(content):
|
||||
cands = _fallback_memory_candidates([{"role": "user", "content": content}])
|
||||
return [c["text"].lower() for c in cands]
|
||||
|
||||
|
||||
def test_dislike_is_not_stored_as_preference():
|
||||
texts = _texts("I hate cilantro in my food")
|
||||
assert not any("prefers cilantro" in t for t in texts)
|
||||
assert any("dislikes cilantro" in t for t in texts)
|
||||
|
||||
|
||||
def test_negated_like_is_not_stored_as_preference():
|
||||
texts = _texts("I don't like crowded trains")
|
||||
assert not any("prefers crowded" in t for t in texts)
|
||||
assert any("dislikes crowded" in t for t in texts)
|
||||
|
||||
|
||||
def test_genuine_preference_still_stored():
|
||||
texts = _texts("I love spicy ramen noodles")
|
||||
assert any("prefers spicy ramen" in t for t in texts)
|
||||
Reference in New Issue
Block a user