|
|
|
@@ -21,7 +21,7 @@ class BedrockRetrieveTool(BuiltinTool): |
|
|
|
|
|
|
|
retrieval_configuration = {"vectorSearchConfiguration": {"numberOfResults": num_results}} |
|
|
|
|
|
|
|
# 如果有元数据过滤条件,则添加到检索配置中 |
|
|
|
# Add metadata filter to retrieval configuration if present |
|
|
|
if metadata_filter: |
|
|
|
retrieval_configuration["vectorSearchConfiguration"]["filter"] = metadata_filter |
|
|
|
|
|
|
|
@@ -77,7 +77,7 @@ class BedrockRetrieveTool(BuiltinTool): |
|
|
|
if not query: |
|
|
|
return self.create_text_message("Please input query") |
|
|
|
|
|
|
|
# 获取元数据过滤条件(如果存在) |
|
|
|
# Get metadata filter conditions (if they exist) |
|
|
|
metadata_filter_str = tool_parameters.get("metadata_filter") |
|
|
|
metadata_filter = json.loads(metadata_filter_str) if metadata_filter_str else None |
|
|
|
|
|
|
|
@@ -86,7 +86,7 @@ class BedrockRetrieveTool(BuiltinTool): |
|
|
|
query_input=query, |
|
|
|
knowledge_base_id=self.knowledge_base_id, |
|
|
|
num_results=self.topk, |
|
|
|
metadata_filter=metadata_filter, # 将元数据过滤条件传递给检索方法 |
|
|
|
metadata_filter=metadata_filter, |
|
|
|
) |
|
|
|
|
|
|
|
line = 5 |
|
|
|
@@ -109,7 +109,7 @@ class BedrockRetrieveTool(BuiltinTool): |
|
|
|
if not parameters.get("query"): |
|
|
|
raise ValueError("query is required") |
|
|
|
|
|
|
|
# 可选:可以验证元数据过滤条件是否为有效的 JSON 字符串(如果提供) |
|
|
|
# Optional: Validate if metadata filter is a valid JSON string (if provided) |
|
|
|
metadata_filter_str = parameters.get("metadata_filter") |
|
|
|
if metadata_filter_str and not isinstance(json.loads(metadata_filter_str), dict): |
|
|
|
raise ValueError("metadata_filter must be a valid JSON object") |