Skip to content

Commit c237559

Browse files
fix: fix knowledgebase credential get (#444)
* fix: fix knowledgebase cridential get * fix self.sk * fix none ak
1 parent 5f2ba75 commit c237559

File tree

3 files changed

+49
-32
lines changed

3 files changed

+49
-32
lines changed

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "veadk-python"
3-
version = "0.5.5"
3+
version = "0.5.6"
44
description = "Volcengine agent development kit, integrations with Volcengine cloud services."
55
readme = "README.md"
66
requires-python = ">=3.10"

veadk/knowledgebase/backends/vikingdb_knowledge_backend.py

Lines changed: 47 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,10 @@
2525
from volcengine.viking_knowledgebase import VikingKnowledgeBaseService
2626

2727
import 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+
)
2932
from veadk.configs.database_configs import NormalTOSConfig, TOSConfig
3033
from veadk.knowledgebase.backends.base_backend import BaseKnowledgebaseBackend
3134
from veadk.knowledgebase.backends.utils import (
@@ -136,14 +139,6 @@ class VikingDBKnowledgeBackend(BaseKnowledgebaseBackend):
136139
def model_post_init(self, __context: Any) -> None:
137140
self._set_service_info()
138141

139-
self._viking_sdk_client = VikingKnowledgeBaseService(
140-
host=self.host,
141-
ak=self.volcengine_access_key,
142-
sk=self.volcengine_secret_key,
143-
sts_token=self.session_token,
144-
scheme=self.schema,
145-
)
146-
147142
self.precheck_index_naming()
148143

149144
# check whether collection exist, if not, create it
@@ -165,20 +160,19 @@ def precheck_index_naming(self):
165160
)
166161

167162
def _get_tos_client(self, tos_bucket_name: str) -> VeTOS:
168-
volcengine_access_key = self.volcengine_access_key
169-
volcengine_secret_key = self.volcengine_secret_key
170-
session_token = self.session_token
171-
172-
if not (volcengine_access_key and volcengine_secret_key):
173-
cred = get_credential_from_vefaas_iam()
174-
volcengine_access_key = cred.access_key_id
175-
volcengine_secret_key = cred.secret_access_key
176-
session_token = cred.session_token
163+
ak = None
164+
sk = None
165+
sts_token = None
166+
if not (self.volcengine_access_key and self.volcengine_secret_key):
167+
cred = self._set_service_info()
168+
ak = cred.access_key_id
169+
sk = cred.secret_access_key
170+
sts_token = cred.session_token
177171

178172
return VeTOS(
179-
ak=volcengine_access_key,
180-
sk=volcengine_secret_key,
181-
session_token=session_token,
173+
ak=ak or self.volcengine_access_key,
174+
sk=sk or self.volcengine_secret_key,
175+
session_token=sts_token or self.session_token,
182176
region=self.tos_config.region,
183177
bucket_name=tos_bucket_name or self.tos_config.bucket,
184178
)
@@ -552,6 +546,23 @@ def _search_knowledge(
552546
"chunk_diffusion_count": chunk_diffusion_count,
553547
}
554548

549+
ak = None
550+
sk = None
551+
sts_token = None
552+
if not (self.volcengine_access_key and self.volcengine_secret_key):
553+
cred = self._set_service_info()
554+
ak = cred.access_key_id
555+
sk = cred.secret_access_key
556+
sts_token = cred.session_token
557+
558+
self._viking_sdk_client = VikingKnowledgeBaseService(
559+
host=self.host,
560+
ak=ak or self.volcengine_access_key,
561+
sk=sk or self.volcengine_secret_key,
562+
sts_token=sts_token or self.session_token,
563+
scheme=self.schema,
564+
)
565+
555566
response = self._viking_sdk_client.search_knowledge(
556567
collection_name=self.index,
557568
project=self.volcengine_project,
@@ -575,7 +586,7 @@ def _search_knowledge(
575586

576587
return entries
577588

578-
def _set_service_info(self):
589+
def _set_service_info(self) -> VeIAMCredential:
579590
env_host = getenv(
580591
"DATABASE_VIKING_BASE_URL",
581592
default_value=None,
@@ -592,11 +603,8 @@ def _set_service_info(self):
592603
"DATABASE_VIKING_BASE_URL must start with http:// or https://"
593604
)
594605

595-
if not (self.volcengine_access_key and self.volcengine_secret_key):
596-
cred = get_credential_from_vefaas_iam()
597-
self.volcengine_access_key = cred.access_key_id
598-
self.volcengine_secret_key = cred.secret_access_key
599-
self.session_token = cred.session_token
606+
cred = get_credential_from_vefaas_iam()
607+
return cred
600608

601609
def _do_request(
602610
self,
@@ -606,11 +614,20 @@ def _do_request(
606614
) -> dict:
607615
full_path = f"{self.base_url}{path}"
608616

617+
ak = None
618+
sk = None
619+
sts_token = None
620+
if not (self.volcengine_access_key and self.volcengine_secret_key):
621+
cred = self._set_service_info()
622+
ak = cred.access_key_id
623+
sk = cred.secret_access_key
624+
sts_token = cred.session_token
625+
609626
request = build_vikingdb_knowledgebase_request(
610627
path=path,
611-
volcengine_access_key=self.volcengine_access_key,
612-
volcengine_secret_key=self.volcengine_secret_key,
613-
session_token=self.session_token,
628+
volcengine_access_key=ak or self.volcengine_access_key,
629+
volcengine_secret_key=sk or self.volcengine_secret_key,
630+
session_token=sts_token or self.session_token,
614631
method=method,
615632
data=body,
616633
)

veadk/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
VERSION = "0.5.5"
15+
VERSION = "0.5.6"

0 commit comments

Comments
 (0)