如何通过JavaScript SDK正确调用AWS Bedrock?代码参数及缺失项咨询
AWS Bedrock RetrieveCommand 参数说明与代码补充
一、RetrieveCommand 必需的 params 参数
RetrieveCommand 用于从Bedrock知识库中检索相关内容,以下是必填参数:
- knowledgeBaseId: 你的Bedrock知识库唯一ID(字符串类型),可在AWS控制台的Bedrock知识库页面获取。
- retrievalQuery: 检索查询对象,必须包含
text字段,值为你要检索的问题或关键词(字符串类型)。 - retrievalConfiguration: 检索配置对象,至少需要指定向量检索的相关设置,比如返回结果数量。常用子参数:
vectorSearchConfiguration: 向量检索配置,包含numberOfResults(可选,默认3,最多10),用于指定返回的匹配文档数量。
示例params结构:
const params = { knowledgeBaseId: "你的知识库ID", retrievalQuery: { text: "需要检索的问题或关键词" }, retrievalConfiguration: { vectorSearchConfiguration: { numberOfResults: 5 // 可选,指定返回结果数 } } };
二、你的代码遗漏内容
- 错误处理: 异步调用未添加异常捕获,一旦请求失败会导致未处理的Promise拒绝。
- 结果处理: 获取返回数据后没有输出或使用,无法查看检索结果。
- 凭证管理: 硬编码凭证是不安全的,生产环境应使用AWS默认凭证链(比如环境变量、ECS/EKS角色、本地AWS配置文件等)。
- 参数缺失: 当前params为空,无法发起有效请求。
修正后的完整代码示例:
const { BedrockAgentRuntimeClient, RetrieveCommand } = require("@aws-sdk/client-bedrock-agent-runtime"); // 生产环境建议使用默认凭证链,无需硬编码 const client = new BedrockAgentRuntimeClient({ region: "us-east-1" }); const params = { knowledgeBaseId: "你的知识库ID", retrievalQuery: { text: "请输入你的检索查询文本" }, retrievalConfiguration: { vectorSearchConfiguration: { numberOfResults: 5 } } }; const command = new RetrieveCommand(params); async function sendRetrievalRequest() { try { const data = await client.send(command); // 打印检索结果 console.log("检索结果:", JSON.stringify(data, null, 2)); } catch (error) { // 捕获并处理错误 console.error("请求失败:", error); } } sendRetrievalRequest();
内容的提问来源于stack exchange,提问作者rishabhsdev
相关产品推荐
相关产品推荐

