Skip to content

Commit 366e1a9

Browse files
author
灵轮
committed
fix:Fix adb retrieve settings issue
Change-Id: I665fa00b9362e58b43295c7167b70ff015ea3ea1 Co-developed-by: Qoder <noreply@qoder.com>
1 parent 99d750e commit 366e1a9

4 files changed

Lines changed: 32 additions & 16 deletions

File tree

agentrun/knowledgebase/__knowledgebase_async_template.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,18 @@ def _get_data_api(self, config: Optional[Config] = None):
276276
converted_provider_settings = None
277277
converted_retrieve_settings = None
278278

279+
# 当 retrieve_settings 被 pydantic Union 匹配到错误的类型时(由于 extra="allow"),
280+
# 从 __pydantic_extra__ 提取原始数据作为 dict 使用
281+
# When retrieve_settings is matched to wrong Union type by pydantic (due to extra="allow"),
282+
# extract raw data from __pydantic_extra__ as dict
283+
if (
284+
self.retrieve_settings is not None
285+
and not isinstance(self.retrieve_settings, dict)
286+
and hasattr(self.retrieve_settings, "__pydantic_extra__")
287+
and self.retrieve_settings.__pydantic_extra__
288+
):
289+
self.retrieve_settings = self.retrieve_settings.__pydantic_extra__
290+
279291
if provider == KnowledgeBaseProvider.BAILIAN:
280292
# 百炼设置 / Bailian settings
281293
if self.provider_settings:

agentrun/knowledgebase/api/__data_async_template.py

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -426,14 +426,10 @@ def _build_query_content_request(
426426
self.retrieve_settings.rerank_factor
427427
)
428428
if self.retrieve_settings.rerank_model is not None:
429-
rerank_model_params: Dict[str, Any] = {
430-
"Name": self.retrieve_settings.rerank_model.name,
431-
}
432-
if self.retrieve_settings.rerank_model.instruct is not None:
433-
rerank_model_params["Instruct"] = (
434-
self.retrieve_settings.rerank_model.instruct
435-
)
436-
request_params["rerank_model"] = rerank_model_params
429+
request_params["rerank_model"] = gpdb_models.QueryContentRequestRerankModel(
430+
name=self.retrieve_settings.rerank_model.name,
431+
instruct=self.retrieve_settings.rerank_model.instruct,
432+
)
437433
if self.retrieve_settings.recall_window is not None:
438434
request_params["recall_window"] = (
439435
self.retrieve_settings.recall_window

agentrun/knowledgebase/api/data.py

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -636,14 +636,10 @@ def _build_query_content_request(
636636
self.retrieve_settings.rerank_factor
637637
)
638638
if self.retrieve_settings.rerank_model is not None:
639-
rerank_model_params: Dict[str, Any] = {
640-
"Name": self.retrieve_settings.rerank_model.name,
641-
}
642-
if self.retrieve_settings.rerank_model.instruct is not None:
643-
rerank_model_params["Instruct"] = (
644-
self.retrieve_settings.rerank_model.instruct
645-
)
646-
request_params["rerank_model"] = rerank_model_params
639+
request_params["rerank_model"] = gpdb_models.QueryContentRequestRerankModel(
640+
name=self.retrieve_settings.rerank_model.name,
641+
instruct=self.retrieve_settings.rerank_model.instruct,
642+
)
647643
if self.retrieve_settings.recall_window is not None:
648644
request_params["recall_window"] = (
649645
self.retrieve_settings.recall_window

agentrun/knowledgebase/knowledgebase.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -458,6 +458,18 @@ def _get_data_api(self, config: Optional[Config] = None):
458458
converted_provider_settings = None
459459
converted_retrieve_settings = None
460460

461+
# 当 retrieve_settings 被 pydantic Union 匹配到错误的类型时(由于 extra="allow"),
462+
# 从 __pydantic_extra__ 提取原始数据作为 dict 使用
463+
# When retrieve_settings is matched to wrong Union type by pydantic (due to extra="allow"),
464+
# extract raw data from __pydantic_extra__ as dict
465+
if (
466+
self.retrieve_settings is not None
467+
and not isinstance(self.retrieve_settings, dict)
468+
and hasattr(self.retrieve_settings, "__pydantic_extra__")
469+
and self.retrieve_settings.__pydantic_extra__
470+
):
471+
self.retrieve_settings = self.retrieve_settings.__pydantic_extra__
472+
461473
if provider == KnowledgeBaseProvider.BAILIAN:
462474
# 百炼设置 / Bailian settings
463475
if self.provider_settings:

0 commit comments

Comments
 (0)