From fb2460f9074874d1b42f963336346ede42296df3 Mon Sep 17 00:00:00 2001 From: Kurt Heiden Date: Mon, 28 Oct 2024 21:45:25 -0600 Subject: [PATCH] prepend system memories for plugin --- simplemind/models.py | 3 +++ test_ollama.py | 16 ++++++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/simplemind/models.py b/simplemind/models.py index 4a85c99..dcc7be1 100644 --- a/simplemind/models.py +++ b/simplemind/models.py @@ -46,6 +46,9 @@ class Conversation(SMBaseModel): def __str__(self): return f"" + def prepend_system_message(self, role: str, text: str, meta: Dict[str, Any] = {}): + self.messages = [Message(role=role, text=text, meta=meta)] + self.messages + def add_message(self, role: str, text: str, meta: Dict[str, Any] = {}): """Add a new message to the conversation.""" self.messages.append(Message(role=role, text=text, meta=meta)) diff --git a/test_ollama.py b/test_ollama.py index 4d40d38..deb4fbd 100644 --- a/test_ollama.py +++ b/test_ollama.py @@ -6,6 +6,7 @@ class TestOllama(unittest.TestCase): def test_generate_text(self): result = sm.generate_text(prompt="What is the meaning of life?", llm_provider="ollama", llm_model="llama3.2") + self.assertGreater(len(result), 0) self.assertIsNotNone(result) def test_create_conversation(self): @@ -13,14 +14,15 @@ class TestOllama(unittest.TestCase): conversation.add_message("user", "Remember the number 42.") result = conversation.send() self.assertIsNotNone(result) + self.assertGreaterEqual(len(result.text), 0) self.assertIsInstance(result, sm.models.Message) + # @unittest.skip('Not working...') def test_memory(self): - conversation = sm.create_conversation(llm_provider="ollama", llm_model="llama3.2") class SimpleMemoryPlugin: def __init__(self): self.memories = [ - "the earth has fictionally beeen destroyed.", + "the earth has fictionally been destroyed.", "the moon is made of cheese.", ] @@ -29,15 +31,21 @@ class TestOllama(unittest.TestCase): def send_hook(self, conversation: sm.Conversation): for m in self.yield_memories(): - conversation.add_message(role="system", text=m) + conversation.prepend_system_message(role="system", text=m) - conversation.add_plugin(SimpleMemoryPlugin()) + conversation = sm.create_conversation(llm_provider="ollama", llm_model="llama3.2") + conversation.add_message( role="user", text="Write a poem about the moon", ) + self.assertGreater(len(conversation.messages), 0) + conversation.add_plugin(SimpleMemoryPlugin()) result = conversation.send() + self.assertGreater(len(conversation.messages), 2) self.assertIsNotNone(result) + self.assertIsNotNone(result.text) + self.assertGreater(len(result.text), 0) self.assertIsInstance(result, sm.models.Message) def test_structure_response(self):