Quivr est une plateforme RAG (Retrieval-Augmented Generation) open source et full-stack, axée sur l'intégration de l'IA générative dans les applications. L'idée centrale du projet est de permettre aux développeurs de se concentrer sur le produit lui-même, plutôt que sur les détails complexes de l'implémentation RAG.
Quivr prend en charge plusieurs modèles LLM, notamment :
Prise en charge de plusieurs formats de fichiers :
Prise en charge de plusieurs solutions de stockage vectoriel :
Quivr adopte une configuration de flux de travail basée sur des nœuds :
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"
Création du fichier de configuration du flux de travail 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 peut automatiser jusqu'à 60 % des tâches de service client, en utilisant la puissance de l'IA pour améliorer la satisfaction et la valeur des clients.
Quivr fournit aux développeurs une plateforme RAG puissante, flexible et facile à utiliser. Que ce soit pour des projets personnels ou des applications d'entreprise, il permet de construire rapidement des systèmes intelligents de questions-réponses sur des documents. Son caractère open source et le soutien actif de la communauté en font un choix idéal pour la construction d'applications de "deuxième cerveau".