如何通过Ruby调用AWS Bedrock模型?官方文档理解遇阻
使用AWS Ruby SDK调用AWS Bedrock模型的实现步骤
1. 准备工作
- 安装AWS Bedrock Runtime SDK:
在Gemfile中添加依赖后执行bundle install,或直接安装gem:gem install aws-sdk-bedrockruntime - 配置AWS凭证:
通过环境变量AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY和AWS_REGION设置,或通过~/.aws/credentials文件配置,确保凭证拥有bedrock:InvokeModel权限。
2. 调用Bedrock模型示例
示例1:调用Anthropic Claude 3模型
require "aws-sdk-bedrockruntime" require "json" # 初始化客户端(替换为你使用的区域) client = Aws::BedrockRuntime::Client.new(region: "us-east-1") # 指定模型ID和提示词 model_id = "anthropic.claude-3-sonnet-20240229-v1:0" prompt = "请解释AWS Bedrock的核心优势" # 构造符合Claude 3要求的请求体 request_body = { max_tokens: 1000, messages: [ { role: "user", content: [{ type: "text", text: prompt }] } ] }.to_json # 发送调用请求 response = client.invoke_model( model_id: model_id, body: request_body, content_type: "application/json", accept: "application/json" ) # 解析并输出响应结果 response_body = JSON.parse(response.body.read) puts response_body["content"][0]["text"]
示例2:调用Meta Llama 2模型
require "aws-sdk-bedrockruntime" require "json" client = Aws::BedrockRuntime::Client.new(region: "us-east-1") model_id = "meta.llama2-70b-chat-v1" prompt = "<s>[INST] 请介绍Ruby语言的核心特点 [/INST]" # 构造Llama 2要求的请求体 request_body = { prompt: prompt, max_gen_len: 512, temperature: 0.7 }.to_json response = client.invoke_model( model_id: model_id, body: request_body, content_type: "application/json", accept: "application/json" ) response_body = JSON.parse(response.body.read) puts response_body["generation"]
关键注意事项
- 不同模型的请求/响应格式差异较大,需参考Bedrock控制台对应模型的官方文档调整请求体结构。
- 确保使用的AWS区域支持目标模型,部分模型仅在特定区域可用。
- IAM权限需包含
bedrock:InvokeModel,可通过自定义IAM策略授予该权限。
内容的提问来源于stack exchange,提问作者weilandia
相关产品推荐
相关产品推荐

