AnirudhEsthuri-MV commited on
Commit
c882b4d
·
1 Parent(s): 94aee85

Update gateway_client.py

Browse files
Files changed (1) hide show
  1. gateway_client.py +16 -100
gateway_client.py CHANGED
@@ -6,7 +6,6 @@ import requests
6
  # Backend server URL - can be set via environment variable
7
  # For Hugging Face Spaces: Set MEMORY_SERVER_URL in Space settings (Repository secrets)
8
  # For local development: Set MEMORY_SERVER_URL in your .env file
9
- # Default: http://3.232.95.65:8080 (MemMachine backend)
10
  EXAMPLE_SERVER_PORT = os.getenv("MEMORY_SERVER_URL")
11
 
12
 
@@ -15,125 +14,42 @@ def ingest_and_rewrite(user_id: str, query: str, model_type: str = "openai") ->
15
  """Pass a raw user message through the memory server and get context-aware response."""
16
  print("entered ingest_and_rewrite")
17
 
18
- # First, store the message in memory
19
- session_data = {
20
- "group_id": user_id,
21
- "agent_id": ["assistant"],
22
- "user_id": [user_id],
23
- "session_id": f"session_{user_id}",
24
- }
25
- episode_data = {
26
- "session": session_data,
27
- "producer": user_id,
28
- "produced_for": "assistant",
29
- "episode_content": query,
30
- "episode_type": "message",
31
- "metadata": {
32
- "speaker": user_id,
33
- "timestamp": datetime.now().isoformat(),
34
- "type": "message",
35
- },
36
- }
37
-
38
- # Store the episode
39
- store_resp = requests.post(
40
- f"{EXAMPLE_SERVER_PORT}/memory",
41
- json=episode_data,
42
- timeout=1000,
43
- )
44
- store_resp.raise_for_status()
45
-
46
- # Then search for relevant context
47
- search_data = {
48
- "session": session_data,
49
- "query": query,
50
- "limit": 5,
51
- "filter": {"producer_id": user_id},
52
- }
53
-
54
- search_resp = requests.post(
55
- f"{EXAMPLE_SERVER_PORT}/memory/search",
56
- json=search_data,
57
  timeout=1000,
58
  )
59
- search_resp.raise_for_status()
60
-
61
- search_results = search_resp.json()
62
- content = search_results.get("content", {})
63
- episodic_memory = content.get("episodic_memory", [])
64
- profile_memory = content.get("profile_memory", [])
65
-
66
- # Format the response similar to example_server.py
67
- if profile_memory and episodic_memory:
68
- profile_str = "\n".join([str(p) for p in profile_memory]) if isinstance(profile_memory, list) else str(profile_memory)
69
- context_str = "\n".join([str(c) for c in episodic_memory]) if isinstance(episodic_memory, list) else str(episodic_memory)
70
- return f"Profile: {profile_str}\n\nContext: {context_str}\n\nQuery: {query}"
71
- elif profile_memory:
72
- profile_str = "\n".join([str(p) for p in profile_memory]) if isinstance(profile_memory, list) else str(profile_memory)
73
- return f"Profile: {profile_str}\n\nQuery: {query}"
74
- elif episodic_memory:
75
- context_str = "\n".join([str(c) for c in episodic_memory]) if isinstance(episodic_memory, list) else str(episodic_memory)
76
- return f"Context: {context_str}\n\nQuery: {query}"
77
- else:
78
- return f"Message ingested successfully. No relevant context found yet.\n\nQuery: {query}"
79
 
80
 
81
  def add_session_message(user_id: str, msg: str) -> None:
82
  """Add a raw message into memory via memory server."""
83
- session_data = {
84
- "group_id": user_id,
85
- "agent_id": ["assistant"],
86
- "user_id": [user_id],
87
- "session_id": f"session_{user_id}",
88
- }
89
- episode_data = {
90
- "session": session_data,
91
- "producer": user_id,
92
- "produced_for": "assistant",
93
- "episode_content": msg,
94
- "episode_type": "message",
95
- "metadata": {
96
- "speaker": user_id,
97
- "timestamp": datetime.now().isoformat(),
98
- "type": "message",
99
- },
100
- }
101
  requests.post(
102
  f"{EXAMPLE_SERVER_PORT}/memory",
103
- json=episode_data,
104
  timeout=5,
105
  )
106
 
107
 
108
  def create_persona_query(user_id: str, query: str) -> str:
109
  """Create a persona-aware query by searching memory context via memory server."""
110
- session_data = {
111
- "group_id": user_id,
112
- "agent_id": ["assistant"],
113
- "user_id": [user_id],
114
- "session_id": f"session_{user_id}",
115
- }
116
- search_data = {
117
- "session": session_data,
118
- "query": query,
119
- "limit": 5,
120
- "filter": {"producer_id": user_id},
121
- }
122
-
123
- resp = requests.post(
124
- f"{EXAMPLE_SERVER_PORT}/memory/search",
125
- json=search_data,
126
  timeout=1000,
127
  )
128
  resp.raise_for_status()
129
 
130
  search_results = resp.json()
131
- content = search_results.get("content", {})
132
- profile_memory = content.get("profile_memory", [])
133
 
134
- if profile_memory:
135
- profile_str = "\n".join([str(p) for p in profile_memory]) if isinstance(profile_memory, list) else str(profile_memory)
136
- return f"Based on your profile: {profile_str}\n\nQuery: {query}"
137
  else:
138
  return f"Query: {query}"
139
 
 
6
  # Backend server URL - can be set via environment variable
7
  # For Hugging Face Spaces: Set MEMORY_SERVER_URL in Space settings (Repository secrets)
8
  # For local development: Set MEMORY_SERVER_URL in your .env file
 
9
  EXAMPLE_SERVER_PORT = os.getenv("MEMORY_SERVER_URL")
10
 
11
 
 
14
  """Pass a raw user message through the memory server and get context-aware response."""
15
  print("entered ingest_and_rewrite")
16
 
17
+ resp = requests.post(
18
+ f"{EXAMPLE_SERVER_PORT}/memory/store-and-search",
19
+ params={"user_id": user_id, "query": query},
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20
  timeout=1000,
21
  )
22
+ resp.raise_for_status()
23
+
24
+ return resp.text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
 
26
 
27
  def add_session_message(user_id: str, msg: str) -> None:
28
  """Add a raw message into memory via memory server."""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29
  requests.post(
30
  f"{EXAMPLE_SERVER_PORT}/memory",
31
+ params={"user_id": user_id, "query": msg},
32
  timeout=5,
33
  )
34
 
35
 
36
  def create_persona_query(user_id: str, query: str) -> str:
37
  """Create a persona-aware query by searching memory context via memory server."""
38
+ resp = requests.get(
39
+ f"{EXAMPLE_SERVER_PORT}/memory",
40
+ params={
41
+ "query": query,
42
+ "user_id": user_id,
43
+ "timestamp": datetime.now().isoformat(),
44
+ },
 
 
 
 
 
 
 
 
 
45
  timeout=1000,
46
  )
47
  resp.raise_for_status()
48
 
49
  search_results = resp.json()
 
 
50
 
51
+ if search_results.get("profile"):
52
+ return f"Based on your profile: {search_results['profile']}\n\nQuery: {query}"
 
53
  else:
54
  return f"Query: {query}"
55