MCPcopy Create free account
hub / github.com/MemTensor/MemOS / MemosApiClient

Class MemosApiClient

evaluation/scripts/utils/client.py:145–195  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

143
144
145class MemosApiClient:
146 def __init__(self):
147 self.memos_url = os.getenv("MEMOS_URL")
148 self.headers = {"Content-Type": "application/json", "Authorization": os.getenv("MEMOS_KEY")}
149
150 def add(self, messages, user_id, conv_id, batch_size: int = 9999):
151 """
152 messages = [{"role": "assistant", "content": data, "chat_time": date_str}]
153 """
154 url = f"{self.memos_url}/product/add"
155 added_memories = []
156 for i in range(0, len(messages), batch_size):
157 batch_messages = messages[i : i + batch_size]
158 payload = json.dumps(
159 {
160 "messages": batch_messages,
161 "user_id": user_id,
162 "mem_cube_id": user_id,
163 "conversation_id": conv_id,
164 }
165 )
166 response = requests.request("POST", url, data=payload, headers=self.headers)
167 assert response.status_code == 200, response.text
168 assert json.loads(response.text)["message"] == "Memory added successfully", (
169 response.text
170 )
171 added_memories += json.loads(response.text)["data"]
172 return added_memories
173
174 def search(self, query, user_id, top_k):
175 """Search memories."""
176 url = f"{self.memos_url}/product/search"
177 payload = json.dumps(
178 {
179 "query": query,
180 "user_id": user_id,
181 "mem_cube_id": user_id,
182 "conversation_id": "",
183 "top_k": top_k,
184 "mode": os.getenv("SEARCH_MODE", "fast"),
185 "include_preference": True,
186 "pref_top_k": 6,
187 },
188 ensure_ascii=False,
189 )
190 response = requests.request("POST", url, data=payload, headers=self.headers)
191 assert response.status_code == 200, response.text
192 assert json.loads(response.text)["message"] == "Search completed successfully", (
193 response.text
194 )
195 return json.loads(response.text)["data"]
196
197
198class MemosApiOnlineClient:

Callers 10

process_userFunction · 0.90
process_userFunction · 0.90
process_userFunction · 0.90
ingest_convFunction · 0.90
mainFunction · 0.90
mainFunction · 0.90
mainFunction · 0.90
ingest_convFunction · 0.90
process_userFunction · 0.90
client.pyFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected