@@ -49,7 +49,23 @@ class VikingDBLTMBackend(BaseLongTermMemoryBackend):
4949 region : str = "cn-beijing"
5050 """VikingDB memory region"""
5151
52+ memory_type : list [str ] = Field (default_factory = list )
53+
5254 def model_post_init (self , __context : Any ) -> None :
55+ # We get memory type from:
56+ # 1. user input
57+ # 2. environment variable
58+ # 3. default value
59+ if not self .memory_type :
60+ env_memory_type = os .getenv ("DATABASE_VIKING_MEMORY_TYPE" )
61+ if env_memory_type :
62+ # "event_1, event_2" -> ["event_1", "event_2"]
63+ self .memory_type = [x .strip () for x in env_memory_type .split ("," )]
64+ else :
65+ self .memory_type = ["sys_event_v1" , "event_v1" ]
66+
67+ logger .info (f"Using memory type: { self .memory_type } " )
68+
5369 # check whether collection exist, if not, create it
5470 if not self ._collection_exist ():
5571 self ._create_collection ()
@@ -135,10 +151,7 @@ def save_memory(self, user_id: str, event_strings: list[str], **kwargs) -> bool:
135151 def search_memory (
136152 self , user_id : str , query : str , top_k : int , ** kwargs
137153 ) -> list [str ]:
138- filter = {
139- "user_id" : user_id ,
140- "memory_type" : ["sys_event_v1" , "event_v1" ],
141- }
154+ filter = {"user_id" : user_id , "memory_type" : self .memory_type }
142155
143156 logger .debug (
144157 f"Request for search memory in VikingDB: filter={ filter } , collection_name={ self .index } , query={ query } , limit={ top_k } "
0 commit comments