如何使用@aws-sdk/client-bedrock-runtime生成图片?创建客户端后不知调用方法
使用AWS BedrockRuntimeClient调用模型发送指令
你已经创建了BedrockRuntimeClient实例,接下来可以通过以下步骤调用模型并发送指令:
1. 导入对应命令类
首先需要导入调用模型所需的命令,最常用的是InvokeModelCommand(用于同步获取完整响应),如果需要流式输出可以用InvokeModelWithResponseStreamCommand:
import { BedrockRuntimeClient, InvokeModelCommand } from "@aws-sdk/client-bedrock-runtime";
2. 构建模型调用参数
不同模型的请求格式差异较大,下面是两个主流模型的参数示例:
示例:调用Anthropic Claude 3系列模型
const invokeParams = { modelId: "anthropic.claude-3-sonnet-20240229-v1:0", // 替换为目标模型ID contentType: "application/json", accept: "application/json", body: JSON.stringify({ anthropic_version: "bedrock-2023-05-31", max_tokens: 1024, messages: [ { role: "user", content: "请解释TypeScript类型系统的核心优势" // 你的指令内容 } ] }) };
示例:调用Amazon Titan Text系列模型
const invokeParams = { modelId: "amazon.titan-text-express-v1", contentType: "application/json", accept: "application/json", body: JSON.stringify({ inputText: "请解释TypeScript类型系统的核心优势", textGenerationConfig: { maxTokenCount: 1024, temperature: 0.7, // 控制输出随机性,0-1之间 topP: 0.9 } }) };
3. 执行调用并解析响应
通过client发送命令,然后解析响应结果:
async function callBedrockModel() { try { const command = new InvokeModelCommand(invokeParams); const response = await client.send(command); // 解码响应体(Bedrock返回的是Uint8Array格式) const responseBody = JSON.parse(new TextDecoder().decode(response.body)); // 提取输出内容,不同模型格式不同 // Claude 3的输出提取方式 if (responseBody.content) { console.log("模型输出:", responseBody.content[0].text); } // Titan Text的输出提取方式 // if (responseBody.results) { // console.log("模型输出:", responseBody.results[0].outputText); // } } catch (err) { console.error("调用失败:", err); } } // 执行调用 callBedrockModel();
关键注意事项
- 确认AWS账号已获得目标模型的调用权限,IAM角色需配置
bedrock:InvokeModel权限。 - 不同模型的请求/响应格式必须严格匹配,具体参考对应模型的官方文档。
- 若需要实时流式输出,替换为
InvokeModelWithResponseStreamCommand,并通过监听流事件处理输出。
内容的提问来源于stack exchange,提问作者Wasyn
相关产品推荐
相关产品推荐

