Giter Club home page Giter Club logo

quivrhq / quivr Goto Github PK

View Code? Open in Web Editor NEW
32.3K 272.0 3.1K 91.01 MB

Your GenAI Second Brain ๐Ÿง  A personal productivity assistant (RAG) โšก๏ธ๐Ÿค– Chat with your docs (PDF, CSV, ...) & apps using Langchain, GPT 3.5 / 4 turbo, Private, Anthropic, VertexAI, Ollama, LLMs, Groq that you can share with users ! Local & Private alternative to OpenAI GPTs & ChatGPT powered by retrieval-augmented generation.

Home Page: https://quivr.app

License: Apache License 2.0

Python 41.10% Dockerfile 0.46% CSS 0.42% JavaScript 2.05% TypeScript 43.85% PLpgSQL 7.21% Makefile 0.07% SCSS 4.65% Shell 0.17% TeX 0.01%
ai llm api chatbot chatgpt database docker frontend openai postgresql privacy rest-api security typescript html javascript react rag vector groq

quivr's Introduction

Quivr - Your Second Brain, Empowered by Generative AI

Quivr-logo

Discord Follow GitHub Repo stars Twitter Follow

Quivr, your second brain, utilizes the power of GenerativeAI to be your personal assistant ! Think of it as Obsidian, but turbocharged with AI capabilities.

Roadmap here

Key Features ๐ŸŽฏ

  • Fast and Efficient: Designed with speed and efficiency at its core. Quivr ensures rapid access to your data.
  • Secure: Your data, your control. Always.
  • OS Compatible: Ubuntu 22 or newer.
  • File Compatibility: Text, Markdown, PDF, Powerpoint, Excel, CSV, Word, Audio, Video
  • Open Source: Freedom is beautiful, and so is Quivr. Open source and free to use.
  • Public/Private: Share your brains with your users via a public link, or keep them private.
  • Marketplace: Share your brains with the world, or use other people's brains to boost your productivity.
  • Offline Mode: Quivr works offline, so you can access your data anytime, anywhere.

Demo Highlights ๐ŸŽฅ

quivr-demo-new.mp4

Getting Started ๐Ÿš€

Follow these instructions to get a copy of the project up and running on your local machine for development and testing purposes.

You can find everything on the documentation.

Prerequisites ๐Ÿ“‹

Ensure you have the following installed:

  • Docker
  • Docker Compose

60 seconds Installation ๐Ÿ’ฝ

You can find the installation video here.

  • Step 0: Supabase CLI

    Follow the instructions here to install the Supabase CLI that is required.

    supabase -v # Check that the installation worked
  • Step 1: Clone the repository:

    git clone https://github.com/quivrhq/quivr.git && cd quivr
  • Step 2: Copy the .env.example files

    cp .env.example .env
  • Step 3: Update the .env files

    vim .env # or emacs or vscode or nano

    Update OPENAI_API_KEY in the .env file.

    You just need to update the OPENAI_API_KEY variable in the .env file. You can get your API key here. You need to create an account first. And put your credit card information. Don't worry, you won't be charged unless you use the API. You can find more information about the pricing here.

    Don't want to use OpenAI and want to use Ollama instead for a completely private experience? You can find the instructions here.

  • Step 4: Launch the project

    cd backend && supabase start

    and then

    cd ../
    docker compose pull
    docker compose up

    If you have a Mac, go to Docker Desktop > Settings > General and check that the "file sharing implementation" is set to VirtioFS.

    If you are a developer, you can run the project in development mode with the following command: docker compose -f docker-compose.dev.yml up --build

  • Step 5: Login to the app

    You can now sign in to the app with [email protected] & admin. You can access the app at http://localhost:3000/login.

    You can access Quivr backend API at http://localhost:5050/docs

    You can access supabase at http://localhost:54323

Updating Quivr ๐Ÿš€

  • Step 1: Pull the latest changes

    git pull
  • Step 2: Update the migration

    supabase migration up

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!

YCombinator Theodo

License ๐Ÿ“„

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

Stars History ๐Ÿ“ˆ

Star History Chart

quivr's People

Contributors

adityanandanx avatar b0rra avatar chloemouret avatar dheerapat avatar dmourot avatar eltociear avatar evancarlson avatar github-actions[bot] avatar gozineb avatar joelsprunger avatar klaudioz avatar mamadoudicko avatar matthieujacq avatar mattzcarey avatar maximethoonsen avatar metanov avatar michaeltansg avatar murtazahr avatar nguernse avatar nilsjacobsen avatar porter-deployment-app[bot] avatar ravikiranp123 avatar renovate[bot] avatar ruben1701 avatar shaunwei avatar shuruheel avatar stangirard avatar stepanlebedevtheodo avatar vankeer avatar zewed avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

quivr's Issues

Stuck at Please wait

The browser shows "PLEASE WAIT " indefinetly. Any ideas? All dependencies installed correctly, ran table creation script in supabase successfully, tried credentials in secrets.toml with and without quotes.
Screenshot 2023-05-15 at 18 50 35

Multiple brains with their own data and settings

Individuals and organizations would need multiple brains depending on the use case. For example, I may create separate brains for programming, growth strategy, product management, philosophy, negotiation, healthcare innovation, politics, and artificial intelligence.

Each could require its own set documents, chunk size, chunk overlap, foundation model, and in the future, even its own data model. For example, each brain may require not just retrieval of context relevant to the query, but for the retrieved context to cover various types of data. For a financial advisor, depending on the query, it may make sense for the context to include some mix of news, market data, and applied reasoning data (equity research reports).

Copy/Paste Content

Allow users to copy paste content in a text.input_area

Looking for a contributor

Language Support

Everything is fine, but this prompt does not support languages other than English

Additional prerequisite: pycryptodome

Hi,

I was just trying to install this code and it failed for me because I did not have pycryptodome, so I was wondering if it would be good to add it to the list?

This was on a new clean install of Ubuntu 22.04

Joe

Should this work with the free version of OpenAI?

Hi,

Should one be able to test this system with the free version of OpenAI?

I have managed to install all of the software but I received an error saying I had reached my OpenAI limit when trying to upload my first PDF.

I am currently exploring the alternative Anthropic models as well.

Thanks

Joe

Add answers to context

As discussed here.

The ideal UX flow would be:

  • on answer, add three buttons

      1. Build on answer
      1. New context answer
      1. Fork context
  • "Build on answer" adds this question and answer to the DB for future queries.

  • "New context answer" works as it does now, fresh context API call with only current raw-data vectors, previous questions and answers are ignored, even if there are some.

  • "Fork context" allows you to branch off of a certain answer (even past ones) with a different query, like so: suppose there was Context 0 -> Question 1 -> Answer 1 -> Question 2 -> Answer 2. I can scroll up to Answer 1, click Fork Context, and the next query I write will pretend Question 2 and Answer 2 never happened. This allows the user to have branched context-persistent conversations with the API and the ability to fine tune responses from the past based on new prompt insights from the future. It is also very useful for prompt auditing and reporting.

I understand 3) is very hard to build right now as it also requires a separate UI element for the forked conversations so 1) and 2) would be good enough, especially 1) which is very important in longer-context plans.

How do I run this step?

Run the migration script on the Supabase database via the web interface

Sorry, I'm new to this stuff and this simple sentence is very beginner-unfriendly to me. Could you point me out where to find the web interface?

Deploying on Vercel ?

Could you please show how to deploy this project on Vercel for better access, (such as how to set the needed openai_api_key\supabase_service_key\supabase_url, etc, tried to set them into the env.vars but got 404), thanks!

Debugging a critical failure

Before building quivr out further, I would like to look into this problem: https://twitter.com/bitfalls/status/1657736877007405056?s=20

Specifically, I fed it around 30 markdown documents, but it looks like it does not really follow context and has no real idea what is going on. Every article has a "status" at the top, and when I asked it to give me all active ones, it just gives me random ones, while asking for the status of one I know is active it tells me it is active. This shows me that it can check for status of a targeted ask, but cannot reason on the whole corpus of information. I wonder why this happens and if we can debug it, because unless this is resolved, Quivr is dangerously unreliable to use.

@StanGirard any ideas on what to do to test this and come to a satisfactory output?

Website redesign for www.quivr.app

Hi there, I would like to work on the website redesign for quivr.app. Could you please assign this issue to me? I have experience with website design and development with Next JS, and I am excited to contribute to this project. Thank you!

Cloud Version

Deploy the app to streamlit

Needs to load the API_KEY and all via the streamlit app.

It means adding a configuration box to ask the users for their API_KEYS instead of reading it from a secret

Roadmap

Stack End Goal:

  • Python with FastAPI for the Backend
  • NextJS for the WebAPP
  • Electron + NextJS Desktop App

All future code will go toward this.

Looking for NextJS experts ;)

Vector Stores to implement:

  • Weaviate
  • Chromadb

LLM support

  • GPT4all
  • Llama
  • Whisper alternative

Features

  • Copy/Paste information #19
  • Training brain with its answers #16
  • Sources to output #11
  • Self Hosting LLM and Embeddings #5
  • History of answers #13
  • Zip Ingestion

Whisper limits

Whisper API limits upload to 25MB. If it is case maybe you will need to chunk the audio file before processsing

filter based on the file_name in metadata

Hey, your app is really great. a filter based on the file_name in metadata while calling ConversationalRetrievalChain would be great so that I can ask questions to selected documents only.

Turn on discussions?

Might be better than issues for discussing future plans / other libraries etc.

Input Zip File

Allow users to load a zip that will be de-zipped

Looking for a contributor

add source to output

Hi,

would be great if you could add a link to the referenced document in the output.

thanks

Error uploading files on Windows

I got Quivr up and running, Windows 10, but am having issues when I try to upload a file. It seems it doesn't have permission to access the Temp folder? It should as far as I can tell.

PermissionError: [Errno 13] Permission denied: 'C:\Users\29158~1.1E1\AppData\Local\Temp\tmpl5t8vu99.txt'
Traceback:

File "C:\Users\Laptop\Documents\GitHub\quivr\venv\Lib\site-packages\streamlit\runtime\scriptrunner\script_runner.py", line 565, in _run_script
exec(code, module.dict)
File "C:\Users\Laptop\Documents\GitHub\quivr\main.py", line 66, in
file_uploader(supabase, openai_api_key, vector_store)
File "C:\Users\Laptop\Documents\GitHub\quivr\files.py", line 37, in file_uploader
file_processors[file_extension](vector_store, file)
File "C:\Users\Laptop\Documents\GitHub\quivr\loaders\txt.py", line 5, in process_txt
return process_file(vector_store, file, TextLoader, ".txt")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Laptop\Documents\GitHub\quivr\loaders\common.py", line 19, in process_file
documents = loader.load()
^^^^^^^^^^^^^
File "C:\Users\Laptop\Documents\GitHub\quivr\venv\Lib\site-packages\langchain\document_loaders\text.py", line 17, in load
with open(self.file_path, encoding=self.encoding) as f:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.