背景

如果大家做过开源项目或者在公司内部为其他部门提供服务,就会发现一个问题,很多用户并不会好好看文档而是直接咨询答疑人员。这种情况可能是用户的信息检索能力有限,也有可能是文档组织混乱,难以供用户检索。因此,如果能够将文档投喂给 ChatGPT ,让 ChatGPT 生成答案,能够大大减少答疑人员的工作量。

基于文档的聊天机器人方案其实已经有很多了,包括但是不限于 Langchain 、LlamaIndex 、闻达,遗憾的是无法满足下面的需求:

  • API:提供基于 HTTP 的 API 就能够将服务端和文档更新脚本部署在不同的机器
  • 支持删除:删除操作需要给每个文档设置唯一 ID ,所以他们实际上没办法支持删除文档
  • 问题记录:记录下用户提问、用户对回答的评价、生成回答使用的上下文,方便后续优化文档

    项目介绍

    项目起名为 MidSearch ( https://github.com/gorse-io/midsearch ),意思为从聊天机器人到搜索引擎的中间件。MidSearch 的工作量和其他 ChatDocs 产品没有什么区别。首先将文档导入到 Postgres 中,文档给会被分割并向量化。当收到用户提问的时候,首先将问题向量化,在 Postgres 中找到向量距离最近的几篇文档,最后将文档和问题发给 ChatGPT 生成最终的回答。
    MidSearch:一个基于 ChatGPT 的文档搜索引擎

    MidSearch:一个基于 ChatGPT 的文档搜索引擎

    前文档类型支持 Markdown ,机器人支持 Discord 和 Telegram ,后续会更多的文件类型和机器人。

演示

程序员做饭指南
如果将程序员做饭指南( https://github.com/Anduin2017/HowToCook )导入到 MidSearch 中,就可以得到一个菜谱机器人(Telegram:@how_to_cook_bot)。搭建菜谱机器人的方法参考文章如何搭建一个菜谱机器人
MidSearch:一个基于 ChatGPT 的文档搜索引擎1

MidSearch:一个基于 ChatGPT 的文档搜索引擎1

可以使用按钮对回答进行评价。

管理后台

管理后台可以查看用户对于回答的评价统计、浏览回答记录、管理文档。
MidSearch:一个基于 ChatGPT 的文档搜索引擎2

MidSearch:一个基于 ChatGPT 的文档搜索引擎2