专注云服务商活动
网站运营运维笔记

亲测实现Bedrock Access Gateway 部署 OpenAI兼容Claude模型调用

Amazon Bedrock,一个来自亚马逊云科技的一项全面、安全和灵活的服务,用于构建生成式 AI 应用程序和代理。Amazon Bedrock 支持连接到领先的基础模型 (FM)、用于部署和运行代理的服务、用于微调、保护和优化模型的工具,以及用于将应用程序连接到最新数据的知识库,从而使我们开发者拥有从实验快速过渡到实际部署所需的一切。Amazon Bedrock 提供了广泛的基础模型(如Claude 3 Opus/Sonnet/Haiku、Llama 2/3、Mistral/Mixtral等),以及构建生成式AI应用程序的多种功能。

在这里,我们也可以使用 OpenAI 的 API 或 SDK 无缝集成并试用 Amazon Bedrock 的模型,无需对现有代码进行修改,这样更为方便。在这里,Bedrock Access Gateway (BAG)是官方开发的一个Proxy小工具,可以通过利用CloudFormation快速部署。实现兼容 OpenAI API 的代理,使我们不需要修改任何代码,就可以把 OpenAI API 的调用转发到 Amazon Bedrock,从而获得包括 Claude3 在内的多种 LLM 的优秀功能。

亲测实现Bedrock Access Gateway 部署 OpenAI兼容Claude模型调用 - 第1张

现在开始Bedrock Access Gateway整个方案的配置。

我们开始部署这个过程且做记录。在这里,我们也需要提到的,如果我们现在新注册亚马逊云科技账号,可以免费得到最高200美元体验金,用于体验平台中的超过200个的云服务,包括Amazon Bedrock 。

亚马逊云官网申请点击这里申请地址注册立享200+免费云产品

Bedrock Access Gateway 需要我们创建API KEY密钥来验证,我们注册且登录AWS控制台,如下图搜索System Manager。

亲测实现Bedrock Access Gateway 部署 OpenAI兼容Claude模型调用 - 第2张

我们可以在System Manager控制台上。

亲测实现Bedrock Access Gateway 部署 OpenAI兼容Claude模型调用 - 第3张

如上图找到左侧的 Parameter Store,然后去创建参数。

亲测实现Bedrock Access Gateway 部署 OpenAI兼容Claude模型调用 - 第4张

设定参数的名称选择标准。

亲测实现Bedrock Access Gateway 部署 OpenAI兼容Claude模型调用 - 第5张

然后在类型中选择 SecureString 类型,KMS密钥源选择"我的当前账户"。

亲测实现Bedrock Access Gateway 部署 OpenAI兼容Claude模型调用 - 第6张

值自定义设置。用大小写和数字组合,不要用字符。且自己保存。

亲测实现Bedrock Access Gateway 部署 OpenAI兼容Claude模型调用 - 第7张

保存创建后,我们看到这里的名称。

亲测实现Bedrock Access Gateway 部署 OpenAI兼容Claude模型调用 - 第8张

然后我们搜索 CloudFormation ,去实现部署Bedrock Access Gateway。

访问官方提供的Amazon CloudFormation 堆栈模板启动链接。登录亚马逊云科技的控制台后,跳转到 Amazon CloudFormation 创建堆栈页面。

亲测实现Bedrock Access Gateway 部署 OpenAI兼容Claude模型调用 - 第9张

都是默认,然后下一步。

亲测实现Bedrock Access Gateway 部署 OpenAI兼容Claude模型调用 - 第10张

KEY 参数文本框里填上在第一步创建的参数的名称一致。然后一步步完成创建。

亲测实现Bedrock Access Gateway 部署 OpenAI兼容Claude模型调用 - 第11张

部署过程需要大约几分钟,而后在部署完成后,我们再到 CloudFormation 堆栈的输出选项卡找到并记下 API Base URL,,如上图,这里的 URL 将用于后续配置环境变量。

最后,我们再去设置和调试实现功能。推荐通过环境变量设置密钥和访问接口地址。

以如下一段调用OpenAI ChatGPT的代码为例。

from openai import OpenAI
client = OpenAI()

completion = client.chat.completions.create(
  model="gpt-3.5-turbo",
  messages=[
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "你是什么模型?"}
  ]
)

print(completion.choices[0].message)

现在更换其中的model为Bedrock上Claude3的model。

from openai import OpenAI
client = OpenAI()

completion = client.chat.completions.create(
  model="anthropic.claude-3-sonnet-20240229-v1:0",
  messages=[
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "你是什么模型?"}
  ]
)

print(completion.choices[0].message)

设置环境变量如下:

export OPENAI_API_KEY=1qazxsw23edcvfr4
export OPENAI_BASE_URL=http://Bedroc-Proxy-xYrsBbLZWYcw-751203243.us-west-2.elb.amazonaws.com/api/v1

最后我们可以测试,通过运行代码,是否可以看到代码链接的是Bedrock上的Claude,也输出了对应的内容,这样我们就可以确认Bedrock Access Gateway能正常工作。

如果我们通过使用 Bedrock Access Gateway 这种方案提供了开箱即用、兼容 OpenAI 的代理功能,很好的帮助用户无缝地从 OpenAI 迁移到 Amazon Bedrock,不需要修改应用代码即可实现无缝迁移。

文章参考文献:

1、https://aws.amazon.com/cn/blogs/china/quickly-access-multiple-llms-with-the-bedrock-access-gateway-solution/

2、https://blog.bitipcman.com/bedrock-access-gateway-openai-migrate-to-bedrock-anthropic-claude/

3、https://github.com/aws-samples/bedrock-access-gateway/blob/main/README_CN.md

投上你的一票
域名主机商优惠信息推送QQ群: 627775477 获取商家优惠推送,禁言。
赞(0)
未经允许不得转载:老左笔记 » 亲测实现Bedrock Access Gateway 部署 OpenAI兼容Claude模型调用