The-Vibe-Company/quivr

โ˜… 39,528โ‘‚ 0

Opiniated RAG for integrating GenAI in your apps ๐Ÿง  Focus on your product rather than the RAG. Easy integration in existing products with customisation! Any LLM: GPT4, Groq, Llama.

About The-Vibe-Company/quivr

The-Vibe-Company/quivr is an open-source project on GitHub, mainly written in Python. Opiniated RAG for integrating GenAI in your apps ๐Ÿง  Focus on your product rather than the RAG. It currently holds 39,528 stars and 0 forks with 0 open issues, and was last pushed on an unknown date (repository created unknown).

Project Overview

AI Homed tracks it on the AI Models & LLM Tools board.

GitHub Repository Details

Repository The-Vibe-Company/quivr ยท default branch - ยท size 0 KB ยท watchers 0 ยท source: GitHub REST API and repository README

README

Quivr - Your Second Brain, Empowered by Generative AI

https://github.com/The-Vibe-Company/quivr/blob/HEAD/Quivr-logo

Discord Follow GitHub Repo stars Twitter Follow

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

Key Features ๐ŸŽฏ

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.

Getting Started ๐Ÿš€

You can find everything on the documentation.

Prerequisites ๐Ÿ“‹

Ensure you have the following installed:

30 seconds Installation ๐Ÿ’ฝ

  pip install quivr-core # Check that the installation worked
  
  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? asnwer in french" ) print("answer:", answer)

Configuration

Workflows

Basic RAG

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

3. 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"], )

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

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

Go further

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

Contributors โœจ

Thanks go to these wonderful people:

Contribute ๐Ÿค

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!

Partners โค๏ธ

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

https://github.com/The-Vibe-Company/quivr/blob/HEAD/YCombinator https://github.com/The-Vibe-Company/quivr/blob/HEAD/Theodo

License ๐Ÿ“„

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

GitHub Stars & Activity

39,528Stars
0Forks
0Open issues
PythonLanguage

GitHub Popularity

GitHub stars39,528
Forks0
Open issues0
Primary languagePython
License-
Stars gained today0
Created-
Last pushed-

Trending History

Trending statusnot on today's boards

Related AI Projects

1

NousResearch / hermes-agent

Pythonโ˜… 245,944โ‘‚ 0
โ†’
2

Significant-Gravitas / AutoGPT

Pythonโ˜… 187,373โ‘‚ 0
โ†’
3

huggingface / transformers

Pythonโ˜… 166,221โ‘‚ 0
โ†’
4

open-webui / open-webui

Pythonโ˜… 152,229โ‘‚ 0
โ†’
5

langchain-ai / langchain

Pythonโ˜… 146,421โ‘‚ 0
โ†’
6

Shubhamsaboo / awesome-llm-apps

Pythonโ˜… 138,375โ‘‚ 0
โ†’
7

harry0703 / MoneyPrinterTurbo

Pythonโ˜… 124,071โ‘‚ 0
โ†’
8

Graphify-Labs / graphify

Pythonโ˜… 118,107โ‘‚ 0
โ†’

More AI Rankings