> 文章作者:指剑
![image.png](https://dev-media.amazoncloud.cn/ce7302d7bfda494592fbd927b7276a12_image.png "image.png")
快乐的时间总是短暂的,Claude 3 在亚马逊云科技上限时体验仅剩4小时,上次分享了入门级操作教程,本期给大家带来 Amazon Lambda + [Amazon Bedrock](https://aws.amazon.com/cn/bedrock/?trk=cndc-detail) 一起构建可以便捷使用的 Claude 3 接口
### Amazon Lambda
Amazon Lambda 是一项计算服务,可以运行您的代码以响应事件并自动管理计算资源,这使其成为将想法转化为现代生产[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)应用程序的最快方式。
用我们大众可理解的解释来讲,就是我们专注于代码层面,不考虑底层运行逻辑,类似的友商产品例如函数计算、云函数等
### Amazon Bedrock
[Amazon Bedrock](https://aws.amazon.com/cn/bedrock/?trk=cndc-detail) 是一项完全托管的服务,通过单个 API 提供来自 AI21 Labs、Anthropic、Cohere、Meta、Stability AI 和 Amazon 等领先人工智能公司的高性能基础模型(FM),以及通过安全性、隐私性和负责任的 AI 构建生成式人工智能应用程序所需的一系列广泛功能。使用 [Amazon Bedrock](https://aws.amazon.com/cn/bedrock/?trk=cndc-detail),您可以轻松试验和评估适合您的使用案例的热门 FM,通过微调和检索增强生成(RAG)等技术利用您的数据对其进行私人定制,并构建使用您的企业系统和数据来源执行任务的代理。由于 [Amazon Bedrock](https://aws.amazon.com/cn/bedrock/?trk=cndc-detail) 是[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)的,因此您无需管理任何基础设施,并且可以使用已经熟悉的亚马逊云科技服务将生成式人工智能功能安全地集成和部署到您的应用程序中。
**本次咱们的实验就会用到 [Amazon Bedrock](https://aws.amazon.com/cn/bedrock/?trk=cndc-detail) 服务,通过在 lambda 上面使用 [Amazon Bedrock](https://aws.amazon.com/cn/bedrock/?trk=cndc-detail) 调用 Claude 3 的 api,最终以 URL 的形式对外暴露**
### 动手实践
##### Amazon Bedrock 设置
首先我们要确保咱们自己的账户能够成功启用 [Amazon Bedrock](https://aws.amazon.com/cn/bedrock/?trk=cndc-detail) 服务,请检查是否有满足以下条件之一
1. 亚马逊云科技全球账户的 billing 账单地址设置是否是海外,因为在中国大陆是无法使用 Claude 3 模型的
https://us-east-1.console.aws.amazon.com/billing/home?region=us-east-1#/paymentpreferences?trk=cndc-detail
![image.png](https://dev-media.amazoncloud.cn/3b68eaaaab32429d993d19a14243449e_image.png "image.png")
2. 可以设置 Tax 信息地址
https://us-east-1.console.aws.amazon.com/billing/home?region=us-east-1#/tax-settings?trk=cndc-detail
![image.png](https://dev-media.amazoncloud.cn/a7ed05b4bd5841efb8503b4423f5aad5_image.png "image.png")
确保能够满足以上条件后,按照之前文章的操作流程或者亚马逊云科技给出《限时使用Claude3》的教程进行 Claude 3 模型启用
https://us-east-1.console.aws.amazon.com/bedrock/home?region=us-east-1#/modelaccess?trk=cndc-detail
![image.png](https://dev-media.amazoncloud.cn/e4abad92cf1a4be48bf614eb3f583667_image.png "image.png")
### 创建 IAM 角色
分别添加如下权限
1. AmazonBedrockFullAccess
1. AmazonLambdaBasicExecutionRole
https://us-east-1.console.aws.amazon.com/iam/home?region=us-east-1#/roles?trk=cndc-detail
![image.png](https://dev-media.amazoncloud.cn/3774130539e34e8a9c5e09fec723fd4f_image.png "image.png")
![image.png](https://dev-media.amazoncloud.cn/f9be9af9ea184154859410d223dd6fc9_image.png "image.png")
![image.png](https://dev-media.amazoncloud.cn/0e5ca1d159b7431aacf18e02b61d4c70_image.png "image.png")
![image.png](https://dev-media.amazoncloud.cn/1f536511f636490a949878fe7c80fb4f_image.png "image.png")
![image.png](https://dev-media.amazoncloud.cn/8c006eba4d55414b9c2c7718f0171b1f_image.png "image.png")
### 编写 Amazon Lambda 函数
https://us-east-1.console.aws.amazon.com/lambda/home?region=us-east-1#/functions?trk=cndc-detail
![image.png](https://dev-media.amazoncloud.cn/7b415fd702a24630a6d21d14a46edd42_image.png "image.png")
![image.png](https://dev-media.amazoncloud.cn/aebce5267bfd4f7cb0cc40b1845e0a14_image.png "image.png")
##### 代码填充
参考:
https://docs.aws.amazon.com/zh_cn/bedrock/latest/userguide/model-parameters-anthropic-claude-messages.html?trk=cndc-detail
```
import boto3
import json
import base64
bedrock = boto3.client("bedrock-runtime")
def lambda_handler(event, context):
user_message = base64.b64decode(event['body']).decode()
body = json.dumps({
"max_tokens": 1000,
"messages": [{"role": "user", "content": user_message}],
"anthropic_version": "bedrock-2023-05-31"
})
#Call the claude3 on the Amazon Bedrock
response = bedrock.invoke_model(
body=body,
modelId="anthropic.claude-3-sonnet-20240229-v1:0"
)
#Extract the response content in the json
response_body = json.loads(response.get("body").read())
resp_to_user = response_body.get("content")[0]['text']
return {
'statusCode': 200,
'body': resp_to_user
}
```
![image.png](https://dev-media.amazoncloud.cn/d1016e4291a240698db17719a3a8dc33_image.png "image.png")
##### 修改函数超时以及创建函数 URL
![image.png](https://dev-media.amazoncloud.cn/1eb3a39daf5a40e8b8a48e25e3efe22c_image.png "image.png")
根据自身需求是否设置身份验证
![image.png](https://dev-media.amazoncloud.cn/f0b3c58d51f54d0c89fe4290168cd194_image.png "image.png")
![image.png](https://dev-media.amazoncloud.cn/99c83866e0b34471a52c94222f8fea6c_image.png "image.png")
### 本地测试代码
```
import requests
url = '你的 Amazon lambda 函数 URL'
payload = input("User:")
while True:
resp = requests.request("POST", url, data=payload)
print(resp.text)
payload = input("User:")
if payload == "q":
break
```
![image.png](https://dev-media.amazoncloud.cn/79081c8309c54dc38e1e683466683649_image.png "image.png")
当然还有很多玩法,例如我们可以使用 boto3 包中的 "invoke_model_with_response_stream",同样可以实现对话功能,我们也可以通过调用接口,将多式联运消息中的图像和提示文本传递给 AnthropicClaude 3 Sonnet 模型
从这样一个小的实验,我们可以向后延申,例如
构建一个前端页面,直接给用户页面,对接对应的接口,使用起来更优雅
联合更多的服务一起使用,例如结合 [Amazon API Gateway](https://aws.amazon.com/cn/api-gateway/?trk=cndc-detail)、Amazon Lambda、[Amazon Bedrock](https://aws.amazon.com/cn/bedrock/?trk=cndc-detail)、Amazon Dynamo 等一起构建一个带有记录的 Claude3 模型工作流
更多精彩内容还是需要广大同学们一起去探索和发现,欢迎大家通过亚马逊云科技 [Amazon Bedrock](https://aws.amazon.com/cn/bedrock/?trk=cndc-detail) 访问包括 Claude3 在内的多种领先模型,以及学习上述所提到的服务,在构建工作流的时候实现全线 Serverless化,降低运维成本!
##### 好课推荐
Amazon Lambda Foundations (Simplified Chinese)(中文配音版)
https://explore.skillbuilder.aws/learn/course/internal/view/elearning/1604/aws-lambda-foundations-simplified-chinesezhong-wen-pei-yin-ban?trk=7f7b63dd-733b-4a1e-9ad6-11c2b57b54ce&sc_channel=el?trk=cndc-detail
![image.png](https://dev-media.amazoncloud.cn/e1d5b2caeb0c40058a3f278dea08fb3e_image.png "image.png")
[Amazon API Gateway](https://aws.amazon.com/cn/api-gateway/?trk=cndc-detail) for Serverless Applications (Simplified Chinese)(中文配音版)
https://explore.skillbuilder.aws/learn/course/internal/view/elearning/1459/amazon-api-gateway-for-serverless-applications-simplified-chinesezhong-wen-pei-yin-ban?trk=7f7b63dd-733b-4a1e-9ad6-11c2b57b54ce&sc_channel=el?trk=cndc-detail
![image.png](https://dev-media.amazoncloud.cn/c1751088186d44df8353cb3b1ceab79f_image.png "image.png")
![image.png](https://dev-media.amazoncloud.cn/80403d9817674aea934332e3934e06d1_image.png "image.png")
**前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您了解行业前沿技术和发展海外业务选择推介该服务。*
[![4.png](https://dev-media.amazoncloud.cn/22db0eea3a71444abfa16544b122d7a0_4.png "4.png")](https://summit.amazoncloud.cn/2024/register.html?source=DSJAVfG2GS7gEk2Osm6kYXAa+8HnSEVdbCVjkuit7lE= )