Home
Login

Plataforma inteligente de Geração Aumentada por Recuperação (RAG) baseada em IA generativa, ajudando os usuários a construir um segundo cérebro, alcançando perguntas e respostas inteligentes sobre documentos e gerenciamento de conhecimento.

NOASSERTIONPython 38.0kQuivrHQ Last Updated: 2025-06-19

Apresentação Detalhada do Projeto Quivr

Visão Geral do Projeto

Quivr é uma plataforma de código aberto de Recuperação Aumentada por Geração (RAG) full-stack, focada na integração de IA generativa em aplicações. A ideia central do projeto é permitir que os desenvolvedores se concentrem no produto em si, em vez dos detalhes complexos da implementação do RAG.

Principais Características

1. Solução RAG Pronta para Uso

  • Arquitetura RAG Fixa: Oferece uma solução RAG otimizada, rápida e eficiente.
  • Integração Simples: Pode ser adicionada a projetos existentes com apenas algumas linhas de código.
  • Foco no Produto: Os desenvolvedores não precisam se preocupar com os detalhes da implementação subjacente do RAG.

2. Suporte a Múltiplos Modelos

Quivr suporta vários modelos LLM, incluindo:

  • OpenAI GPT series
  • Anthropic Claude
  • Mistral AI
  • Gemma
  • Modelos locais (via Ollama)

3. Processamento Flexível de Arquivos

Suporta vários formatos de arquivo:

  • Documentos PDF
  • Arquivos de texto TXT
  • Arquivos Markdown
  • Suporte para analisadores personalizados

4. RAG Personalizável

  • Adicionar funcionalidade de pesquisa na internet
  • Integrar várias ferramentas
  • Suporte para configuração de fluxo de trabalho personalizado
  • Estratégias de recuperação flexíveis

5. Integração com Banco de Dados Vetorial

Suporta várias soluções de armazenamento vetorial:

  • PGVector
  • Faiss
  • Outros bancos de dados vetoriais populares

Arquitetura Técnica

Componentes Principais

  1. quivr-core: A biblioteca central do Quivr, é o cérebro de todo o sistema.
  2. Integração Megaparse: Integrado com o projeto Megaparse, fornecendo poderosas capacidades de análise de documentos.
  3. Suporte a Múltiplos LLMs: Interface de API unificada que suporta diferentes modelos de linguagem.
  4. Camada de Armazenamento Vetorial: Integração flexível com banco de dados vetorial.

Fluxo de Trabalho

Quivr usa uma configuração de fluxo de trabalho baseada em nós:

  • STARTfilter_historyrewriteretrievegenerate_ragEND
  • Cada nó pode ser configurado individualmente
  • Suporte para gerenciamento do contexto histórico da conversa

Início Rápido

Requisitos de Ambiente

  • Python 3.10 ou versão superior

Etapas de Instalação

  1. Instalar o pacote principal
pip install quivr-core
  1. Exemplo básico de 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. Configurar a chave da API
import os
os.environ["OPENAI_API_KEY"] = "your_openai_api_key"

Configuração Avançada

Criar o arquivo de configuração do fluxo de trabalho 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

Criar um Sistema de Diálogo Inteligente

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()

Aplicações Empresariais

Automação do Atendimento ao Cliente

Quivr pode automatizar até 60% das tarefas de atendimento ao cliente, utilizando o poder da IA para aumentar a satisfação e o valor do cliente.

Métodos de Implantação

  • Modo de Desenvolvimento: Use o comando docker compose -f docker-compose.dev.yml up --build
  • Ambiente de Produção: Suporta várias opções de implantação
  • Plataforma de Nuvem: Pode ser implantado em vários provedores de serviços de nuvem

Comunidade e Contribuições

Guia de Contribuição

  • As Pull Requests são bem-vindas
  • O projeto tem um guia de contribuição completo
  • Suporte e discussão ativos da comunidade

Recursos de Documentação

Vantagens do Projeto

  1. Simplifica o Processo de Desenvolvimento: Abstrai a complexa implementação do RAG em simples chamadas de API.
  2. Altamente Personalizável: Suporta fluxos de trabalho personalizados, modelos e integração de ferramentas.
  3. Pronto para Produção: Arquitetura otimizada, adequada para aplicações empresariais.
  4. Suporte Multilíngue: Suporta processamento de documentos e perguntas e respostas em vários idiomas.
  5. Manutenção Ativa: Atualizações e melhorias contínuas, comunidade ativa.

Resumo

Quivr oferece aos desenvolvedores uma plataforma RAG poderosa, flexível e fácil de usar. Seja para projetos pessoais ou aplicações empresariais, é possível construir rapidamente sistemas inteligentes de perguntas e respostas sobre documentos. Sua natureza de código aberto e o suporte ativo da comunidade o tornam a escolha ideal para construir aplicações de "segundo cérebro".