利用 Amazon Bedrock Claude3 打造个性化 AI Character 应用
从智能客服到虚拟助手,再到创意内容生成,GenAI 正在改变我们与计算机交互的方式。本教程将介绍如何使用 Amazon Bedrock 上的 Claude3 打造专属的 AI Character 应用,助力快速开启 GenAI 应用开发之旅。
![Olawale Olaleye Olawale Olaleye](https://d1.awsstatic.com/xuefezha-jennie/%e7%ba%a7%e5%88%ab_level%201.01c35fea97656a6beac50b0c8ae81e8afc1eedef.png)
![](https://d1.awsstatic.com/xuefezha-jennie/Group%20281.67a8494bd80a4bd979e37efcb490ada486dd72ae.png)
![](https://d1.awsstatic.com/xuefezha-jennie/Group%20287.a27381901d308706720071b52d42054d154eab4c.png)
![](https://d1.awsstatic.com/guoheng/product.2d7b328b4c088795e2ac7b9c03e03d54eb5ea73f.png)
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 角色进行沟通和互动了。
技术架构
![](https://d1.awsstatic.com/guoheng/build-a-personalized-ai-character-app-with-amazon-bedrock-claude3/ai-character-app-claude3-img1.9dd024bf404f627b047e5a244f3111eabe4079ad.png)
我们将 SillyTavern 和 Character-editor 部署在一台 Amazon EC2 (t3.medium),用户可以访问暴露在 8080 端口的 Character-editor,以及 8000 端口的 SillyTavern,并配置 SillyTavern 使用 Bedrock Claude3 Sonnet 作为后端大模型。
1. Bedrock 配置
在使用 Bedrock 的模型之前,需要申请模型的访问权限。在模型访问申请页面中,首先点击右上方的“Manage model access”。
![](https://d1.awsstatic.com/guoheng/build-a-personalized-ai-character-app-with-amazon-bedrock-claude3/ai-character-app-claude3-img2.321346af5ba19cf24d6c10d677b092151accd0af.png)
然后在“Anthropic”提供商提供的“Claude3 Sonnet”模型前打勾。
![](https://d1.awsstatic.com/guoheng/build-a-personalized-ai-character-app-with-amazon-bedrock-claude3/ai-character-app-claude3-img3.4e7a8716249d45c9e42ca9ad14662370926a08ef.png)
勾选 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”类型。
![](https://d1.awsstatic.com/guoheng/build-a-personalized-ai-character-app-with-amazon-bedrock-claude3/ai-character-app-claude3-img4.2774f992f74da06325db514b232f7b2185216541.png)
配置磁盘大小为 30GB
![](https://d1.awsstatic.com/guoheng/build-a-personalized-ai-character-app-with-amazon-bedrock-claude3/ai-character-app-claude3-img5.537b596699268996a84c265d4eb3b66ebd846787.png)
在 Inbound Security Group Rules 中,需要配置三条规则:
- ssh 规则端口为 22,便于我们登录到服务器做相关配置
- HTTP 规则,Port “8000”,访问 SillyTavern
- HTTP 规则,Port “8080”,访问 Character-editor
配置好 Inbound Security Group Rules 的页面应与下图类似:
![](https://d1.awsstatic.com/guoheng/build-a-personalized-ai-character-app-with-amazon-bedrock-claude3/ai-character-app-claude3-img6.25f52c7e5b8c5a7437a926f479cfbbc7b4135edf.png)
接下来,您将在 EC2 中安装 SillyTavern。
连接到实例
在连接实例之前,您需要先在 EC2 实例页面确认实例已完全启动,Status check 显示为绿色。
![](https://d1.awsstatic.com/guoheng/build-a-personalized-ai-character-app-with-amazon-bedrock-claude3/ai-character-app-claude3-img7.ed563dad66beacf4b49dece2c9dd04f146d6a797.png)
连接 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
如果安装正确,这些命令会输出相应的版本号,类似于下图所示:
![](https://d1.awsstatic.com/guoheng/build-a-personalized-ai-character-app-with-amazon-bedrock-claude3/ai-character-app-claude3-img8.6a6b1209c13f132b2c794b1009dd0728d844028f.png)
部署 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 服务。如果启动成功,在终端中您应该能看到类似的提示:
![](https://d1.awsstatic.com/guoheng/build-a-personalized-ai-character-app-with-amazon-bedrock-claude3/ai-character-app-claude3-img9.fa2b56bdec6392eafc2711af59512143ba0da3e7.png)
3. 配置 SillyTavern 使用 Claude3 模型
在浏览器中,输入 http://<您的ec2 public ip>:8000。在弹出的用户名密码对话框中输入在 config.yaml 配置文件中填写的用户名密码,进入 SillyTavern 欢迎页面。在首页提示框中,可以输入您的用户名,也可以使用默认值“User”。
![](https://d1.awsstatic.com/guoheng/build-a-personalized-ai-character-app-with-amazon-bedrock-claude3/ai-character-app-claude3-img10.c4e4b4532b4a3d64612bd98fb2b8e445b93943d9.png)
点击顶部的插头图标,选择 API 为 Chat Completion,并在 Chat Completion Source 处配置后端为 Amazon Bedrock。
![](https://d1.awsstatic.com/guoheng/build-a-personalized-ai-character-app-with-amazon-bedrock-claude3/ai-character-app-claude3-img11.76eb627ea094413832d2d0fc47812a09e829ccf9.png)
在 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 必须保密,不应该与其他人共享,防止泄露导致的账户盗用。
![](https://d1.awsstatic.com/guoheng/build-a-personalized-ai-character-app-with-amazon-bedrock-claude3/ai-character-app-claude3-img12.444f9ff3c152cdf82466ff49d4bd9dfb0922728c.png)
至此,SillyTavern 配置完成,您可以点击顶端标签卡中的最后一个“角色卡片”来打开聊天页面,开始聊天。
![](https://d1.awsstatic.com/guoheng/build-a-personalized-ai-character-app-with-amazon-bedrock-claude3/ai-character-app-claude3-img13.1b1d7b6a877a84deedaedbee9c116451a8e72a8d.png)
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
启动成功后看到如下提示:
![](https://d1.awsstatic.com/guoheng/build-a-personalized-ai-character-app-with-amazon-bedrock-claude3/ai-character-app-claude3-img14.6e3a4ec21a6db71226ff24c22dc2767782362e36.png)
此时,AI Character Editor 已在 8080 端口启动。
打开角色管理器界面
在浏览器中输入 http://<您的ec2 public ip>:8080 打开角色管理器界面。
填写完成后,点击 Export 中的”Download as Character JSON”下载角色卡图片。
![](https://d1.awsstatic.com/guoheng/build-a-personalized-ai-character-app-with-amazon-bedrock-claude3/ai-character-app-claude3-img15.58b568acf9b4d343387e4465c60c8b6fa9de7445.png)
导入角色到 SillyTavern
打开 SillyTavern,点击右上角的”Import character”按钮。SillyTavern 会自动从图片中读取 JSON 数据并导入角色。之后角色就会出现在列表中。
![](https://d1.awsstatic.com/guoheng/build-a-personalized-ai-character-app-with-amazon-bedrock-claude3/ai-character-app-claude3-img16.efa11392c819731727ca3682128a0894e042d5c2.png)
与角色对话
导入完成后,您将在页面看到提示框,提示导入成功,你可以和自己创造的角色聊天啦。
![](https://d1.awsstatic.com/guoheng/build-a-personalized-ai-character-app-with-amazon-bedrock-claude3/ai-character-app-claude3-img17.cc4adea0dd45618854493b498d22a8420de6e07a.png)
总结
本文介绍了如何使用 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