【Claude3】利用Python中完成对Bedrock上的Claude的API调用

在这里插入图片描述

文章目录

    • 1. 前期准备工作
    • 2. 安装和配置AWS CLI v2
    • 3. 使用AWS configure命令配置AWS凭据
    • 4. 安装访问Bedrock的SDK
    • 5. 访问Amazon Bedrock UI
    • 6. 订阅Bedrock上的Claude模型
    • 7. 通过CLI命令列出所有可用的Claude模型
    • 8. 向Claude 3 Sonnet on Bedrock生成文本
    • 9. 参考链接

1. 前期准备工作

  • 提前注册准备好一个AWS 海外账号;
  • 设置好一个IAM用户,并赋予相应的访问AWS资源的权限;
  • 为该IAM用户配置一个访问密钥;

2. 安装和配置AWS CLI v2

安装或更新AWS CLI v2。AWS CLI 版本 2 是 AWS CLI 的最新主版本,支持所有最新功能。

# windows系统下,打开CMD命令符提示窗口,输入此串命令,回车,开始安装更新AWS CLI。
msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msiC:\Users\xyb>msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msiC:\Users\xyb>aws --version
aws-cli/2.15.27 Python/3.11.8 Windows/10 exe/AMD64 prompt/off

开始按照指示点击安装即可。

image-20240310103502296

单击“Next”。

image-20240310103536283

因此前已经安装更新过AWS CLI v2,所以显示如下界面,提示改变存储位置修复移除等选项。

image-20240310103725784

此时,完成AWS命令行接口v2安装向导。

image-20240310103733060

最后,执行命令验证AWS CLI V2是否成功安装。

C:\Users\xyb>aws --version
aws-cli/2.15.27 Python/3.11.8 Windows/10 exe/AMD64 prompt/off

3. 使用AWS configure命令配置AWS凭据

在该IAM用户下创建访问密钥。

image-20240310111357557

使用AWS configure命令配置AWS凭据。

C:\Users\xyb>aws configure
AWS Access Key ID [****************WROS]:<xxx>
AWS Secret Access Key [****************IR6n]:<xxxxxx>
Default region name [us-west-2]:<AWS区域>
Default output format [None]:<json>

验证配置好的AWS凭据是否有效。

aws sts get-caller-identity
C:\Users\xyb>aws sts get-caller-identity
{"UserId": "AIDAxxxxxx5E4A","Account": "540xxxxxxxx92","Arn": "arn:aws:iam::540xxxxxxxx92:user/xxxxxxxx"
}

4. 安装访问Bedrock的SDK

Anthropic的客户端SDK支持Bedrock。也可以直接使用AWS SDK,如boto3。

pip install boto3>=1.28.59

image-20240310112437544

5. 访问Amazon Bedrock UI

输入https://aws.amazon.com/cn/,登陆到AWS管理控制台。在下方搜索栏中输入Bedrock。导航进入Amazon Bedrock。

image-20240309181857093

此时,来到Amazon Bedrock界面。可以开始开启Claude 模型访问权限。

image-20240310112858333

6. 订阅Bedrock上的Claude模型

先点击1️⃣模型访问权限,再点击2️⃣管理模型访问权限

image-20240310113324823

勾选要使用的Claude模型。

image-20240310113509292

提示:您现在可以访问此模型。只有在 Bedrock 中使用此模型时,才会向您收费。

接着,点击下方的保存更改的按钮。

image-20240310113624172

此刻,Claude 3 Sonnet模型访问请求已提交。访问状态为正在运行。需要等待几分钟的时间。

image-20240309201628522

稍等片刻之后,点击刷新按钮,可以看到该模型的访问状态,已经变成已授予访问权限,可以使用该模型了。

image-20240309201715091

⚠️注意事项⚠️

若在请求访问该模型出现如下报错信息时,可能是因为该AWS账号注册的联系地址信息不支持。需要进行更改,账户信息地址均需要切换成海外地址。

image-20240309202024233

修改地方①:账户的联系地址。依次按照图示,点击操作修改即可。

image-20240309204931607

修改地方①:账户的账单地址。依次按照图示,点击操作修改即可。

image-20240309205349603

7. 通过CLI命令列出所有可用的Claude模型

aws bedrock list-foundation-models --region=us-west-2 --by-provider anthropic --query "modelSummaries[*].modelId"
C:\Users\xyb>aws bedrock list-foundation-models --region=us-west-2 --by-provider anthropic --query "modelSummaries[*].modelId"
["anthropic.claude-instant-v1:2:100k","anthropic.claude-instant-v1","anthropic.claude-v2:0:18k","anthropic.claude-v2:0:100k","anthropic.claude-v2:1:18k","anthropic.claude-v2:1:200k","anthropic.claude-v2:1","anthropic.claude-v2","anthropic.claude-3-sonnet-20240229-v1:0"
]

温馨提示:使用CLI命令列出AWS上所有可用的Claude模型,需要将AWS CLI更新成最新的版本,旧版本会访问失败。

8. 向Claude 3 Sonnet on Bedrock生成文本

import boto3
import jsonbedrock = boto3.client(service_name="bedrock-runtime")
body = json.dumps({"max_tokens": 256,"messages": [{"role": "user", "content": "Hello, world"}],"anthropic_version": "bedrock-2023-05-31"
})response = bedrock.invoke_model(body=body, modelId="anthropic.claude-3-sonnet-20240229-v1:0")response_body = json.loads(response.get("body").read())
print(response_body.get("content"))

使用Claude模型分析这串代码,效果不错。

这段代码是使用Python和AWS Boto3库来调用Anthropic的Claude AI模型,生成相应的响应内容。让我们逐行解释一下:

  1. import boto3import json分别导入了boto3和json库。boto3是AWS提供的Python SDK,用于与AWS服务进行交互。json库则用于处理JSON数据格式。

  2. bedrock = boto3.client(service_name="bedrock-runtime")创建了一个名为bedrock的Boto3客户端,用于与AWS Bedrock Runtime服务进行交互。Bedrock Runtime是一个托管的服务,用于部署和运行机器学习模型。

  3. body = json.dumps({...})创建了一个JSON字符串作为请求体。这个请求体包含了调用Claude AI模型所需的参数,如最大令牌数(max_tokens)、对话历史(messages)和模型版本(anthropic_version)。

  4. response = bedrock.invoke_model(body=body, modelId="anthropic.claude-3-sonnet-20240229-v1:0")调用了Bedrock Runtime服务的invoke_model方法,传入请求体和要调用的模型ID。模型ID指定了要使用的Claude AI模型的版本。

  5. response_body = json.loads(response.get("body").read())从Bedrock Runtime服务的响应中提取出响应体,并将其从JSON字符串解析为Python字典对象。

  6. print(response_body.get("content"))打印出响应体中的content字段,该字段包含了Claude AI模型生成的响应内容。

总的来说,这段代码首先构建了一个包含对话历史和参数的请求体,然后使用Boto3客户端调用了AWS Bedrock Runtime服务中部署的Claude AI模型。最后,它从服务的响应中提取出模型生成的响应内容并将其打印出来。

image-20240309201737867
image-20240309201804908

9. 参考链接

[1] https://docs.anthropic.com/claude/reference/claude-on-amazon-bedrock

[2] https://xybdiy.blog.csdn.net/article/details/134488239

[3] https://console.anthropic.com/settings/keys

[4] https://docs.aws.amazon.com/zh_cn/cli/latest/userguide/getting-started-install.html

温馨提示:Claude 3模型在Amazon Bedrock限时体验活动即将于3月11日零点正式结束。还没体验的小伙伴们抓紧体验啦~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/527246.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基础 | JVM - [指令 性能监控]

INDEX jps&#xff08;jvm 进程工具&#xff09;jinfo&#xff08;java 配置信息工具&#xff09;jstack &#xff08;查看虚拟机栈信息&#xff09;jmap&#xff08;jvm 内存影像工具&#xff09;jstat&#xff08;jvm 统计信息监控工具&#xff09;jvisualvm&#xff08;查看…

《vtk9 book》 官方web版 第3章 - 计算机图形基础 (4 / 5)

3.10 将所有内容整合起来 本节概述了图形对象以及如何在 VTK 中使用它们。 图形模型 我们已经讨论了许多在场景渲染中起作用的对象。现在是将它们整合到一个全面的图形和可视化对象模型中的时候了。 在可视化工具包中&#xff0c;有七个基本对象用于渲染场景。幕后有许多其他对…

Windows下安装pip

一、下载pip 官网地址&#xff1a;https://pypi.org/project/pip/#files 1.1、pip工具查找方法 单击官网首页“PyPi”选项 在弹出来的搜索框中输入“pip” 选择最新的pip版本&#xff0c;点进去 下载pip安装包包 二、安装pip 解压“pip-24.0.tar.gz”&#xff0c;进…

数据结构与算法:链式二叉树

上一篇文章我们结束了二叉树的顺序存储&#xff0c;本届内容我们来到二叉树的链式存储&#xff01; 链式二叉树 1.链式二叉树的遍历1.1二叉树的前序&#xff0c;中序&#xff0c;后序遍历1.2 三种遍历方法代码实现 2. 获取相关个数2.1获取节点个数2.2获取叶节点个数2.3 获取树的…

el-table 插入输入框并进行校验

<template><div><el-form :model"list" ref"ruleForm"><el-table :data"list.tableData" style"width: 100%"><el-table-column prop"time" label"日期" width"180"><…

电子电器架构 —— 车载网关路由表和刷写场景

电子电器架构 —— 车载网关路由表和刷写场景 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 PS:小细节,本文字数5000+,详细描述了网关在车载框架中的具体性能设置。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 没有人关注你。也无需有…

B端树结构组件:各类样式示例(以elementUI为例)和应用案例

hello&#xff0c;我是贝格前端工场&#xff0c;随着对B系统探讨的越来越多&#xff0c;收获了不少点赞和粉丝&#xff0c;我们准备深入研究下去&#xff0c;这次开始研究B端各类组件&#xff0c;欢迎继续点赞关注转发。 一、树结构及其特征 B端树结构组件是一种用于构建B端系…

Delphi 的Read 与Readln 的区别

结合运行窗口&#xff0c;你输入1 2 3 4 这是一行ReadLn在读入时把这四个数当成一行&#xff0c;read(a,b)只读入了前两个数&#xff1a;1 2&#xff0c;就准备读下一行了&#xff0c;下一行输入3&#xff0c;再下一行输入2&#xff0c;所以输出1232&#xff1b; Read是逐个读…

重启 explorer 进程的正确做法(二)

重启资源管理器进程的方法不唯一&#xff0c;但长期以来大家对实施方法用的不到位。 在上一篇中我认为&#xff1a;“我们往往使用 TerminateProcess 并传入 PID 和特殊结束代码 1 或者 taskkill /f /im 等方法重启资源管理器( explorer.exe )&#xff0c;其实这是不正确的。我…

贪吃蛇(C语言实现)

贪食蛇&#xff08;也叫贪吃蛇&#xff09;是一款经典的小游戏。 —————————————————————— 本博客实现使用C语言在Windows环境的控制台中模拟实现贪吃蛇小游戏。 实行的基本功能&#xff1a; • 贪吃蛇地图的绘制 • 蛇吃食物的功能&#xff08;上、…

新IDEA电脑环境设置

1.设置UTF-8 2.Maven 3.JRE选对

【NR 定位】3GPP NR Positioning 5G定位标准解读(九)-增强的小区ID定位

前言 3GPP NR Positioning 5G定位标准&#xff1a;3GPP TS 38.305 V18 3GPP 标准网址&#xff1a;Directory Listing /ftp/ 【NR 定位】3GPP NR Positioning 5G定位标准解读&#xff08;一&#xff09;-CSDN博客 【NR 定位】3GPP NR Positioning 5G定位标准解读&#xff08;…