您好,欢迎来到图艺博知识网。
搜索
您的当前位置:首页云技术分享|借助Bedrock Access Gateway实现OpenAI代码调用Claude

云技术分享|借助Bedrock Access Gateway实现OpenAI代码调用Claude

来源:图艺博知识网

场景

客户原先的服务架构使用chatgpt,业务已经部署完成,现在想要切换到claude,但是如果整个业务重新部署十分消耗成本。本方案提供一种方式帮助我们的客户可以在原来的基础上进行改动就可以轻松调用到claude。

架构

Chatgpt和claude的API调用有所不同,如果我们需要从Chatgpt切换到claude,就需要修改我们的业务代码,更新依赖包。并按照Bedrock和Claude3的要求去构建访问请求。同时,在身份认证场景上,OpenAI是单一的API Key认证,而Amazon Bedrock是标准的AWS服务,需要Access Key和Secret Key(AKSK)两个字符串进行身份认证。这些操作都会增加客户的成本。

✦架构图如下:

NO.01  通过Cloudformation部署

首先要登陆到我们要部署的aws账号,并且选择好区域。然后进入Github的Readme(https://github.com/aws-samples/bedrock-access-gateway)页面,从中找到CloudFormation的链接,以比较轻量的Lambda方案为例,点击按钮启动模版。

然后页面会自动跳转到CloudFormation,直接点击下一步。

点击提交后,等待3-5分钟创建完成,如果报错请查看事件,检查是否具有创建资源相关权限。

NO.02 获取GateWay请求的入口

NO.03  调用Claude

为了安全,OpenAI的密钥一般放在环境变量中,而不是在代码中显式声明。否则,当代码被上传到代码仓库之后,将会导致所有能访问代码仓库的人都能看到你的密钥,这样会造成密钥泄漏。

设置环境变量

export OPENAI_API_KEY=<API key>

export OPENAI_BASE_URL=<API base url>

# For older versions

# https://github.com/openai/openai-python/issues/624

export OPENAI_API_BASE=<API base url>

示例代码,将model替换成claude的model id

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)

然后在运行代码,即可看到代码链接的是Bedrock上的Claude,也输出了对应的内容。如下截图:

更多行业云技术分享,敬请关注!

欢迎关注「博思云为」官方账号

第一时间获取关于博思云为的最新资讯

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuoyibo.net 版权所有 湘ICP备2023021910号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务