https://github.com/StanGirard/quivr/ 24.5K Star

1 功能
- 整体功能,想解决什么问题 
  
- 实现了前后端结合的 RAG 方案。构建能直接使用的应用。
 - 提出了“第二大脑”,具体实现也是RAG,但针对不同用户不同场景支持多个“大脑”并存,每个“大脑里”存储一个或多个文件,用户可使用指定的大脑提供搜索增强生成。
 
 - 当前解决了什么问题,哪些问题解决不了 
  
- QUIVR整体看是个很产品化的工具,但是过于复杂,在其中做修改和定制开发也很困难(运行时启动5个docker镜像)。
 - 整体技术栈相对新,对于一般人有一定学习成本
 - 一些细节略差,比如没有说明引用数据的具体内容,只有来自哪个文件(有时显示)。例如在一个大脑中上传多篇论文,问着问着内容就串了。
 
 - 提供哪些功能点,其中哪些是刚需 
  
- 核心是针对多组文档聊天的 RAG 功能
 - 可爬取网站,构建知识库
 - 提供一些 ollama 的本地部署方案
 - 可连接 telegram 通讯工具使用
 
 - 用户使用难度,操作逻辑是否过于复杂 
  
- 我测试时的版本,没有针对 linux 系统的脚本,需要手动修改调整,但整体还比较易用。
 
 
2 技术栈
- 技术栈是什么 
  
- 分成:前端 +CMS+ 后端 + 数据库,略有点重
 - 前端:Next.js/React
 - 后端:fastapi/SupaBase
 - CMS:Strapi
 - 数据库:PGSQL/SupaBase
 
 - 现有底层工具消化了哪些常用功能 
  
- Supabase 存储数据库,文件、向量
 - 虽然使用了 langchain,但在代码中也自行实现了很多RAG加强功能
 
 - 代码分析(使用cloc工具统计) 
  
- TypeScript:17392 行 实现前端和cms
 - Python:6912 行 实现后端
 
 
3 商业模式
- QUIVR使用 Supabase 存储数据,Supabase 网站提供一定免费额度,用量大时,按规则收费;如果不想付费,也可以自己搭一下Supabase。(我理解是一种 Saas 方案)
 
4 使用
4.1 安装
见 README.md
docker-compose up --build
 
运行之后启动了 四个后端服务,一个前端服务,一个redis,共5个docker 容器。
 通过前端服务端口 3000 进行访问
4.2 注意事项
- 如果需要使用代理,请修改frontend/.env加入HTTP_PROXY, HTTPS_PROXY环境变量;在docker-compose.yml中也要在build args中加代理
 - 配置文件中内容很多,至少要设置 OPEN API KEY,Supabase相关项,其它可以先不动。
 - 在Supabase控制台的数据中的vectors中可以看到文档内容已经入库。
 
4.3 使用
- 打开 3000 端口:http://localhost:3000/
 - 用邮箱注册了一个用户,注册后可以在 supabase 用户管理界面看到。
 - 上传了一个论文 pdf 文件,约21页,20000单词,上传时间1分钟以内,大概是生成向量比聊天快很多。
 - 上传文件时,还可以聊天。
 - 在后台log可以看到其工作过程。
 
4.4 用后感
从用户注册,邮箱激活,服务部署到 supabase 访问 chatgpt。
5 参考
Quivr 基于Supabase构建本地知识库
如何用 ChatGPT 和你的卡片笔记对话?开源应用 Quivr 尝试
文档


















