2525from volcengine .viking_knowledgebase import VikingKnowledgeBaseService
2626
2727import veadk .config # noqa E401
28- from veadk .auth .veauth .utils import get_credential_from_vefaas_iam
28+ from veadk .auth .veauth .utils import (
29+ VeIAMCredential ,
30+ get_credential_from_vefaas_iam ,
31+ )
2932from veadk .configs .database_configs import NormalTOSConfig , TOSConfig
3033from veadk .knowledgebase .backends .base_backend import BaseKnowledgebaseBackend
3134from veadk .knowledgebase .backends .utils import (
@@ -157,20 +160,16 @@ def precheck_index_naming(self):
157160 )
158161
159162 def _get_tos_client (self , tos_bucket_name : str ) -> VeTOS :
160- volcengine_access_key = self .volcengine_access_key
161- volcengine_secret_key = self .volcengine_secret_key
162- session_token = self .session_token
163-
164- if not (volcengine_access_key and volcengine_secret_key ):
165- cred = get_credential_from_vefaas_iam ()
166- volcengine_access_key = cred .access_key_id
167- volcengine_secret_key = cred .secret_access_key
168- session_token = cred .session_token
163+ if not (self .volcengine_access_key and self .volcengine_secret_key ):
164+ cred = self ._set_service_info ()
165+ ak = cred .access_key_id
166+ sk = cred .secret_access_key
167+ sts_token = cred .session_token
169168
170169 return VeTOS (
171- ak = volcengine_access_key ,
172- sk = volcengine_secret_key ,
173- session_token = session_token ,
170+ ak = ak or self . volcengine_access_key ,
171+ sk = sk or self . volcengine_secret_key ,
172+ session_token = sts_token or self . session_token ,
174173 region = self .tos_config .region ,
175174 bucket_name = tos_bucket_name or self .tos_config .bucket ,
176175 )
@@ -544,13 +543,17 @@ def _search_knowledge(
544543 "chunk_diffusion_count" : chunk_diffusion_count ,
545544 }
546545
547- self ._set_service_info ()
546+ if not (self .volcengine_access_key and self .volcengine_secret_key ):
547+ cred = self ._set_service_info ()
548+ ak = cred .access_key_id
549+ sk = cred .secret_access_key
550+ sts_token = cred .session_token
548551
549552 self ._viking_sdk_client = VikingKnowledgeBaseService (
550553 host = self .host ,
551- ak = self .volcengine_access_key ,
552- sk = self .volcengine_secret_key ,
553- sts_token = self .session_token ,
554+ ak = ak or self .volcengine_access_key ,
555+ sk = sk or self .volcengine_secret_key ,
556+ sts_token = sts_token or self .session_token ,
554557 scheme = self .schema ,
555558 )
556559
@@ -577,7 +580,7 @@ def _search_knowledge(
577580
578581 return entries
579582
580- def _set_service_info (self ):
583+ def _set_service_info (self ) -> VeIAMCredential :
581584 env_host = getenv (
582585 "DATABASE_VIKING_BASE_URL" ,
583586 default_value = None ,
@@ -594,11 +597,8 @@ def _set_service_info(self):
594597 "DATABASE_VIKING_BASE_URL must start with http:// or https://"
595598 )
596599
597- if not (self .volcengine_access_key and self .volcengine_secret_key ):
598- cred = get_credential_from_vefaas_iam ()
599- self .volcengine_access_key = cred .access_key_id
600- self .volcengine_secret_key = cred .secret_access_key
601- self .session_token = cred .session_token
600+ cred = get_credential_from_vefaas_iam ()
601+ return cred
602602
603603 def _do_request (
604604 self ,
@@ -608,13 +608,17 @@ def _do_request(
608608 ) -> dict :
609609 full_path = f"{ self .base_url } { path } "
610610
611- self ._set_service_info ()
611+ if not (self .volcengine_access_key and self .volcengine_secret_key ):
612+ cred = self ._set_service_info ()
613+ ak = cred .access_key_id
614+ sk = cred .secret_access_key
615+ sts_token = cred .session_token
612616
613617 request = build_vikingdb_knowledgebase_request (
614618 path = path ,
615- volcengine_access_key = self .volcengine_access_key ,
616- volcengine_secret_key = self .volcengine_secret_key ,
617- session_token = self .session_token ,
619+ volcengine_access_key = ak or self .volcengine_access_key ,
620+ volcengine_secret_key = sk or self .volcengine_secret_key ,
621+ session_token = sts_token or self .session_token ,
618622 method = method ,
619623 data = body ,
620624 )
0 commit comments