目录

利用Amazon-Bedrock畅玩Claude-3等多种领先模型,抢占AI高地体验倒计时4小时

利用Amazon Bedrock畅玩Claude 3等多种领先模型,抢占AI高地(体验倒计时4小时)

https://i-blog.csdnimg.cn/blog_migrate/5ec4887680c844ed1b9b290fad148d4a.png

快乐的时间总是短暂的,Claude 3 在亚马逊云科技上限时体验仅剩4小时,上次分享了入门级操作教程,本期给大家带来AWS Lambda + Amazon Bedrock一起构建可以便捷使用的Claude 3接口

AWS Lambda

AWS Lambda 是一项计算服务,可以运行您的代码以响应事件并自动管理计算资源,这使其成为将想法转化为现代生产无服务器应用程序的最快方式。

用我们大众可理解的解释来讲,就是我们专注于代码层面,不考虑底层运行逻辑,类似的友商产品例如函数计算、云函数等

Amazon Bedrock

Amazon Bedrock 是一项完全托管的服务,通过单个 API 提供来自 AI21 Labs、Anthropic、Cohere、Meta、Stability AI 和 Amazon 等领先人工智能公司的高性能基础模型(FM),以及通过安全性、隐私性和负责任的 AI 构建生成式人工智能应用程序所需的一系列广泛功能。使用 Amazon Bedrock,您可以轻松试验和评估适合您的使用案例的热门 FM,通过微调和检索增强生成(RAG)等技术利用您的数据对其进行私人定制,并构建使用您的企业系统和数据来源执行任务的代理。由于 Amazon Bedrock 是无服务器的,因此您无需管理任何基础设施,并且可以使用已经熟悉的 AWS 服务将生成式人工智能功能安全地集成和部署到您的应用程序中。

本次咱们的实验就会用到Amazon Bedrock服务,通过在lambda上面使用Amazon Bedrock调用Claude 3的api,最终以URL的形式对外暴露

动手实践

Amazon Bedrock设置

首先我们要确保咱们自己的账户能够成功启用Amazon Bedrock服务,请检查是否有满足以下条件之一

  1. 亚马逊云科技全球账户的billing账单地址设置是否是海外,因为在中国大陆是无法使用Claude 3模型的

https://i-blog.csdnimg.cn/blog_migrate/dcb8539a2d5df6a35eb89b5e39567451.png

  1. 可以设置Tax信息地址

https://i-blog.csdnimg.cn/blog_migrate/dc1facf05c9d35c474fb3c720a8f5fb9.png

确保能够满足以上条件后,按照之前文章的操作流程或者亚马逊云科技给出《限时使用Claude3》的教程进行Claude 3模型启用

https://i-blog.csdnimg.cn/blog_migrate/099be3a90c8c5c9fb3d34697eda2cde2.png

创建IAM 角色

分别添加如下权限

  1. AmazonBedrockFullAccess
  2. AWSLambdaBasicExecutionRole

https://i-blog.csdnimg.cn/blog_migrate/a597ae1475db93cc7ee584d1ed0db566.png

https://i-blog.csdnimg.cn/blog_migrate/9b249f5b2a3e6c521c103d8154198dec.png

https://i-blog.csdnimg.cn/blog_migrate/20f21b9db830087ca10ec6a821c89eff.png

https://i-blog.csdnimg.cn/blog_migrate/b2c60dc9d1f2ff52edcb5c918dad6c44.png

https://i-blog.csdnimg.cn/blog_migrate/f90782951739d1b73248d002c95f0f46.png

编写AWS Lambda函数

https://i-blog.csdnimg.cn/blog_migrate/6cf7d39424f7c544a4e8654d11e5e2f2.png

https://i-blog.csdnimg.cn/blog_migrate/c81f927de103a06ea4edcb93737fabf9.png

代码填充

参考:

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
    }

https://i-blog.csdnimg.cn/blog_migrate/712144221acd17bf49a67fc6cc1bfcc7.png

修改函数超时以及创建函数URL

https://i-blog.csdnimg.cn/blog_migrate/b16e27561e52ad63775260ab91480d05.png

根据自身需求是否设置身份验证

https://i-blog.csdnimg.cn/blog_migrate/2054e6abcdd347e226f55cc0ca0de8fd.png

https://i-blog.csdnimg.cn/blog_migrate/b20d47201b805c5d15cc6e27ab974b25.png

本地测试代码

import requests

url = '你的AWS lambda函数URL'

payload = input("User:")

while True:
    resp = requests.request("POST", url, data=payload)
    print(resp.text)
    payload = input("User:")
    if payload == "q":
        break

https://i-blog.csdnimg.cn/blog_migrate/5618364a5ecc19760fccae1029570b9b.png

当然还有很多玩法,例如我们可以使用boto3包中的"invoke_model_with_response_stream",同样可以实现对话功能,我们也可以通过调用接口,将多式联运消息中的图像和提示文本传递给AnthropicClaude 3 Sonnet模型

从这样一个小的实验,我们可以向后延申,例如

  1. 构建一个前端页面,直接给用户页面,对接对应的接口,使用起来更优雅
  2. 联合更多的服务一起使用,例如结合Amazon API Gateway、AWS Lambda、Amazon Bedrock、Amazon Dynamo等一起构建一个带有记录的Claude3模型工作流

更多精彩内容还是需要广大同学们一起去探索和发现,欢迎大家通过亚马逊云科技Amazon Bedrock访问包括Claude3在内的多种领先模型,以及学习上述所提到的服务,在构建工作流的时候实现全线Serverless化,降低运维成本!

好课推荐

https://i-blog.csdnimg.cn/blog_migrate/a0c273de64a508d0f40536bfba804e6b.png

https://i-blog.csdnimg.cn/blog_migrate/e0c924df5545c4c0987805921c4fbd7f.png

https://i-blog.csdnimg.cn/blog_migrate/d6a07e3aa2e18fa7fb27a98e76e27729.png