Home
Login

基于生成式AI的智能检索增强生成(RAG)平台,帮助用户构建第二大脑,实现文档智能问答和知识管理

NOASSERTIONPython 38.0kQuivrHQ Last Updated: 2025-06-19

Quivr项目详细介绍

项目概述

Quivr是一个开源的全栈检索增强生成(RAG)平台,专注于将生成式AI集成到应用程序中。该项目的核心理念是让开发者专注于产品本身,而不是复杂的RAG实现细节。

核心特性

1. 开箱即用的RAG解决方案

  • 固化的RAG架构:提供了一个经过优化的、快速高效的RAG解决方案
  • 简单集成:只需几行代码即可添加到现有项目中
  • 专注产品:开发者无需关心RAG的底层实现细节

2. 多模型支持

Quivr支持多种LLM模型,包括:

  • OpenAI GPT系列
  • Anthropic Claude
  • Mistral AI
  • Gemma
  • 本地模型(通过Ollama)

3. 灵活的文件处理

支持多种文件格式:

  • PDF文档
  • TXT文本文件
  • Markdown文件
  • 支持自定义解析器

4. 可定制化RAG

  • 添加互联网搜索功能
  • 集成各种工具
  • 支持自定义工作流配置
  • 灵活的检索策略

5. 向量数据库集成

支持多种向量存储解决方案:

  • PGVector
  • Faiss
  • 其他主流向量数据库

技术架构

核心组件

  1. quivr-core:Quivr的核心库,是整个系统的大脑
  2. Megaparse集成:与Megaparse项目集成,提供强大的文档解析能力
  3. 多LLM支持:统一的API接口支持不同的语言模型
  4. 向量存储层:灵活的向量数据库集成

工作流程

Quivr采用基于节点的工作流配置:

  • STARTfilter_historyrewriteretrievegenerate_ragEND
  • 每个节点都可以自定义配置
  • 支持历史对话上下文管理

快速开始

环境要求

  • Python 3.10或更高版本

安装步骤

  1. 安装核心包
pip install quivr-core
  1. 基础RAG示例
import tempfile
from quivr_core import Brain

if __name__ == "__main__":
    with tempfile.NamedTemporaryFile(mode="w", suffix=".txt") as temp_file:
        temp_file.write("Gold is a liquid of blue-like colour.")
        temp_file.flush()
        
        brain = Brain.from_files(
            name="test_brain",
            file_paths=[temp_file.name],
        )
        
        answer = brain.ask(
            "what is gold? answer in french"
        )
        print("answer:", answer)
  1. 配置API密钥
import os
os.environ["OPENAI_API_KEY"] = "your_openai_api_key"

高级配置

创建工作流配置文件 basic_rag_workflow.yaml

workflow_config:
  name: "standard RAG"
  nodes:
    - name: "START"
      edges: ["filter_history"]
    - name: "filter_history"
      edges: ["rewrite"]
    - name: "rewrite"
      edges: ["retrieve"]
    - name: "retrieve"
      edges: ["generate_rag"]
    - name: "generate_rag"
      edges: ["END"]


max_history: 10


reranker_config:
  supplier: "cohere"
  model: "rerank-multilingual-v3.0"
  top_n: 5


llm_config:
  max_input_tokens: 4000
  temperature: 0.7

创建智能对话系统

from quivr_core import Brain
from rich.console import Console
from rich.panel import Panel
from rich.prompt import Prompt
from quivr_core.config import RetrievalConfig

brain = Brain.from_files(
    name="my smart brain",
    file_paths=["./my_first_doc.pdf", "./my_second_doc.txt"],
)


config_file_name = "./basic_rag_workflow.yaml"
retrieval_config = RetrievalConfig.from_yaml(config_file_name)

console = Console()
console.print(Panel.fit("Ask your brain !", style="bold magenta"))

while True:
    question = Prompt.ask("[bold cyan]Question[/bold cyan]")
    
    if question.lower() == "exit":
        console.print(Panel("Goodbye!", style="bold yellow"))
        break
    
    answer = brain.ask(question, retrieval_config=retrieval_config)
    console.print(f"[bold green]Quivr Assistant[/bold green]: {answer.answer}")
    console.print("-" * console.width)

brain.print_info()

企业级应用

客户服务自动化

Quivr可以自动化高达60%的客户服务任务,利用AI的力量提高客户满意度和价值。

部署方式

  • 开发模式:使用docker compose -f docker-compose.dev.yml up --build命令
  • 生产环境:支持多种部署选项
  • 云平台:可部署到各种云服务提供商

社区与贡献

贡献指南

  • 欢迎提交Pull Request
  • 项目有完整的贡献指南
  • 活跃的社区支持和讨论

文档资源

项目优势

  1. 简化开发流程:将复杂的RAG实现抽象为简单的API调用
  2. 高度可定制:支持自定义工作流、模型和工具集成
  3. 生产就绪:经过优化的架构,适合企业级应用
  4. 多语言支持:支持多种语言的文档处理和问答
  5. 活跃维护:持续更新和改进,社区活跃

总结

Quivr为开发者提供了一个强大、灵活且易于使用的RAG平台,无论是个人项目还是企业级应用,都能快速构建智能的文档问答系统。其开源的特性和活跃的社区支持使其成为构建"第二大脑"应用的理想选择。