大模型工具_QUIVR

2023-12-23 18:30
文章标签 工具 模型 quivr

本文主要是介绍大模型工具_QUIVR,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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 尝试

文档

这篇关于大模型工具_QUIVR的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/529008

相关文章

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间

SQLite3命令行工具最佳实践指南

《SQLite3命令行工具最佳实践指南》SQLite3是轻量级嵌入式数据库,无需服务器支持,具备ACID事务与跨平台特性,适用于小型项目和学习,sqlite3.exe作为命令行工具,支持SQL执行、数... 目录1. SQLite3简介和特点2. sqlite3.exe使用概述2.1 sqlite3.exe

基于Python实现一个Windows Tree命令工具

《基于Python实现一个WindowsTree命令工具》今天想要在Windows平台的CMD命令终端窗口中使用像Linux下的tree命令,打印一下目录结构层级树,然而还真有tree命令,但是发现... 目录引言实现代码使用说明可用选项示例用法功能特点添加到环境变量方法一:创建批处理文件并添加到PATH1

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件

CnPlugin是PL/SQL Developer工具插件使用教程

《CnPlugin是PL/SQLDeveloper工具插件使用教程》:本文主要介绍CnPlugin是PL/SQLDeveloper工具插件使用教程,具有很好的参考价值,希望对大家有所帮助,如有错... 目录PL/SQL Developer工具插件使用安装拷贝文件配置总结PL/SQL Developer工具插

详解如何使用Python从零开始构建文本统计模型

《详解如何使用Python从零开始构建文本统计模型》在自然语言处理领域,词汇表构建是文本预处理的关键环节,本文通过Python代码实践,演示如何从原始文本中提取多尺度特征,并通过动态调整机制构建更精确... 目录一、项目背景与核心思想二、核心代码解析1. 数据加载与预处理2. 多尺度字符统计3. 统计结果可

Python使用FFmpeg实现高效音频格式转换工具

《Python使用FFmpeg实现高效音频格式转换工具》在数字音频处理领域,音频格式转换是一项基础但至关重要的功能,本文主要为大家介绍了Python如何使用FFmpeg实现强大功能的图形化音频转换工具... 目录概述功能详解软件效果展示主界面布局转换过程截图完成提示开发步骤详解1. 环境准备2. 项目功能结

Linux系统之stress-ng测压工具的使用

《Linux系统之stress-ng测压工具的使用》:本文主要介绍Linux系统之stress-ng测压工具的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、理论1.stress工具简介与安装2.语法及参数3.具体安装二、实验1.运行8 cpu, 4 fo

Maven项目中集成数据库文档生成工具的操作步骤

《Maven项目中集成数据库文档生成工具的操作步骤》在Maven项目中,可以通过集成数据库文档生成工具来自动生成数据库文档,本文为大家整理了使用screw-maven-plugin(推荐)的完... 目录1. 添加插件配置到 pom.XML2. 配置数据库信息3. 执行生成命令4. 高级配置选项5. 注意事