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 平台,無論是個人項目還是企業級應用,都能快速構建智能的文檔問答系統。其開源的特性和活躍的社區支援使其成為構建"第二大腦"應用的理想選擇。