3030from veadk .memory .long_term_memory_backends .base_backend import (
3131 BaseLongTermMemoryBackend ,
3232)
33+ from vikingdb import IAM
34+ from vikingdb .memory import VikingMem
35+
3336from veadk .utils .logger import get_logger
3437
3538logger = get_logger (__name__ )
@@ -118,6 +121,18 @@ def _get_client(self) -> VikingDBMemoryClient:
118121 region = self .region ,
119122 )
120123
124+ def _get_sdk_client (self ) -> VikingMem :
125+ client = self ._get_client ()
126+ return VikingMem (
127+ host = client .get_host (),
128+ region = self .region ,
129+ auth = IAM (
130+ ak = self .volcengine_access_key ,
131+ sk = self .volcengine_secret_key ,
132+ ),
133+ sts_token = self .session_token ,
134+ )
135+
121136 @override
122137 def save_memory (self , user_id : str , event_strings : list [str ], ** kwargs ) -> bool :
123138 assistant_id = kwargs .get ("assistant_id" , "assistant" )
@@ -140,12 +155,12 @@ def save_memory(self, user_id: str, event_strings: list[str], **kwargs) -> bool:
140155 f"Request for add { len (messages )} memory to VikingDB: collection_name={ self .index } , metadata={ metadata } , session_id={ session_id } "
141156 )
142157
143- client = self ._get_client ()
144- response = client .add_messages (
145- collection_name = self .index ,
158+ client = self ._get_sdk_client ()
159+ collection = client .get_collection (collection_name = self .index )
160+ response = collection .add_session (
161+ session_id = session_id ,
146162 messages = messages ,
147163 metadata = metadata ,
148- session_id = session_id ,
149164 )
150165
151166 logger .debug (f"Response from add memory to VikingDB: { response } " )
@@ -165,9 +180,12 @@ def search_memory(
165180 f"Request for search memory in VikingDB: filter={ filter } , collection_name={ self .index } , query={ query } , limit={ top_k } "
166181 )
167182
168- client = self ._get_client ()
169- response = client .search_memory (
170- collection_name = self .index , query = query , filter = filter , limit = top_k
183+ client = self ._get_sdk_client ()
184+ collection = client .get_collection (collection_name = self .index )
185+ response = collection .search_memory (
186+ query = query ,
187+ filter = filter ,
188+ limit = top_k ,
171189 )
172190
173191 logger .debug (f"Response from search memory in VikingDB: { response } " )
0 commit comments