亚马逊AWS官方博客

利用 Amazon Bedrock Claude3 打造个性化 AI Character 应用

引言

随着生成式 AI(Generative AI,GenAI)技术的兴起,我们正见证着人工智能在各个领域的广泛应用。从智能客服到虚拟助手,再到创意内容生成,GenAI 正在改变我们与计算机交互的方式。其中,AI Character(AI 角色)是一个极具吸引力的应用方向。通过赋予 AI 以鲜明的性格特征和行为模式,我们可以创造出栩栩如生、独具魅力的 AI 角色,为用户带来更加个性化和沉浸式的交互体验。

近期,Anthropic 公司发布了 Claude3 模型系列,它在常识推理、上下文理解和多轮对话等方面表现出色,非常适合用来构建 AI Character 应用。 Amazon Bedrock 在第一时间提供了 Claude3 系列的模型,让开发者能够更轻松地使用最新的大模型。本文将介绍如何使用 Amazon Bedrock 上的 Claude3 打造专属的 AI Character 应用,助力快速开启 GenAI 应用开发之旅。

Amazon Bedrock

Amazon Bedrock 是一个托管的云服务,通过统一的 API 提供来自领先 AI 公司和亚马逊的基础模型(Foundation Models)的访问,如 Anthropic Claude、Meta Llama、Mistral 模型等。用户可以从各种基础模型中进行选择,找到适合自身业务场景的模型。Amazon Bedrock 还提供了围绕生成式 AI 广泛的功能,可以在安全、隐私和负责任的 AI 原则下构建生成式 AI 应用。使用 Amazon Bedrock,您可以轻松地试验和评估适用于您的使用场景的基础模型,使用微调(fine-tuning)和检索增强生成(Retrieval Augmented Generation,RAG)等技术利用企业数据进行定制, 并支持构建使用企业系统和数据源执行任务的代理(Agent)。

Claude3

Claude3 是 Anthropic 公司最新发布的大型语言模型系列,包含 Haiku,Sonnet,Opus 三个模型,从智能度、推理速度及性价比等方面为用户提供多样化的选择。它在保留了 Claude2 出色对话能力的同时,引入了更强的推理能力和更丰富的知识覆盖。Claude3 由来自 Anthropic 的 Constitutional AI 技术训练而成,在安全性和价值对齐方面表现突出。此外,它还支持多种编程语言,可以用于构建功能强大的 AI 编程助手。

方案介绍

利用 Amazon Bedrock Claude3 的多模态能力模型、以及 SillyTavern 和 AI Character Editor,我们可以高效地创建个性化的 AI Character 角色应用。使用 SillyTavern 部署一个开箱即用的聊天环境, 其内置的角色库允许我们快速试用各种预设角色。如果我们希望创建自定义的 AI 角色,可以使用 AI Character Editor 直观地编写角色卡,定义角色的背景、性格和行为风格。AI Character Editor 定义完成的角色,将自定义角色导入 SillyTavern 聊天环境,我们就可以与富有魅力的 AI 角色进行沟通和互动了。

技术架构

我们将 SillyTavern 和 Character-editor 部署在一台 Amazon EC2 (t3.medium),用户可以访问暴露在 8080 端口的 Character-editor,以及 8000 端口的 SillyTavern,并配置 SillyTavern 使用 Bedrock Claude3 Sonnet 作为后端大模型。

1. Bedrock 配置

在使用 Bedrock 的模型之前,需要申请模型的访问权限。在模型访问申请页面中,首先点击右上方的“Manage model access”。

然后在“Anthropic”提供商提供的“Claude3 Sonnet”模型前打勾。

勾选 Claude3 Sonnet 并填写使用用例后,滚动到页面底部,点击“Save changes”,完成模型访问的申请。 然后创建用访问 Bedrock 的 IAM user 以及 Access key,过程可以参考该链接(管理 IAM 用户的访问密钥)。

2. 安装 SillyTavern

SillyTavern 是一款开源的角色扮演聊天前端界面,通过它您能够方便地加载角色,连接后端大语言模型,快速开始聊天。

创建 EC2

在 EC2 控制台中,点击侧边栏的“Instances”,进入实例页面,点击右上方的橙色按钮“Launch instances”创建新实例。 点击 Ubuntu,在 Amazon Machine Image 中选择”Ubuntu Server 22.04 LTS (HVM)”, Instance type 则在下拉选单中选择“t3.medium”类型。

配置磁盘大小为 30GB

在 Inbound Security Group Rules 中,需要配置三条规则:

  1. ssh 规则端口为 22,便于我们登录到服务器做相关配置
  2. HTTP 规则,Port “8000”,访问 SillyTavern
  3. HTTP 规则,Port “8080”,访问 Character-editor

配置好 Inbound Security Group Rules 的页面应与下图类似:

接下来,您将在 EC2 中安装 SillyTavern。

连接到实例

在连接实例之前,您需要先在 EC2 实例页面确认实例已完全启动,Status check 显示为绿色。

连接 EC2 实例的方式有很多,您可以选择任何一种您习惯的方式连接,并进行后续的配置。

配置 Node.js 运行环境

需要 Node 20.x 以上的版本作为 SillyTavern 运行时环境。

安装 Node.js 环境:

# 更新包列表
sudo apt update
# 添加 Node.js 20.x 版本的仓库到你的系统中
curl -sL https://deb.nodesource.com/setup_20.x | sudo -E bash -
# 将安装 Node.js 20.x 的最新版本, 以及 NPM(Node Package Manager)
sudo apt install nodejs -y

安装完成后,您可以通过以下命令检查 Node.js 和 npm 的版本,以验证是否安装成功:

node --version
npm --version

如果安装正确,这些命令会输出相应的版本号,类似于下图所示:

部署 SillyTavern

Clone SillyTavern 代码到本地:

cd ~
git clone https://github.com/Chen188/SillyTavern.git -b bedrock  

配置 SillyTavern 访问设置:

SillyTavern 目录下,打开 config.yaml 文件,修改以下参数以实现安全的远程访问:

  • listen: true
  • whitelistMode: false
  • basicAuthMode: true
  • basicAuthUser 设定的远程登录 sillytavern 的用户名和密码
    • username 输用户名,password 输密码,默认为 user/password

修改完成后,保存配置文件并退出,启动 SillyTavern 服务。如果启动成功,在终端中您应该能看到类似的提示:

3. 配置 SillyTavern 使用 Claude3 模型

在浏览器中,输入 http://<您的ec2 public ip>:8000。在弹出的用户名密码对话框中输入在 config.yaml 配置文件中填写的用户名密码,进入 SillyTavern 欢迎页面。在首页提示框中,可以输入您的用户名,也可以使用默认值“User”。

点击顶部的插头图标,选择 API 为 Chat Completion,并在 Chat Completion Source 处配置后端为 Amazon Bedrock。

在 AWS AKSK 处,填写在创建资源步骤中新建的 IAM User 的 access key,点击 Connect 连接到 Bedrock。如果您期望通过 IAM Role 分配访问权限,则可以先创建一个带有 Amazon Bedrock 访问权限的 IAM Role,然后绑定到 EC2 服务器上,您可以参考文档来执行此操作,之后将 SillyTavern 中的 AKSK 留空。

注意:IAM User 的 Access Key/Secret Key 用于进行身份验证和访问控制。Access Key/Secret Key 必须保密,不应该与其他人共享,防止泄露导致的账户盗用。

至此,SillyTavern 配置完成,您可以点击顶端标签卡中的最后一个“角色卡片”来打开聊天页面,开始聊天。

4. 使用 AI Character Editor 角色管理器

除了和 SillyTavern 预置的角色聊天外,还可以通过 AI Character Editor 来创造自己的角色卡。

配置 AI Character Editor

登录到 EC2,从 GitHub 拉取 AI Character Editor 的代码:

git clone https://github.com/ZoltanAI/character-editor.git

安装 HTTP 服务器并启动 AI Character Editor:

cd character-editor# 安装 http-server
sudo npm install -g http-server
# 使用 http-server 启动应用:
http-server

启动成功后看到如下提示:

此时,AI Character Editor 已在 8080 端口启动。

打开角色管理器界面

在浏览器中输入 http://<您的ec2 public ip>:8080 打开角色管理器界面。

填写完成后,点击 Export 中的”Download as Character JSON”下载角色卡图片。

导入角色到  SillyTavern

打开 SillyTavern,点击右上角的”Import character”按钮。SillyTavern 会自动从图片中读取 JSON 数据并导入角色。之后角色就会出现在列表中。

与角色对话

导入完成后,您将在页面看到提示框,提示导入成功,你可以和自己创造的角色聊天啦。

结论

本文介绍了如何使用 Amazon Bedrock Claude 3、SillyTavern 和 AI Character Editor 快速构建一个 AI Character 应用。通过利用 Bedrock 的强大基础设施和 Claude3 的先进对话能力,并结合 SillyTavern 和 AI Character Editor 提供的便捷工具,我们可以显著降低 AI 角色应用的开发门槛,加速创意的实现,为 AI Character 应用开辟了一片充满想象力的新天地。

参考链接

https://github.com/Chen188/SillyTavern.git

https://github.com/ZoltanAI/character-editor.git

https://sillytavernai.com/

本篇作者

曹镏

亚马逊云科技解决方案架构师,专注于为企业级客户提供信息化以及生成式 AI 方案的咨询与设计,在 AI/ML 领域具有解决实际问题能力以及落地大模型训练项目的经验。

陈斌

亚马逊云科技生成式 AI 产品技术专家,负责基于亚马逊云科技的生成式 AI 产品解决方案的咨询和设计。

汪其香

亚马逊云科技解决方案架构师,负责基于亚马逊云科技云服务的架构咨询和设计实现,具有丰富的解决客户实际问题的经验,同时热衷于生成式 AI,深度学习的研究与应用。

于泽沛

亚马逊云科技解决方案架构师,负责响应通用行业客户及个人开发者的云服务咨询和方案设计,在生成式 AI、DevOps、数据分析等方面有丰富的经验。