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能力的关键工具。

已有 9442 条评论

    1. Henry Henry

      3.9万星的量级,RAG领域的明星项目,社区活跃,问题响应快。

    2. Michael Michael

      The vector store abstraction lets you swap backends without changing code.

    3. Grace Grace

      用quivr做产品说明书问答,客户问产品参数,直接给答案。

    4. Daniel Daniel

      在Jupyter里用quivr做实验,上传文档、提问、看结果,交互式探索。

    5. Victoria Victoria

      模型参数可配置,temperature、max_tokens都能调,控制回答风格。

    6. Mason Mason

      用quivr做个人知识管理,笔记、文档、网页都存进去,随时问问题。

    7. Alexander Alexander

      The Python integration is seamless. Add quivr_core to existing Flask/Django app.

    8. James James

      用quivr做学术文献助手,上传论文PDF,问研究方法结果,省了阅读时间。

    9. Evelyn Evelyn

      异步处理文档,上传后立即返回,后台慢慢处理,不影响用户体验。

    10. Harper Harper

      多用户数据隔离,每个用户有自己的知识库,互不干扰,适合SaaS场景。

    11. Lucas Lucas

      API接口设计规范,创建brain、上传文件、提问,RESTful风格好理解。