File size: 1,852 Bytes
95d1c6b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import requests
import json
import time

BASE_URL = "http://localhost:8000/api/v1"
TEST_USER = "episodic_tester_999"

def test_step4():
    # 1. Talk to Soma (This goes into Working Memory)
    print("--- 1. Creating a memory in Working Memory ---")
    msg1 = "I just bought a new dog named Baxter."
    print(f"User: {msg1}")
    requests.post(f"{BASE_URL}/query", json={"text": msg1, "user_id": TEST_USER})
    
    msg2 = "He is a golden retriever and he loves tennis balls."
    print(f"User: {msg2}")
    requests.post(f"{BASE_URL}/query", json={"text": msg2, "user_id": TEST_USER})
    
    time.sleep(1) # simulate time passing
    
    # 2. Trigger Consolidation (Hippocampus running during "sleep" or session end)
    print("\n--- 2. Triggering Hippocampus (Consolidation) ---")
    consolidation_res = requests.post(f"{BASE_URL}/consolidate", json={"user_id": TEST_USER})
    print(f"Consolidation result: {consolidation_res.json()}")
    
    time.sleep(2) # Give ChromaDB a moment to process the embeddings
    
    # 3. Simulate a NEW session (with a clean working memory slate)
    # We'll use a slightly different user ID just to avoid the local SQLite working memory,
    # forcing Soma to rely entirely on the ChromaDB Sensory/Episodic pull.
    # We will pass the query and it should pull the Baxter memory because of ChromaDB.
    NEW_USER = "episodic_tester_999_new_session"
    
    target_query = "What kind of dog do I have, and what is his name?"
    print(f"\n--- 3. Testing Deep Recall (New Session) ---")
    print(f"User: {target_query}")
    
    final_response = requests.post(f"{BASE_URL}/query", json={"text": target_query, "user_id": NEW_USER})
    data = final_response.json()
    
    print(f"\nSoma: {data.get('response')}")
    print(f"Sources: {data.get('sources')}")

if __name__ == "__main__":
    test_step4()