Skip to content

How to setup auto reply with Chatopera

Hai Liang Wang edited this page Nov 4, 2021 · 15 revisions

Featured

  • 支持使用配置文件,设置每个 GitHub Project 的知识库,回答常见问题。

前提准备

假设您的项目已经配置到了 config-projects 目录下,这个文件夹包含 OSSChat 集成的 GitHub Repos。

比如这个文件 chatopera.ts

image

就是将 chatopera/* 匹配到微信的聊天室中,chatopera/* 与所有的 github.com/chatopera 组织下的项目关联。

再比如 baidu.ts,它有一个 GitHub Repo 的集成。

image

可以看到,config-projects 的配置文件中,支持使用 * 来做多对多的关联。

将您的项目通过这种形式配置到 config-projects 是使用 BOT 自动回复功能的前提条件,关于怎么配置进 config-projects,可以参考文档

添加微信机器人

目前,OSSChat 云服务中,自动回复的机器人的微信 ID 是 osschat7,请确保这个机器人在您的微信群里;OSSChat 云服务的其它机器人尚未支持自动回复。

FAQs 知识库

FAQs 知识库问答就是为在 config-projects 里的 chatroom,就是 xxx@chatroom 对应的微信群,设定问答对。 在微信群问的问题,如果在知识库中有相似度超过 0.9 的,则进行回复。两个句子完全一致相似度是 1.0,完全不一样,相似度是 0,相似度基于 Chatopera 机器人平台算法比较得到。

增加配置文件

每个 config-projects 里的文件,比如 chatopera.ts 的 FAQs 配置文件,在文件夹 faqs 下。 chatopera.ts 对应 chatopera.faqs.yml,及配置文件名要符合 xxx.faqs.yml 个格式,xxx 代表 config-projects 下使用的组织标识。

  • 文件映射

image

  • 群和 faqs 映射

xxx.ts 文件和 xxx.faqs.yml 文件内部,就到了具体的问答对和群聊的映射了,有如下命名关系:

3ad0849bcff655f18e867382d9253b3

即,它们也是要用一样的库的标识。

chatopera.faqs.yml 文件的格式内容如下:

image

其中,chatopera/*chatopera.ts 里的 Repo 匹配格式一致;其次,每个 FAQ 问答对的形式如下:

  {{问题}}:
    categories: {{x/y/z}}
    answers:
      - {{答案}}
    extends:
      - {{扩展问1}}
      - {{扩展问2}}
项目 是否必填 备注
问题 问题必填,每次更新最好不要调整问题,非必要不调整
categories 分类,支持多级分类,最多四层,用 / 分隔
answers 有且只有一个答案,目前尚未支持多答案,答案内容仅支持使用文本
extends 扩展问,和问题相似的问法,支持多个

发布 FAQs 问答对到 OSSChat 实例

就是更新到生产环境,那么需要重新的用最新的代码启动 OSSChat,每次重启时,会自动的检测 faqs 文件夹的变化,完成问答对的增加, 更新,删除。 如果您使用 OSSChat 云服务,将 faqs.yml 提交到您的 GitHub 仓库并提交 PR 到 kaiyuanshe/osschat

然后,您的目标的微信群,就可以支持机器人自动回复了。

文件配置错误说明

如果 faqs.yml 文件格式有问题:

  • 一条问答对格式错误:将会跳过该问答对
  • 文件不符合 YML 语法:将会跳过该文件

所以,在提交前和 Review 阶段,要检查文件格式。

格式错误不会导致 OSSChat 启动问题,实例会正常启动。

References