AI 机器人 - 角色

:bookmark: 本指南将介绍如何为 Discourse AI - AI 机器人 设置和管理 Persona。

:person_raising_hand: 所需用户级别:管理员

Discourse AI 机器人包含一个灵活的 Persona 管理系统。本指南涵盖:

  • AI Persona 的交互方式
  • 配置选项
  • 高级设置
  • 支持的命令
  • 定制可能性

:link:本指南中了解 AI 机器人及其启用方法。

什么是 Persona?

Persona 是一项强大的功能,可让您自定义 Discourse 论坛中 AI 引擎的行为。它们充当“系统消息”,用于指导 AI 的响应和交互,有助于创造更具个性化和吸引力的用户体验。

为什么使用 Persona?

使用 Persona,您可以调整 AI 的行为,使其更好地适应论坛的上下文和语气。无论您希望 AI 在专业场合更正式,在社区论坛中更随意,甚至在角色扮演游戏中扮演特定角色,Persona 都能为您提供灵活性。

特定群组的 Persona 访问权限

此外,您还可以进行设置,使某些用户群组能够访问特定的 Persona。这意味着您可以为论坛的不同部分设置不同的 AI 行为,进一步增强社区交互的多样性和丰富性。

与 Persona 交互

可以通过多种方式与 Persona 交互:

  1. 私信 (PM)
  2. 聊天直接消息 (DM)
  3. 聊天频道提及
  4. 在公共主题中通过 @examle_bot_username 提及

管理员可以控制每个 Persona 允许的交互方式。

配置

要配置 Persona,请导航至 discourse.example.com/admin/plugins/discourse-ai/ai-personas

主要配置选项包括:

  • 系统提示: 引导对话
  • 视觉支持: 为支持视觉的 LLM(例如 GPT-4 Turbo、Claude 3)启用
  • 默认模型: 可提及 Persona 所必需
  • 允许的群组: 使用 Discourse 群组安全定义权限
  • 上传: 索引文本文件以获取额外知识(使用 RAG - 检索增强生成)
  • 启用的命令: 控制对特定命令的访问
  • 允许聊天: 通过 DM 启用聊天(需要聊天插件、默认大型语言模型 (LLM) 和用户)

以下是完整的 AI Persona 配置屏幕:

高级配置选项

Persona 编辑器提供了一些高级选项:

  • Temperaturetop_p(nucleus sampling):控制创造性与可预测性
  • Max context posts: 限制提供给 LLM 以供历史记录的帖子数量 - 较少的帖子将降低成本,但会导致 AI“忘记”旧内容
  • 上传选项
    • Chunk tokens: 控制文档拆分
    • Chunk overlap tokens: 设置块之间的重叠
    • Search conversation chunks: 添加到用户查询的文档片段数量
    • Question consolidator LLM: 选择用于确定用户问题的 LLM

上传支持的先决条件

要使用上传支持:

  1. 启用 ai_embeddings_enabled 设置
  2. 配置 ai_embeddings_model

Discourse AI 支持各种嵌入模型。托管客户可以免费访问 bge-large-en 模型。

:information_source: 自托管用户或希望有更多选择的用户可以自托管嵌入模型,或使用 OpenAI、Google (Gemini) 等的模型。

Discourse AI 中的文本拆分

Discourse 使用递归字符文本分割器来在拆分文本时保持段落、行和单词的完整性。您可以使用 [[metadata YOUR METADATA HERE]] 分隔符来控制文本拆分:

[[metadata about cats]]
a long story about cats
[[metadata about dogs]]
a long story about dogs

此方法通过确保每个块只包含相关数据来防止“块污染”。

调试 AI Persona

要调试您的 Persona:

  1. 将用户添加到 ai bot debugging enabled groups 设置中指定的群组
  2. 此群组中的用户将在 AI 帖子底部看到一个 AI 调试按钮
  3. 单击按钮以访问调试 UI 模态框

:warning: 请记住:如果您向 LLM 提供模糊或无用的信息,它将很难将其转换为有用的信息。

支持的命令

Discourse AI 支持各种命令,包括:

  • Categories
  • Tags
  • Search
  • Web Browser
  • GitHub integration (Search Code, Pull Request Diff, File Content)
    • 需要填写 ai bot github access token 设置
  • Search Meta Discourse
  • Random Picker
  • Read
  • Time
  • Google search
    • 需要填写 ai google custom search api keyai google custom search cx 设置
  • Image generation via DALL-E
    • 需要 OpenAI 密钥
  • Image generation via Stable Diffusion
    • 需要填写 ai stability api key 设置
    • ai stability engine 设置控制图像生成算法
  • Schema
  • Search Settings
  • Setting Context

某些命令需要额外的配置或 API 密钥。

自定义工具支持

您可以使用 自定义工具支持 创建自己的工具。

自定义系统 Persona

  1. 创建一个新 Persona
  2. 复制并粘贴您希望自定义的 Persona 的系统提示
  3. 根据需要进行修改
  4. 可选地禁用原始系统 Persona 以避免重复

自定义搜索

要为新 Persona 自定义搜索:

  1. 创建一个新 Persona
  2. 添加“search”命令
  3. 配置搜索选项,包括:

这使您可以委派搜索权限、增加结果数量或将搜索限制在您网站的特定部分。

7 个赞

帖子已拆分为新主题:我能为 Discourse AI 提供图像生成器函数吗

“阅读”工具具体是做什么的?

另外,根据此 bug 报告,帖子中的提及功能目前已损坏

简而言之,它允许大型语言模型读取论坛上的主题和帖子。

1 个赞

基本上,它会在给出 URL、名称或 ID 时读取主题/帖子,否则,或者仍然,它会使用嵌入,而什么、何时、为何以及如何取决于模型本身、提示等?

2 个赞

哦抱歉,我是在回复另一个帖子 :slight_smile:

它使用主题 ID 或主题 ID + 帖子编号来查找主题/帖子的原始 Markdown,并带有最大长度的保护措施。

不依赖嵌入。

5 个赞

有点离题,但因为我没有什么可问的,而且你们会时不时地清理这些话题,所以我不在乎。

与AI的私人消息中的自动标题现在是正确的语言。这没什么大不了的,但它的心理价值很大。谢谢!

4 个赞

是否有办法将机器人用户添加到组中?我基本上想为这些用户添加一个头像装饰,但将他们添加到组中时,他们不会显示出来。

它们不会显示,但仍然存在。您可以通过尝试再次添加 AI 用户来确保这一点。或者,您可以在这些伪用户的设置中看到所需的组。

1 个赞

如果我想确切地了解 AI 机器人的工具是如何工作的,我应该查看 Discourse AI 仓库的哪个部分?

工具、Playground 和 Bot 都是不错的起点。

请参阅此示例:Understanding Tools in Discourse AI System - AI Conversation - Discourse Meta

3 个赞

这正是我想要的答案——谢谢您,好心人!如果有人需要:我建议阅读此仓库中的代码,以便更好地引导您为您的角色工具设置提示。

1 个赞

一个帖子被拆分到一个新主题:工程化一个人格来依赖聊天记录

我目前正尝试通过“Read”工具获取某个主题下的所有帖子,但它只向 LLM 模型提供了最多 100 个帖子。我已经将“Max posts”在 persona 设置中设置为 999,但问题仍然存在。

是否存在任何服务器端 API 请求限制导致了此问题?

@sam 有人知道这可能是由什么原因引起的吗?

我还没有检查代码库,但我怀疑它可能是代码本身设置的一个硬限制。我可以问一下您想通过此实现什么目标吗?这是这里的关键因素。

而且,也许最好使用论坛研究员的身份?

我们有一个“日志”类别,其中通常包含数百个帖子,主题所有者会在其中报告其项目在 4-5 个月内的进展情况。

我的目标是获取该主题内的所有帖子,按作者 = 主题所有者进行筛选,并创建摘要。

1 个赞

你必须为此使用论坛研究员,这是该角色的确切用例

2 个赞

@sam 我很想这样做,但目前它不支持图像。这是路线图上的内容,还是目前不优先考虑?

3 个赞

当然可以添加,这并不是一个很大的改动

3 个赞