@@ -48,9 +48,11 @@ class VikingDBLTMBackend(BaseLongTermMemoryBackend):
4848
4949 session_token : str = ""
5050
51- region : str = Field (
52- default_factory = lambda : os .getenv ("DATABASE_VIKINGMEM_REGION" ) or "cn-beijing"
51+ cloud_provider : str = Field (
52+ default_factory = lambda : os .getenv ("CLOUD_PROVIDER" , "volces" )
5353 )
54+
55+ region : str = Field (default = "" )
5456 """VikingDB memory region"""
5557
5658 volcengine_project : str = Field (
@@ -61,6 +63,12 @@ class VikingDBLTMBackend(BaseLongTermMemoryBackend):
6163 memory_type : list [str ] = Field (default_factory = list )
6264
6365 def model_post_init (self , __context : Any ) -> None :
66+ if not self .region :
67+ if self .cloud_provider .lower () == "byteplus" :
68+ self .region = os .getenv ("DATABASE_VIKING_REGION" , "cn-hongkong" )
69+ else :
70+ self .region = os .getenv ("DATABASE_VIKING_REGION" , "cn-beijing" )
71+
6472 # We get memory type from:
6573 # 1. user input
6674 # 2. environment variable
@@ -142,7 +150,14 @@ def _get_ak_sk_sts(self) -> tuple[str, str, str]:
142150
143151 def _get_client (self ) -> VikingDBMemoryClient :
144152 ak , sk , sts_token = self ._get_ak_sk_sts ()
153+ if self .cloud_provider .lower () == "byteplus" :
154+ host = f"api-knowledgebase.mlp.{ self .region } .bytepluses.com"
155+
156+ logger .info (f"Cloud provider: { self .cloud_provider .lower ()} " )
157+ logger .info (f"VikingDBLTMBackend: region={ self .region } , host={ host } " )
158+
145159 return VikingDBMemoryClient (
160+ host = host ,
146161 ak = ak ,
147162 sk = sk ,
148163 sts_token = sts_token ,
@@ -151,12 +166,20 @@ def _get_client(self) -> VikingDBMemoryClient:
151166
152167 def _get_sdk_client (self ) -> VikingMem :
153168 ak , sk , sts_token = self ._get_ak_sk_sts ()
169+ if self .cloud_provider .lower () == "byteplus" :
170+ host = f"api-knowledgebase.mlp.{ self .region } .bytepluses.com"
171+
172+ logger .info (f"Cloud provider: { self .cloud_provider .lower ()} " )
173+ logger .info (f"VikingDBLTMBackend: region={ self .region } , host={ host } " )
174+
154175 client = VikingDBMemoryClient (
176+ host = host ,
177+ region = self .region ,
155178 ak = ak ,
156179 sk = sk ,
157180 sts_token = sts_token ,
158- region = self .region ,
159181 )
182+
160183 return VikingMem (
161184 host = client .get_host (),
162185 region = self .region ,
0 commit comments