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

从智能客服到虚拟助手,再到创意内容生成,GenAI 正在改变我们与计算机交互的方式。本教程将介绍如何使用 Amazon Bedrock 上的 Claude3 打造专属的 AI Character 应用,助力快速开启 GenAI 应用开发之旅。

Amazon Bedrock
生成式 AI
教程
亚马逊云科技
Olawale Olaleye
难度
100 - 初级
时间
30 分钟
前提条件

海外区域: 注册 / 登录 亚马逊云科技

上次更新时间
2024 年 4 月 16 日
相关产品

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/