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.
Quivr suporta vários modelos LLM, incluindo:
Suporta vários formatos de arquivo:
Suporta várias soluções de armazenamento vetorial:
Quivr usa uma configuração de fluxo de trabalho baseada em nós:
pip install quivr-core
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)
import os
os.environ["OPENAI_API_KEY"] = "your_openai_api_key"
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
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 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.
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".