【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.rhkb.cn/news/272826.html

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

相关文章

云原生架构设计:分布式消息队列技术解析

消息队列是在消息传输过程中保存消息的容器&#xff0c;消息队列管理器在将消息从源到目标时充当中间人的角色&#xff0c;消息队列的主要目的是提供路由并保证消息的可靠传递。如果发送消息时接收者不可用&#xff0c;那消息队列就会保留消息&#xff0c;直到下次成功消费为止…

Excel 快速填充/输入内容

目录 一. Ctrl D/R 向下/右填充二. 批量输入内容 一. Ctrl D/R 向下/右填充 ⏹如下图所示&#xff0c;通过快捷键向下和向右填充数据 &#x1f914;当选中第一个单元格之后&#xff0c;可以按住Shift后&#xff0c;再选中最后一个单元格&#xff0c;可以选中第一个单元格和最…

CleanMyMac X4.14.7永久免费Mac电脑清理和优化软件

CleanMyMac X 是一款功能强大的 Mac 清理和优化软件&#xff0c;适合以下几类人群使用&#xff1a; 需要定期清理和优化 Mac 的用户&#xff1a;随着时间的推移&#xff0c;Mac 设备上可能会积累大量的无用文件、缓存和垃圾&#xff0c;导致系统运行缓慢。CleanMyMac X 的智能扫…

DataLoader

import torchvision from torch.utils.data import DataLoader from torch.utils.tensorboard import SummaryWriter# 准备的测试数据集 数据放在了CIFAR10文件夹下test_data torchvision.datasets.CIFAR10("./CIFAR10",trainFalse, transformtorchvision.transfor…

React useMemo钩子指南:优化计算性能

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

【解读】OWASP大语言模型应用程序十大风险

OWASP大型语言模型应用程序前十名项目旨在教育开发人员、设计师、架构师、经理和组织在部署和管理大型语言模型&#xff08;LLM&#xff09;时的潜在安全风险。该项目提供了LLM应用程序中常见的十大最关键漏洞的列表&#xff0c;强调了它们的潜在影响、易利用性和在现实应用程序…

[Spring] IoC 控制反转和DI依赖注入和Spring中的实现以及常见面试题

目录 1. 什么是Spring 2.什么是IoC容器 3.通过实例来深入了解IoC容器的作用 3.1造一量可以定义车辆轮胎尺寸的车出现的问题 3.2解决方法 3.3IoC优势 4.DI介绍 5.Spring中的IoC和DI的实现 5.1.存对象 5.1.2 类注解 5.1.3 方法注解 5.2取对像 (依赖注入) 5.2.1.属性…

如何使用Hexo搭建个人博客

文章目录 如何使用Hexo搭建个人博客环境搭建连接 Github创建 Github Pages 仓库本地安装 Hexo 博客程序安装 HexoHexo 初始化和本地预览 部署 Hexo 到 GitHub Pages开始使用发布文章网站设置更换主题常用命令 插件安装解决成功上传github但是web不更新不想上传文章处理方式链接…

复盘-word

word-大学生网络创业交流会 设置段落&#xff0c;段后行距才有分 word-选中左边几行字进行操作 按住alt键进行选中 word复制excel随excel改变&#xff08;选择性粘贴&#xff09; 页边距为普通页边距定义 ##### word 在内容控件里面填文字&#xff08;调属性&#xff09…

BC134 蛇形矩阵

一&#xff1a;题目 二&#xff1a;思路分析 2.1 蛇形矩阵含义 首先&#xff0c;这道题我们要根据这个示例&#xff0c;找到蛇形矩阵是怎么移动的 这是&#xff0c;我们可以标记一下每次移动到方向 我们根据上图可以看出&#xff0c;蛇形矩阵一共有两种方向&#xff0c;橙色…

LLM 推理优化探微 (2) :Transformer 模型 KV 缓存技术详解

编者按&#xff1a;随着 LLM 赋能越来越多需要实时决策和响应的应用场景&#xff0c;以及用户体验不佳、成本过高、资源受限等问题的出现&#xff0c;大模型高效推理已成为一个重要的研究课题。为此&#xff0c;Baihai IDP 推出 Pierre Lienhart 的系列文章&#xff0c;从多个维…

模板不存在:./Application/Home/View/OnContact/Index.html 错误位置

模板不存在:./Application/Home/View/OnContact/Index.html 错误位置FILE: /home/huimingdedhpucixmaihndged5e/wwwroot/ThinkPHP123/Library/Think/View.class.php  LINE: 110 TRACE#0 /home/huimingdedhpucixmaihndged5e/wwwroot/ThinkPHP123/Library/Think/View.class.php(…

Flutter 开发环境搭建-VS Code篇

1.准备环境 Java SDK 下载及安装Flutter SDK 安装及配置环境变量 下载地址将flutter sdk解压目录下的bin目录放到系统环境变量中 检查环境&#xff0c;在系统终端中输入&#xff1a; # 打印flutter sdk版本号 flutter --version# 检查flutter运行环境 flutter doctor第一次运…

弹性地基梁matlab有限元编程 | 双排桩支护结构 | Matlab源码 | 理论文本

专栏导读 作者简介&#xff1a;工学博士&#xff0c;高级工程师&#xff0c;专注于工业软件算法研究本文已收录于专栏&#xff1a;《有限元编程从入门到精通》本专栏旨在提供 1.以案例的形式讲解各类有限元问题的程序实现&#xff0c;并提供所有案例完整源码&#xff1b;2.单元…

uniapp小程序获取位置权限(不允许拒绝)

需求 小程序上如果需要一些定位功能&#xff0c;那么我们需要提前获取定位权限。我们页面的所有功能后续都需要在用户同意的前提下进行&#xff0c;所以一旦用户点了拒绝&#xff0c;我们应该给予提示&#xff0c;并让用于修改为允许。 实现 1.打开手机GPS 经过测试发现即使…

R语言更新版本

目录 一、更新R语言 1、安装最新的R语言版本 2、移动之前安装的packages 3、将Rstudio连接到最新的R语言 二、Rstudio更新 一、更新R语言 1、安装最新的R语言版本 查看当前R语言版本&#xff1a; R.version.string 下载最新的R语言安装包&#xff1a;R: The R Project…

图神经网络实战(4)——基于Node2Vec改进嵌入质量

图神经网络实战&#xff08;4&#xff09;——基于Node2Vec改进嵌入质量 0. 前言1. Node2Vec 架构1.2 定义邻居1.2 在随机游走中引入偏向性1.3 实现有偏随机游走 2. 实现 Node2Vec小结系列链接 0. 前言 Node2Vec 是一种基于 DeepWalk 的架构&#xff0c;DeepWalk 主要由随机游…

苍穹外卖-day01

苍穹外卖-day01 目录 苍穹外卖-day01课程内容1. 软件开发整体介绍1.1 软件开发流程1.2 角色分工1.3 软件环境 2. 苍穹外卖项目介绍2.1 项目介绍2.2 产品原型2.3 技术选型 3. 开发环境搭建3.1 前端环境搭建3.2 后端环境搭建3.2.1 熟悉项目结构3.2.2 Git版本控制3.2.3 数据库环境…

Linux学习:权限

目录 1. shell命令的工作原理与存在意义1.1 shell命令解释器存在的意义1.2 shell解释器的工作原理 2. Linux操作系统&#xff1a;用户2.1 什么是用户2.2 用户的切换操作2.3 用户权限划分的意义 3. Linux中权限的种类和意义3.1 什么是权限3.2 sudo指令与短暂提权 4. 文件类型与文…

vant van-field 密码输入框小程序里隐藏、显示密码bug总结

老规矩先上效果图: vant 输入框组件 密码的隐藏与显示功能&#xff1a; 注: 用password属性控制密码的显示与隐藏 不要用type属性&#xff0c;type属性在真机上有时会没有效果 1、当然如果只用typepassword 不需要切换显示、隐藏也可以使用。 2、如果用到了密码的显示与…