Skip to content

Commit 6885d48

Browse files
committed
feat: integrate vikingdb-python-sdk for memory backend
1 parent 41fe928 commit 6885d48

File tree

3 files changed

+25
-33
lines changed

3 files changed

+25
-33
lines changed

pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ dependencies = [
3838
"aiomysql>=0.3.2", # For async MySQL database (short term memory)
3939
"opensearch-py==2.8.0",
4040
"filetype>=1.2.0",
41+
"vikingdb-python-sdk>=0.1.3",
4142
]
4243

4344
[project.scripts]

veadk/integrations/ve_viking_db_memory/ve_viking_db_memory.py

Lines changed: 1 addition & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -280,29 +280,4 @@ def update_collection(
280280
"BuiltinEntityTypes": builtin_entity_types,
281281
}
282282
res = self.json("UpdateCollection", {}, json.dumps(params))
283-
return json.loads(res)
284-
285-
def search_memory(self, collection_name, query, filter, limit=10):
286-
params = {
287-
"collection_name": collection_name,
288-
"limit": limit,
289-
"filter": filter,
290-
}
291-
if query:
292-
params["query"] = query
293-
res = self.json("SearchMemory", {}, json.dumps(params))
294-
return json.loads(res)
295-
296-
def add_messages(
297-
self, collection_name, session_id, messages, metadata, entities=None
298-
):
299-
params = {
300-
"collection_name": collection_name,
301-
"session_id": session_id,
302-
"messages": messages,
303-
"metadata": metadata,
304-
}
305-
if entities is not None:
306-
params["entities"] = entities
307-
res = self.json("AddMessages", {}, json.dumps(params))
308-
return json.loads(res)
283+
return json.loads(res)

veadk/memory/long_term_memory_backends/vikingdb_memory_backend.py

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@
3030
from veadk.memory.long_term_memory_backends.base_backend import (
3131
BaseLongTermMemoryBackend,
3232
)
33+
from vikingdb import IAM
34+
from vikingdb.memory import VikingMem
35+
3336
from veadk.utils.logger import get_logger
3437

3538
logger = get_logger(__name__)
@@ -118,6 +121,16 @@ def _get_client(self) -> VikingDBMemoryClient:
118121
region=self.region,
119122
)
120123

124+
def _get_sdk_client(self) -> VikingMem:
125+
return VikingMem(
126+
host="api-knowledgebase.mlp.cn-beijing.volces.com",
127+
region="cn-beijing",
128+
auth=IAM(
129+
ak=self.volcengine_access_key,
130+
sk=self.volcengine_secret_key,
131+
),
132+
)
133+
121134
@override
122135
def save_memory(self, user_id: str, event_strings: list[str], **kwargs) -> bool:
123136
session_id = str(uuid.uuid1())
@@ -139,12 +152,12 @@ def save_memory(self, user_id: str, event_strings: list[str], **kwargs) -> bool:
139152
f"Request for add {len(messages)} memory to VikingDB: collection_name={self.index}, metadata={metadata}, session_id={session_id}"
140153
)
141154

142-
client = self._get_client()
143-
response = client.add_messages(
144-
collection_name=self.index,
155+
client = self._get_sdk_client()
156+
collection = client.get_collection(collection_name=self.index)
157+
response =collection.add_session(
158+
session_id=session_id,
145159
messages=messages,
146160
metadata=metadata,
147-
session_id=session_id,
148161
)
149162

150163
logger.debug(f"Response from add memory to VikingDB: {response}")
@@ -164,9 +177,12 @@ def search_memory(
164177
f"Request for search memory in VikingDB: filter={filter}, collection_name={self.index}, query={query}, limit={top_k}"
165178
)
166179

167-
client = self._get_client()
168-
response = client.search_memory(
169-
collection_name=self.index, query=query, filter=filter, limit=top_k
180+
client = self._get_sdk_client()
181+
collection = client.get_collection(collection_name=self.index)
182+
response = collection.search_memory(
183+
query=query,
184+
filter=filter,
185+
limit=top_k,
170186
)
171187

172188
logger.debug(f"Response from search memory in VikingDB: {response}")

0 commit comments

Comments
 (0)