构建模块化AI聊天机器人

是否可以创建一个模块化设计的多个 AI 聊天机器人,其中有一个主机器人与用户互动,主机器人会找出要引入对话的专业机器人?

我已经深入研究了所有 AI 插件文档,但不确定如何做到这一点。

感谢如此强大、可定制的工具。

2 个赞

我认为现在可以通过我们的工具脚本在技术上实现这一点。我说错了吗,@sam

1 个赞

如果我们有3个专门的机器人,每个都拥有自己的文档,它们的嵌入是否是隔离的?还是说我需要对嵌入/文档做一些特殊处理,以确保它们可以很容易地隔离?

上传到 Persona 的文档与该 Persona 是隔离的。

1 个赞

你能详细说明你的例子,让它更具体一些。

工具现在可以直接访问个性化设置,因此你可以定义一个将请求路由到工具的个性化设置,然后该工具决定最适合该工作的个性化设置,但真正理解你心中完整的流程将有助于我们在此提供建议。

2 个赞

医学文献中有大量关于疫苗接种的风险/效益信息。如果有一个 Persona(比如 VaccineBot)了解所有这些信息,那就意味着需要上传数百份文件,并且很有可能造成混淆。我尝试过这种方法,但效果并不理想。

相反,我考虑过使用专门的 Persona:

  • DTaP-Bot
  • HepB-Bot
  • MMR-Bot
  • Rotavirus-Bot
  • Polio-Bot
  • 等等,等等,等等

从模块化设计和信息聚焦的角度来看,这看起来非常好。但这也给社区成员带来了沉重的负担,需要他们了解比大多数人更多的疫苗接种计划。因此,理想情况下,VaccineBot 会接收用户的提问,找出需要涉及的专门 Bot,并能够协调对话。

例如,有些联合疫苗(一次注射 6 种疫苗)如果家长有疑问,就需要调动多个 Bot。或者在谈论 2 个月大的婴儿的常规检查时,婴儿一次可以接种多达 8 种疫苗,VaccineBot 需要包括所有这些专门的 Bot,并以某种方式从每个 Bot 获取关于其目的和重点的摘要,以及常见的反应等。

这个领域很快就会变得复杂:
DTaP = 3 种疫苗,1 次注射,不可拆分
HepB = 1 种疫苗,1 次注射
MMR = 3 种疫苗,1 次注射,不可拆分

儿科医生经常给联合疫苗,如 Vaxelis,一次注射 6 种:DTaP + HepB + Polio + Hib

2 个月大的婴儿的常规检查可能包括 Vaxelis + PCV + Rotavirus

如果用户询问即将到来的 2 个月大的婴儿的常规检查,协调 Bot(VaccineBot)将需要与 6 个不同的 Persona(Bot)合作,或者至少将它们引入对话。

这有意义吗?

我会继续试验,并就此事反馈。

{“content”: "请为 VaccineBot 创建一个类似的提示:分析你提出的问题,并根据以下主题召唤出最合适的用户,使用此格式:@用户名

@DTaP-Bot:涵盖三种疫苗,单次接种,不可分割。

@HepB-Bot:涉及一种疫苗,一次接种。

@MMR-Bot:涵盖三种疫苗,一次接种,不可分割。

@Rotavirus-Bot:……

@Polio-Bot:……

确保你创建的机器人的设置包括“允许他人提及”选项,这样在初始机器人回复后,可以添加适当的机器人,提供对问题的全面回答。

我提供了一个示例提示;你可以寻求 ChatGPT 的帮助,制作一个更完善、更贴合你偏好的提示。", “target_language”: “zh_CN”}

1 个赞

嗯……我认为今天我们可以用一个自定义工具来解决这个问题!

  1. 将所有文档上传到自定义工具
  2. 向自定义工具提供参数“semantic_query”和“vaccine_name”(枚举)
  3. 然后在自定义 JS 中运行对 vaccine_name 上传的搜索,并将特定部分注入到上下文中

这样可以确保您只获得特定子集的上下文。

3 个赞

感谢 @kuaza@sam 的精彩指导,让我知道如何着手处理此事。我将很快汇报进展。

–Chris

2 个赞

@sam - 工具方法运行得非常好。再次感谢。

–Chris

1 个赞

如果你能在这里分享一些关于当前解决方案的技术细节和一些例子,我相信Meta的成员会很愿意了解它。