-
Notifications
You must be signed in to change notification settings - Fork 45
How to setup auto reply with Chatopera
- 支持使用配置文件,设置每个 GitHub Project 的知识库,回答常见问题。
假设您的项目已经配置到了 config-projects 目录下,这个文件夹包含 OSSChat 集成的 GitHub Repos。
比如这个文件 chatopera.ts
就是将 chatopera/*
匹配到微信的聊天室中,chatopera/*
与所有的 github.com/chatopera 组织下的项目关联。
再比如 baidu.ts,它有一个 GitHub Repo 的集成。
可以看到,config-projects 的配置文件中,支持使用 *
来做多对多的关联。
将您的项目通过这种形式配置到 config-projects 是使用 BOT 自动回复功能的前提条件,关于怎么配置进 config-projects,可以参考文档。
目前,OSSChat 云服务中,自动回复的机器人的微信 ID 是 osschat7
,请确保这个机器人在您的微信群里;OSSChat 云服务的其它机器人尚未支持自动回复。
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
下使用的组织标识。
- 文件映射
- 群和 faqs 映射
在 xxx.ts
文件和 xxx.faqs.yml
文件内部,就到了具体的问答对和群聊的映射了,有如下命名关系:
即,它们也是要用一样的库的标识。
chatopera.faqs.yml
文件的格式内容如下:
其中,chatopera/*
与 chatopera.ts
里的 Repo 匹配格式一致;其次,每个 FAQ 问答对的形式如下:
{{问题}}:
categories: {{x/y/z}}
answers:
- {{答案}}
extends:
- {{扩展问1}}
- {{扩展问2}}
项目 | 是否必填 | 备注 |
---|---|---|
问题 | 是 | 问题必填,每次更新最好不要调整问题,非必要不调整 |
categories | 否 | 分类,支持多级分类,最多四层,用 / 分隔 |
answers | 是 | 有且只有一个答案,目前尚未支持多答案,答案内容仅支持使用文本 |
extends | 否 | 扩展问,和问题相似的问法,支持多个 |
就是更新到生产环境,那么需要重新的用最新的代码启动 OSSChat,每次重启时,会自动的检测 faqs
文件夹的变化,完成问答对的增加, 更新,删除
。
如果您使用 OSSChat 云服务,将 faqs.yml 提交到您的 GitHub 仓库并提交 PR 到 kaiyuanshe/osschat。
然后,您的目标的微信群,就可以支持机器人自动回复了。
如果 faqs.yml 文件格式有问题:
- 一条问答对格式错误:将会跳过该问答对
- 文件不符合 YML 语法:将会跳过该文件
所以,在提交前和 Review 阶段,要检查文件格式。
格式错误不会导致 OSSChat 启动问题,实例会正常启动。