【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.msi

C:\Users\xyb>msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi

C:\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 json

bedrock = 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日零点正式结束。还没体验的小伙伴们抓紧体验啦~

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Building Systems with the ChatGPT API

Building Systems with the ChatGPT API 本文是 https://www.deeplearning.ai/short-courses/building-systems-with-chatgpt/ 这门课程的学习笔记。 文章目录 Building Systems with the ChatGPT APIWhat you’ll learn in this course Language Models, the Chat Format and…

MySQL中常用的操作语句已汇总

目录 一、库语句 1.查询现有数据库 2.创建数据库 3.选中数据库 ​编辑 4.删除数据库 二、初阶表操作 1.查看数据库现有表 2.查看表结构 3.创建表 4.删除表 5.全列查询 6.删除表2 7.修改操作 三、插入操作 1.全列插入 2.指定列插入 3.一次插入多组数据 4.插入…

【AI视野·今日Robot 机器人论文速览 第八十二期】Tue, 5 Mar 2024

AI视野今日CS.Robotics 机器人学论文速览 Tue, 5 Mar 2024 Totally 63 papers &#x1f449;上期速览✈更多精彩请移步主页 Interesting: &#x1f4da;双臂机器人拧瓶盖, (from 伯克利) website: https://toruowo.github.io/bimanual-twist &#x1f4da;水下抓取器, (from …

交易平台开发:构建安全/高效/用户友好的在线交易生态圈

在数字化浪潮的推动下&#xff0c;农产品现货大宗商品撮合交易平台已成为连接全球买家与卖家的核心枢纽。随着电子商务的飞速发展&#xff0c;一个安全、高效、用户友好的交易平台对于促进交易、提升用户体验和增加用户黏性至关重要。本文将深入探讨交易平台开发的关键要素&…

Unity3d C#实现文件(json、txt、xml等)加密、解密和加载(信息脱敏)功能实现(含源码工程)

前言 在Unity3d工程中经常有需要将一些文件放到本地项目中&#xff0c;诸如json、txt、csv和xml等文件需要放到StreamingAssets和Resources文件夹目录下&#xff0c;在程序发布后这些文件基本是对用户可见的状态&#xff0c;造成信息泄露&#xff0c;甚至有不法分子会利用这些…

1908_Arm Cortex-M3的实现

1908_Arm Cortex-M3的实现 全部学习汇总&#xff1a; g_arm_cores: ARM内核的学习笔记 (gitee.com) 这是第一次看一份这样的手册&#xff0c;之前的MCU编程基本上就是专注于软件接口方面。而OS等方面的一些功能基本上都是用了现成的解决方案&#xff0c;因此也就没有过多的关注…

Linux centos6安装rz、sz命令

centos6传文件提示command not found # yum install lrzsz 提示错误 wget http://www.ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz 下载离线包 https://www.ohse.de/uwe/software/lrzsz.html 下载最新版本 [rootnode1 ~]# tar -zxvf lrzsz-0.12.20.tar.gz …

pytorch_retinaface训练Resnet50_Final.pth过程+无图版安装Nvidia+CUDA驱动GPU

背景 当前处于人脸检测分支&#xff0c;项目就是retinaface官方的代码加上数据集目录结构&#xff0c;目的是训练出最后的模型文件Resnet50_Final.pth 代码 https://gitee.com/congminglst/pytorch_-retinaface.git 项目结构与设计 图片数据集采用widerface&#xff0c; 前…

Go编译报错 link: running gcc failed: exit status 1(已解决)

背景 在对一个开源的Go程序二次开发 重新编译时 &#xff0c; 报错截图如下 报错文字如下&#xff1a;关键信息 link: running gcc failed: exit status 1 $ go build -o orchestrator-didi -i go/cmd/orchestrator/main.go go build: -i flag is deprecated # command-li…

2024/3/10打卡借教室——二分+差分

题目 在大学期间&#xff0c;经常需要租借教室。 大到院系举办活动&#xff0c;小到学习小组自习讨论&#xff0c;都需要向学校申请借教室。 教室的大小功能不同&#xff0c;借教室人的身份不同&#xff0c;借教室的手续也不一样。  面对海量租借教室的信息&#xff0c;我们自…

TOMCAT多实例及调优

目录 引言 一、JVM相关理论 &#xff08;一&#xff09;JVM组成 1.JVM组成部分 2.JVM运行时数据区 &#xff08;二&#xff09;垃圾回收 1.确定垃圾 2.垃圾收集算法 二、java内存调整相关参数 &#xff08;一&#xff09;JVM 内存常用相关参数 &#xff08;二&#…

《在“裸奔”时代下如何保护网络隐私》

引言 在信息时代的今天,网络已经成为我们生活中不可或缺的一部分。然而,随着网络的普及和技术的发展,网络安全和隐私保护问题也变得越来越严峻。特别是在这个所谓的“裸奔”时代,我们的个人信息和隐私正面临着前所未有的挑战。因此,保护网络隐私变得尤为重要。 网络安全…

通过Step Back提示增强LLM的推理能力

原文地址&#xff1a;enhancing-llms-reasoning-with-step-back-prompting 论文地址&#xff1a;https://arxiv.org/pdf/2310.06117.pdf 2023 年 11 月 6 日 Introduction 在大型语言模型不断发展的领域中&#xff0c;一个持续的挑战是它们处理复杂任务的能力&#xff0c;这…

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"><…

【微服务】SpringBoot整合Resilience4j使用详解

目录 一、前言 二、熔断器出现背景 2.1 几个核心概念 2.1.1 熔断 2.1.2 限流 2.1.3 降级 2.2 为什么会出现熔断器 2.3 断路器介绍 2.3.1 断路器原理 三、Resilience4j介绍 3.1 Resilience4j概述 3.1.1 Resilience4j是什么 3.1.2 Resilience4j功能特性 3.2 Resilie…

用关系运算符和表达式比较大小、_Bool类型、for循环

本文参考C Primer Plus第六章进行C语言学习 文章目录 用关系运算符和表达式比较大小 其他真值新的_Bool类型for循环总结 一.用关系运算符和表达式比较大小 虽然关系运算符也可以用来比较浮点数&#xff0c;但是&#xff0c;要注意的是&#xff1a;尽量只使用<和>。因为浮…

【Linux】gcc与make、makefile

文章目录 1 gcc/g1.1 预处理1.2 编译1.3 汇编1.4 链接1.4.1 静态链接1.4.2 动态链接 2 make和makefile2.1 依赖关系2.2 依赖方法2.3 伪目标 3 总结 1 gcc/g 当我们创建一个文件&#xff0c;并向里面写入代码&#xff0c;此时&#xff0c;我们该如何使我们的代码能够运行起来呢&…

Vivado Repository IP Catalog 释疑

Vivado软件自带了一个IP核仓库&#xff0c;可以在IP Catalog界面查看。 在IP目录界面&#xff0c;依次给出了每个IP核的Name(名称)&#xff0c;Interface(接口)&#xff0c;State(状态)&#xff0c;License(许可证)和VLNV&#xff08;标识符&#xff09;。 Interface表示IP核的…

C++指针(五)完结篇

个人主页&#xff1a;PingdiGuo_guo 收录专栏&#xff1a;C干货专栏 前言 相关文章&#xff1a;C指针&#xff08;一&#xff09;、C指针&#xff08;二&#xff09;、C指针&#xff08;三&#xff09;、C指针&#xff08;四&#xff09;万字图文详解&#xff01; 本篇博客是介…

c++0305习题

一、求下面表达式的值 1&#xff0e;0 2&#xff0e;-1 3&#xff0e;1 4&#xff0e;&#xff08;1&#xff09;1 &#xff08;2&#xff09;3.2 &#xff08;3&#xff09;0 &#xff08;4&#xff09;7.0 5.&#xff08;1&#xff09;0&#xff08;2&#xff09;300.005&a…