quivr - 开箱即用的RAG解决方案,用于快速将生成式AI集成到现有应用中

quivr - 开箱即用的RAG解决方案,用于快速将生成式AI集成到现有应用中

当你想要为现有应用添加AI问答能力时,是否希望有一个“即插即用”的解决方案?不需要从头搭建RAG系统,不需要操心向量数据库选型,不需要纠结嵌入模型选择,只需几行配置就能让应用拥有智能文档问答能力。quivr正是为此而生的。它是一个开箱即用的RAG解决方案,专注于让开发者能够快速将生成式AI集成到现有产品中,让你可以专注于业务本身,而不是RAG的技术细节。

项目基本信息

信息项详情
项目名称quivr
GitHub地址https://github.com/QuivrHQ/quivr
项目描述Opiniated RAG for integrating GenAI in your apps 🧠 Focus on your product rather than the RAG. Easy integration in existing products with customisation! Any LLM: GPT4, Groq, Llama. Any Vectorstore: PGVector, Faiss. Any Files. Anyway you want.
作者QuivrHQ
开源协议Other
Stars39081
Forks3746
支持平台Windows / macOS / Linux
最后更新2026-03-31

一、项目介绍

quivr是一个开箱即用的检索增强生成(RAG)解决方案,它的设计哲学是“专注于产品,而不是RAG”。传统上,构建一个RAG系统需要处理文档解析、文本分块、向量嵌入、向量存储、检索策略、LLM调用等一系列复杂环节。quivr将这些复杂性封装成一个简洁的接口,让开发者可以用最少的代码集成AI能力。

quivr的核心理念是“灵活但简单”。它支持多种LLM提供商(OpenAI、Groq、Anthropic、本地Llama等),支持多种向量数据库(PGVector、Faiss、Chroma等),支持多种文件格式(PDF、Word、Excel、PPT、Markdown等),但所有这些复杂性都被隐藏在一个统一的API背后。开发者只需要关心两个问题:上传什么文件,回答什么问题。

quivr提供了完整的前后端解决方案。前端是一个美观的聊天界面,支持文件上传、对话历史、多轮交互;后端是RAG核心引擎,负责文档处理、向量检索、答案生成。你可以直接使用quivr提供的完整应用,也可以将其作为库集成到自己的产品中。

二、核心优势

开源免费
quivr代码完全开放,用户可以自由使用、修改和部署。接近4万星标证明了其在开源社区的受欢迎程度。

社区支持
quivr拥有活跃的社区,GitHub上有大量讨论和贡献。官方Discord社区有数千名成员,问题响应及时。

持续更新
从2026年3月31日的最后更新可以看出,quivr保持着活跃的开发状态。新的功能、模型支持持续加入。

功能丰富
quivr提供了完整的RAG功能:

  • 多文件支持:PDF、Word、Excel、PPT、TXT、Markdown、图像等
  • 多模型支持:OpenAI、Groq、Anthropic、Llama、Mistral等
  • 多向量库支持:PGVector、Faiss、Chroma、Qdrant等
  • 智能文档处理:自动识别文档结构、表格、图片
  • 对话管理:支持多轮对话、历史记录
  • 用户认证:支持OAuth、邮箱登录
  • 数据隔离:支持多用户、多团队数据隔离

性能优秀
quivr在保证易用性的同时,性能表现优秀。文档处理异步进行,不影响用户体验。检索响应快,支持高并发。

三、适用场景

开发者学习和参考
对于希望学习RAG技术的开发者,quivr提供了完整的参考实现。通过阅读源码可以深入理解文档处理、向量检索、RAG工作流等核心概念。

个人项目使用和集成
如果你是独立开发者,想要快速为项目添加AI能力,quivr是最便捷的选择。直接使用完整应用,或作为库集成,都能快速实现目标。

企业级应用开发
对于需要构建知识库问答系统的企业,quivr提供了可靠的解决方案。支持私有化部署,支持多用户、多团队,满足企业安全、合规要求。

日常工作和效率提升
对于AI工程师,quivr是快速原型开发的利器。开箱即用的特性让你可以在几分钟内验证想法,大大提升开发效率。

四、安装教程

系统要求

工具用途下载/安装方式
Docker容器化部署(推荐)[https://docker.com/]
Git下载项目代码[https://git-scm.com/]

使用Docker Compose安装(推荐)

步骤一:克隆项目代码

git clone https://github.com/QuivrHQ/quivr.git
cd quivr

步骤二:配置环境变量

# 复制环境变量模板
cp .env.example .env

# 编辑.env文件,配置必要的参数
# 至少需要配置:
# - API密钥(如OPENAI_API_KEY)
# - 数据库连接(Supabase或本地PostgreSQL)

步骤三:启动服务

docker-compose up -d

步骤四:访问应用

打开浏览器访问 http://localhost:3000,开始使用quivr。

使用Python库安装

如果只想使用核心RAG功能:

pip install quivr-core

五、使用示例

示例一:直接使用Web应用

使用quivr提供的完整Web应用:

  1. 启动quivr服务
  2. 访问 http://localhost:3000
  3. 注册账号或登录
  4. 创建新的对话
  5. 上传文件(PDF、Word等)
  6. 开始提问

示例二:作为Python库使用

将quivr集成到自己的应用中:

from quivr_core import Brain

# 创建大脑实例
brain = Brain(
    name="my_knowledge_base",
    llm_model="gpt-3.5-turbo",
    vector_store="faiss"
)

# 添加文档
brain.add_file("document.pdf")

# 提问
answer = brain.ask("这份文档的主要内容是什么?")
print(answer)

# 多轮对话
answer2 = brain.ask("文档中提到了哪些关键技术?")
print(answer2)

示例三:使用API

通过REST API调用quivr:

import requests

# API配置
api_url = "http://localhost:5050"

# 创建大脑
brain_response = requests.post(f"{api_url}/brains", json={
    "name": "my_brain",
    "model": "gpt-3.5-turbo"
})
brain_id = brain_response.json()["brain_id"]

# 上传文件
with open("document.pdf", "rb") as f:
    files = {"file": f}
    requests.post(
        f"{api_url}/brains/{brain_id}/files",
        files=files
    )

# 提问
response = requests.post(
    f"{api_url}/brains/{brain_id}/ask",
    json={"question": "文档的主要内容是什么?"}
)

print(response.json()["answer"])

示例四:自定义配置

根据需求自定义RAG配置:

from quivr_core import Brain

# 自定义配置
brain = Brain(
    name="custom_brain",
    llm_model="gpt-4",
    llm_config={
        "temperature": 0.7,
        "max_tokens": 2000
    },
    vector_store="pgvector",
    vector_store_config={
        "connection_string": "postgresql://user:pass@localhost/db"
    },
    chunk_size=1024,
    chunk_overlap=200,
    embedding_model="text-embedding-ada-002"
)

示例五:多文件管理

管理多个文档:

from quivr_core import Brain

brain = Brain(name="knowledge_base")

# 批量添加文件
files = ["doc1.pdf", "doc2.docx", "doc3.txt"]
for file in files:
    brain.add_file(file)

# 查看已添加的文件
documents = brain.list_documents()
for doc in documents:
    print(f"ID: {doc.id}, Name: {doc.name}")

# 删除特定文档
brain.delete_document("doc1.pdf")

# 清空所有文档
brain.clear()

示例六:对话历史管理

管理多轮对话:

from quivr_core import Brain

brain = Brain(name="chat_brain")

# 创建新对话
conversation = brain.new_conversation()

# 在对话中提问
response1 = conversation.ask("什么是人工智能?")
print(f"AI: {response1}")

response2 = conversation.ask("它有哪些应用场景?")
print(f"AI: {response2}")

# 查看对话历史
history = conversation.get_history()
for msg in history:
    print(f"{msg['role']}: {msg['content']}")

# 保存对话
conversation.save("conversation_001.json")

# 加载历史对话
loaded = brain.load_conversation("conversation_001.json")

示例七:与现有应用集成

将quivr集成到Flask应用中:

from flask import Flask, request, jsonify
from quivr_core import Brain

app = Flask(__name__)
brain = Brain(name="my_app_brain")

@app.route('/ask', methods=['POST'])
def ask():
    data = request.json
    question = data.get('question')
    
    if not question:
        return jsonify({'error': 'No question provided'}), 400
    
    answer = brain.ask(question)
    return jsonify({'answer': answer})

@app.route('/upload', methods=['POST'])
def upload():
    file = request.files['file']
    if not file:
        return jsonify({'error': 'No file provided'}), 400
    
    file.save(f"/tmp/{file.filename}")
    brain.add_file(f"/tmp/{file.filename}")
    
    return jsonify({'message': 'File uploaded successfully'})

if __name__ == '__main__':
    app.run(debug=True)

六、常见问题

问题一:文档处理失败

原因:文件格式不支持或文件损坏。

解决方案

  • 确认文件格式在支持列表中
  • 检查文件是否损坏
  • 查看日志获取详细错误信息
  • 尝试转换为其他格式再上传

问题二:检索结果不准确

原因:文档分段不合理或查询表述不清。

解决方案

  • 调整chunk_size和chunk_overlap
  • 优化查询问题的表达
  • 检查文档内容质量
  • 尝试不同的嵌入模型

问题三:API调用超时

原因:文档过大或LLM响应慢。

解决方案

  • 增加超时设置
  • 分割大文档再上传
  • 使用更快的LLM模型
  • 启用异步处理

问题四:数据库连接失败

原因:配置错误或服务未启动。

解决方案

  • 检查.env中的数据库连接字符串
  • 确认数据库服务正在运行
  • 检查网络连通性
  • 查看数据库日志

问题五:内存占用过高

原因:向量索引加载到内存。

解决方案

  • 使用持久化向量存储(如PGVector)
  • 限制同时加载的文档数量
  • 使用分布式部署
  • 启用向量压缩

七、总结

quivr是RAG领域的明星项目,它用“开箱即用”的设计理念,让开发者可以快速将生成式AI能力集成到现有应用中。无论是完整的Web应用,还是Python库集成,quivr都提供了最简单直接的解决方案。

与其他RAG框架相比,quivr最大的优势在于其完整性和易用性。它提供了从文件上传、文档处理、向量存储到答案生成的全套解决方案,同时又保持了高度的灵活性,支持多种LLM、多种向量数据库、多种文件格式。

如果你正在寻找一个能够快速为应用添加AI能力的解决方案,quivr是最佳选择。无论你是想要构建个人知识库助手,还是为企业开发智能客服系统,quivr都能让你以最少的代码实现目标。在这个AI应用快速发展的时代,掌握quivr,就是掌握了快速集成AI能力的关键工具。

暂无评论