开源项目 GitHub Topic rag 2026-07-06T12:02 正文 ok 734 words

Quivr:由生成式 AI 驱动的第二大脑

英文标题:📦 QuivrHQ/quivr

Quivr 是一个开源的强观点 RAG 框架,旨在简化生成式 AI 在应用中的集成。它支持任意大语言模型(如 GPT-4、Claude、Llama)、向量数据库和文件类型,并通过 YAML 配置文件快速搭建检索增强生成工作流。开发者只需专注于产品逻辑,RAG 实现、解析和检索均由框架负责。项目还提供 Megaparse 集成、互联网搜索与工具扩展,采用 Apache 2.0 许可证,社区活跃且可定制。
打开原文相关 4.2 · 机会 5
media138.8 KB media2.7 KB media1.7 KB media191.1 KB media409.5 KB media3.8 KB media1.2 KB media147.3 KB

中文

Quivr - 由生成式 AI 驱动的你的第二大脑

Discord 关注 GitHub 仓库星标 Twitter 关注

Quivr 帮你构建第二大脑,利用生成式 AI 的力量成为你的个人助理!

  • 有态度的 RAG :我们创建了一个有态度、快速且高效的 RAG,让你专注于你的产品
  • LLMs :Quivr 支持任何 LLM,你可以与 OpenAI、Anthropic、Mistral、Gemma 等一起使用。
  • 任意文件 :Quivr 支持任何文件,可使用 PDF、TXT、Markdown 等,甚至可以添加自己的解析器。
  • 自定义你的 RAG :Quivr 允许你自定义 RAG,添加互联网搜索、工具等。
  • 与 Megaparse 集成 :Quivr 与 Megaparse 协作,你可以用 Megaparse 摄入文件,并在 Quivr 中使用 RAG。

我们负责 RAG 部分,让你可以专注于产品。只需安装 quivr-core 并添加到你的项目,即可摄入文件并提问。*

我们将持续改进 RAG 并添加更多功能,敬请关注!

这是 Quivr 的核心,Quivr.com 的大脑。

你可以在文档中找到所有信息。

确保已安装以下内容:

30 秒快速安装 💽

创建一个像上面这样的基本 RAG 工作流非常简单,步骤如下:

  1. 将你的 API 密钥添加到环境变量中

import os os.environ["OPENAI_API_KEY"] = "myopenai_apikey"

Quivr 支持来自 Anthropic、OpenAI 和 Mistral 的 API,也支持通过 Ollama 使用的本地模型。

  1. 创建 YAML 文件 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" # the name of the last node, from which we want to stream the answer to the user
  edges: ["END"]

Maximum number of previous conversation iterations

to include in the context of the answer

max_history: 10

Reranker configuration

reranker_config:

The reranker supplier to use

supplier: "cohere"

The model to use for the reranker for the given supplier

model: "rerank-multilingual-v3.0"

Number of chunks returned by the reranker

top_n: 5

Configuration for the LLM

llm_config:

maximum number of tokens passed to the LLM to generate the answer

max_input_tokens: 4000

temperature for the LLM

temperature: 0.7

  1. 使用默认配置创建一个 Brain

from quivr_core import Brain

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

  1. 启动聊天

brain.print_info()

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

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: # Get user input question = Prompt.ask("[bold cyan]Question[/bold cyan]")

# Check if user wants to exit
if question.lower() == "exit":
    console.print(Panel("Goodbye!", style="bold yellow"))
    break

answer = brain.ask(question, retrieval_config=retrieval_config)
# Print the answer with typing effect
console.print(f"[bold green]Quivr Assistant[/bold green]: {answer.answer}")

console.print("-" * console.width)

brain.print_info()

  1. 现在你已经全部设置好,可以与你的大脑对话,只需更改配置文件即可测试不同的检索策略!

你可以通过添加互联网搜索、工具等进一步扩展 Quivr。更多信息请查看文档。

感谢这些出色的人:

你收到一个 pull request 了吗?请提交,我们会尽快审核。查看我们的项目看板这里了解当前工作重点,欢迎随时带着新想法加入!

这个项目离不开合作伙伴的支持,感谢你们的支持!

YCombinator Theodo

本项目基于 Apache 2.0 许可证发布 - 详情见 LICENSE 文件

English / 原文

Quivr - Your Second Brain, Empowered by Generative AI

Discord Follow GitHub Repo stars Twitter Follow

Quivr, helps you build your second brain, utilizes the power of GenerativeAI to be your personal assistant !

  • Opiniated RAG : We created a RAG that is opinionated, fast and efficient so you can focus on your product
  • LLMs : Quivr works with any LLM, you can use it with OpenAI, Anthropic, Mistral, Gemma, etc.
  • Any File : Quivr works with any file, you can use it with PDF, TXT, Markdown, etc and even add your own parsers.
  • Customize your RAG : Quivr allows you to customize your RAG, add internet search, add tools, etc.
  • Integrations with Megaparse : Quivr works with Megaparse, so you can ingest your files with Megaparse and use the RAG with Quivr.

We take care of the RAG so you can focus on your product. Simply install quivr-core and add it to your project. You can now ingest your files and ask questions.*

We will be improving the RAG and adding more features, stay tuned!

This is the core of Quivr, the brain of Quivr.com.

You can find everything on the documentation.

Ensure you have the following installed:

30 seconds Installation 💽

Creating a basic RAG workflow like the one above is simple, here are the steps:

  1. Add your API Keys to your environment variables
import os
os.environ["OPENAI_API_KEY"] = "myopenai_apikey"

Quivr supports APIs from Anthropic, OpenAI, and Mistral. It also supports local models using Ollama.

  1. Create the YAML file basic_rag_workflow.yaml and copy the following content in it
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" # the name of the last node, from which we want to stream the answer to the user
      edges: ["END"]

# Maximum number of previous conversation iterations
# to include in the context of the answer
max_history: 10

# Reranker configuration
reranker_config:
  # The reranker supplier to use
  supplier: "cohere"

  # The model to use for the reranker for the given supplier
  model: "rerank-multilingual-v3.0"

  # Number of chunks returned by the reranker
  top_n: 5

# Configuration for the LLM
llm_config:

  # maximum number of tokens passed to the LLM to generate the answer
  max_input_tokens: 4000

  # temperature for the LLM
  temperature: 0.7
  1. Create a Brain with the default configuration
from quivr_core import Brain

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

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

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:
    # Get user input
    question = Prompt.ask("[bold cyan]Question[/bold cyan]")

    # Check if user wants to exit
    if question.lower() == "exit":
        console.print(Panel("Goodbye!", style="bold yellow"))
        break

    answer = brain.ask(question, retrieval_config=retrieval_config)
    # Print the answer with typing effect
    console.print(f"[bold green]Quivr Assistant[/bold green]: {answer.answer}")

    console.print("-" * console.width)

brain.print_info()
  1. You are now all set up to talk with your brain and test different retrieval strategies by simply changing the configuration file!

You can go further with Quivr by adding internet search, adding tools, etc. Check the documentation for more information.

Thanks go to these wonderful people:

Did you get a pull request? Open it, and we'll review it as soon as possible. Check out our project board here to see what we're currently focused on, and feel free to bring your fresh ideas to the table!

This project would not be possible without the support of our partners. Thank you for your support!

YCombinator Theodo

This project is licensed under the Apache 2.0 License - see the LICENSE file for details