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, that you can share with users ! Local & Private alternative
Go to file
AmineDiro 757bceeb95
fix: asyncpg pooling config fix (#2795)
# Description

closes #2782.

Changes `sqlalchemy` connection pooling config : 

- **pool_pre_ping=True** : pessimistic disconnect handling. 

> - It is critical to note that the pre-ping approach does not
accommodate **for connections dropped in the middle of transactions or
other SQL operations** ! But this should only happen if we lose the
database either due to network of DB server restart.

- **pool_size=10**, with no db side pooling for now, if 6 uvicorn
process workers are spawned (or 6 instances of the backed) we have a
pool of 60 processes connecting to the database.
- **pool_recycle=1800** :  Recycles the pool every 30min

Added additional session config : 
- expire_on_commit=False, When True, all instances will be fully expired
after each commit, so that all attribute/object access subsequent to a
completed transaction will load from the most recent database state.
- autoflush=False, query operations will issue a Session.flush() call to
this Session before proceeding. We are calling `session.commit` (which
flushes) on each repository method so ne need to reflush on subsequent
access
2024-07-04 05:28:02 -07:00
.aws Update CPU and memory settings in task definition files (#2450) 2024-04-19 02:49:03 -07:00
.devcontainer Update devcontainer.json 2024-02-22 10:13:16 -08:00
.github chore: Add GitHub Actions workflow for testing and building Docker image (#2778) 2024-06-28 07:20:02 -07:00
.vscode Feat/auth-playground (#2605) 2024-05-21 13:20:35 -07:00
backend fix: asyncpg pooling config fix (#2795) 2024-07-04 05:28:02 -07:00
cms/quivr chore(strapi): Update package.json with license and author information 2024-02-07 11:06:49 -08:00
docs docs(security): added compliance (#2621) 2024-05-27 06:59:17 -07:00
frontend feat: add megaparse (#2785) 2024-07-04 02:23:15 -07:00
project.inlang feat(backend): quivr-monorepo and quivr-core package (#2765) 2024-06-27 03:51:01 -07:00
scripts/quivr_team_only feat: 🎸 supabase 2024-01-07 16:50:38 +01:00
.env.example refacto(backend): poetry package manager and chat route refactoring (#2684) 2024-06-26 00:58:55 -07:00
.flake8 Feat: chat name edit (#343) 2023-06-20 09:54:23 +02:00
.gitignore feat(backend): quivr-monorepo and quivr-core package (#2765) 2024-06-27 03:51:01 -07:00
CHANGELOG.md chore(main): release 0.0.278 (#2779) 2024-07-01 06:23:59 -07:00
docker-compose.dev.yml feat(backend): quivr-monorepo and quivr-core package (#2765) 2024-06-27 03:51:01 -07:00
docker-compose.redis.yml feat(integration): implementation (#2191) 2024-02-14 20:07:53 -08:00
docker-compose.yml feat: add megaparse (#2785) 2024-07-04 02:23:15 -07:00
LICENSE Update license to include enterprise features (#2653) 2024-06-10 09:42:14 -07:00
logo.png [ImgBot] Optimize images (#2568) 2024-05-09 07:16:31 -07:00
Makefile feat(profiler): Add pyinstrument package and update Makefile and backend code (#2512) 2024-04-28 06:10:21 -07:00
Pipfile Feat/auth-playground (#2605) 2024-05-21 13:20:35 -07:00
Pipfile.lock fix: sync creation fixed (#2637) 2024-06-06 10:06:21 -07:00
README.md Update README.md (#2660) 2024-06-11 16:15:03 +02:00
renovate.json chore: 🤖 renovate 2024-01-04 13:05:45 +01:00
vercel.json Revert "feat: 🎸 posthog (#1945)" 2024-01-02 10:23:40 +01:00

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 🎥

https://github.com/quivrhq/quivr/assets/19614572/a6463b73-76c7-4bc0-978d-70562dca71f5

Getting Started 🚀

You can deploy Quivr to Porter Cloud with one-click:

Deploy to Porter

If you would like to deploy locally, 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.

  • 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 admin@quivr.app & 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