使用IAM Policy指定IP范围以限制用户对Bedrock服务的调用

一、背景

由于中美贸易战纠纷,一些高科技领域存在黑名单,禁止中国(含香港)地区的用户使用美国开发商的技术和服务。在这种政策要求下,作为业界最前沿的领先的2个大语言模型的供应商 OpenAI(ChatGPT)和 Anthropic(Claude)均宣布不向中国地区用户提供服务。同时,AWS Bedrock上的Claude模型,也需要遵循监管规则,即模型使用者必须是海外用户,包括AWS账户注册的联络地址、账单地址都必须在海外,这些地址不能是中国大陆、也不能是香港,但可以是新加坡。如果是存在Partner代付的场景,Partner也必须满足以上标准。

在以上背景下,海外应用使用Anthropic Claude模型是完全合规的,即模型使用者是在海外,应用代码部署位置也是在海外,处理的信息也是海外用户信息。虽然如此,由于大部分互联网公司的开发团队在国内,开发者经常会在本机使用国内网络直接调用Bedrock上的Claude服务进行开发测试。这种情况下,调用Bedrock Claude服务的来源IP依然是中国地区的IP,此时可能会存在不合规的情况。这种不合规场景有可能会导致账号异常。

为了避免这种不合规场景,可找到调用Bedrock服务的AKSK所对应的IAM User,在这个IAM User上增加对应的IAM Policy,以白名单方式只允许海外特定IP的请求,并拒绝来自其他地区(含中国区)的请求,避免不合规的调用。

Continue reading “使用IAM Policy指定IP范围以限制用户对Bedrock服务的调用”

Bedrock上的Claude模型的Tool use

一、背景

1、什么是Tool use

Tool use也叫做Function calling,这是指模型识别访问意图并调用外部工具的能力。例如在一个对话查询中,希望检索互联网上当前最火热的歌曲,或者触发另一个系统的特定的API。这种能力往往和Agent以及知识库搭配使用。需要注意的是,Tool use场景中大语言模型不会直接运行API Call,而是将需要API Call的请求拼接好返回给调用大语言模型的代码。API call的执行过程是完全由程序调用来负责执行的。因此当代码执行API Call获得返回结果之后,还需要将返回结果再次输入到大语言模型中,并且包含上次的聊天记录一起返回。这时即可获得预期的插叙结果。

本文以一个数学计算为例,输入一个计算要求,识别是Tool场景,程序完成Tool use获取结果,再将结果代回到大模型对话,完成整个流程。

Continue reading “Bedrock上的Claude模型的Tool use”

通过分析Bedrock日志来获取不同应用各自调用成本

在Athena查询语句SQL中,更新了Claude 3 Sonnect 3.5的价格(基于美西)。

本文已更新使用Athena Partition Projection功能,无须再手工管理数据分区。

一、背景

1、挑战

Amazon Bedrock提供多了多种基础模型的Model as a Service的调用能力,用户通过API调用Bedrock并指定要交互的模型,如Claude3的不同版本,即可获得模型返回结果。当属于多个团队、多个Workload的不同应用程序,分别调用Bedrock API时候,在AWS的账单中将仅包含从API传入的Token和生成的Token总数,但是没有提供按用户分账的功能。由此,需要一种方式能够帮助用户区分多个应用系统各自调用API的成本。

Continue reading “通过分析Bedrock日志来获取不同应用各自调用成本”

Bedrock & Claude 汇总

Claude模型申请、Bedrock开始使用

Amazon Bedrock上的Anthropic Claude开箱及Converse API使用

Prompt调优

Amazon Bedrock与多模态大语言模型Anthropic Claude 3 开箱(下篇) – Prompt Engineering

Tool use(Function call)

Bedrock上的Claude的Tool use

OpenAI接口兼容的迁移方式 – Bedrock Access Gateway

借助Bedrock Access Gateway实现OpenAI代码兼容的Claude 3模型调用

OCR

使用Claude 3进行OCR文字识别将影印件PDF并转换为Markdown文本格式

知识库

【10分钟开箱即用】使用Amazon Bedrock知识库构建RAG检索能力

【10分钟开箱即用】视频演示

计费

通过Bedrock日志拆分多个应用和用户的账单

使用Claude 3进行OCR文字识别将影印件PDF并转换为Markdown文本格式

一、背景

RAG+LLM Chatbot解决方案是AWS中国团队开发的大语言模型的RAG对话机器人,它是一个基于Serverless无服务器技术构建、使用LangChain框架的解决方案,用于快速搭建一套可用于生产环境的知识问答机器人。RAG+LLM Chatbot 支持向量模型 & 大语言模型的灵活配置插拔,设计上采用无服务器方式,无需EC2,前后端分离,可集成到即时通信工具(如飞书)。

在这套解决方案中,包含了一个摄取PDF进行OCR文字识别的工具,其代码可从Github上这里获取。本文介绍使用这个代码调用Claude3模型实现OCR识别。

Continue reading “使用Claude 3进行OCR文字识别将影印件PDF并转换为Markdown文本格式”

Bedrock 知识库【十分钟开箱即用】视频演示

Bedrock知识库现已经支持Claude3的集成,在界面上选择模型时候可以选择Claude3,同时API请求上也支持Claude3。

Bedrock知识库是全托管的RAG体验,可实现内容摄取、向量生成、向量数据库创建和管理、向量查询和召回、大模型重写等一系列过程。关于Bedrock知识库服务配置,请参考这篇博客。本文仅为视频DEMO,不详细讲解配置。操作Bedrock创建知识库到可用的整个过程不超过10分钟,其中创建OpenSearch向量数据库部分需要大概五分钟,视频做了剪切加速。

如果您尚未使用过Bedrock服务,可参考如下:

  • 关于Bedrock服务和Claude大模型权限开通,请参考这篇博客。
  • 关于Prompt调优,请参考这篇博客。
Continue reading “Bedrock 知识库【十分钟开箱即用】视频演示”

【10分钟开箱即用】使用Amazon Bedrock知识库构建RAG检索能力

Bedrock知识库现已经支持Claude3的集成,可在单一API请求上完成RAG召回和大模型重写。

本文介绍如何使用Bedrock知识库快速搭建托管的RAG体验,在申请模型权限后,整个实验仅需要在AWS控制台上数次点击,10分钟内即可体验完整的RAG能力。本文对应的演示视频跳转到这里观看。

Continue reading “【10分钟开箱即用】使用Amazon Bedrock知识库构建RAG检索能力”

Amazon Bedrock与多模态大语言模型Anthropic Claude 3 开箱(下篇) – Prompt Engineering

本文针对2024年3月发布的Claude 3模型已经做了更新。

本文介绍了Claude 3 Prompt Engineering调优的最佳实践,并提供了几个场景的样例代码。关于如何配置Bedrock和Claude模型访问权限,请参考本文上篇:

Continue reading “Amazon Bedrock与多模态大语言模型Anthropic Claude 3 开箱(下篇) – Prompt Engineering”

Amazon Bedrock上的Anthropic Claude开箱及Converse API使用

本文更新了Converse API的使用,从原来的invoke_model的API更换为Converse API。

本文介绍了Amazon Bedrock服务的初始化,如何开始使用Claude模型,并讲解了最新的Converse API的使用,实现文本生成、图像理解、文档理解、流式输出等场景。

Continue reading “Amazon Bedrock上的Anthropic Claude开箱及Converse API使用”

使用CodeWhisperer代码提示和补全提升开发效率

一、CodeWhisperer简介

Amazon CodeWhisperer是一款辅助开发的代码生成服务,可根据进行代码生成、代码补全、代码审查等。Amazon CodeWhisperer支持多种编程语言,包括Python、Java、JavaScript、TypeScript、C#、Go、Rust、PHP、Ruby、Kotlin、C、C++、Shell 脚本、SQL、Scala、JSON、YAML和HCL等。

目前,CodeWhisperer支持的IDE包括VS Code、IntelliJ IDEA、Visual Studio、PyCharm、WebStorm和Rider等。此外,CodeWhisperer还支持MacOS下的终端/Iterm2用于CLI交互。您可以使用这些IDE的插件/扩展连接到CodeWhisperer,并享受便捷的开发效率。

Continue reading “使用CodeWhisperer代码提示和补全提升开发效率”

使用Rekognition识别视频中的名人

一、原理和架构

Rekognition服务目前在AWS海外区域可用,在中国区暂时不可用。

1、原理

Rekognition的原理是:

  • 上传视频到S3中,获得完整的S3存储地址;
  • 调用Rekognition的API发起对S3中的某个视频文件的识别,不同类型的识别有不同的接口,比如识别物体、人脸、名人为不同的调用接口,此任务为异步,返回 JobId 信息。
  • 视频分析完毕后,Rekognition回call SNS通知服务,并可根据 JobId 查询;
  • 应用程序接收到SNS通知后,从SNS消息总线中取出ID,然后再次调用Rekognition的获取分析接口,获得JSON格式的输出结果,输出结果包含人物ID、任务信息、时间线等;
  • 最后调用获取名人信息接口,输入人物ID,获得名称和公开信息(URL网址)。
Continue reading “使用Rekognition识别视频中的名人”

在Windows下安装Tensorflow

一、背景

Tensorflow可以在Windows下安装运行,有GPU版本和CPU版本。自行安装Tensorflow的一个主要问题就是版本不匹配。CUDA和Tensorflow的搭配是有特定版本要求的,并非越高越好。因此如果完全去Nvidia官网下载公开驱动,在运行Tensorflow过程中很可能报告找不到xxx.dll等错误,就是因为版本不匹配造成的。网上可以搜索到相关文章。相对于自行安装Python、自行下载CUDA、CUDNN、Tensor等组件并匹配版本,还要配置环境变量,复杂和麻烦。因此,本文推荐使用Anaconda一步到位。

Continue reading “在Windows下安装Tensorflow”