Commit Graph

754 Commits

Author SHA1 Message Date
AmineDiro
35eb07f7a2
fix: quiv core stream duplicate and quivr-core rag tests (#2852)
# Description

`quivr-core`
- Generate a fixture to simulate a model with function calling
- Monkey patch `QuivrQARAG` stream 
-  Tests function

`quivr-api`
- Fixes empty API responses 
- Fixes non function calling models

---------

Co-authored-by: Stan Girard <girard.stanislas@gmail.com>
2024-07-12 06:07:39 -07:00
Stan Girard
86676c3f39
feat: Add bulk_id field to CreateNotification and Notification models (#2854)
# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):
2024-07-12 06:04:39 -07:00
Stan Girard
064557f480
feat: Add bulk_id field to CreateNotification and Notification models (#2850)
This pull request adds a new field called `bulk_id` to the
`CreateNotification` and `Notification` models. The `bulk_id` field is
an optional UUID that can be used for bulk operations.
2024-07-12 01:51:27 -07:00
Antoine Dewez
2d2ccc382e
fix(backend): thumbs button were broken (#2849)
# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):

---------

Co-authored-by: Stan Girard <girard.stanislas@gmail.com>
2024-07-11 16:29:48 +02:00
Antoine Dewez
29cdbca8a8
fix(frontend): remove possibilities to create brain if max amount (#2847)
# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):
2024-07-11 15:37:24 +02:00
AmineDiro
23ea00726a
fix: fixes duplicate response bug (#2843)
# Description

closes #2794.

Fixes duplicate responses in stream
2024-07-11 06:09:43 -07:00
Stan Girard
be84ecf89e
chore: Update quivr-core and chainlit versions in requirements.txt (#2839)
This pull request updates the versions of quivr-core and chainlit in the
requirements.txt file. The quivr-core version is changed from 0.0.8 to
0.0.8[base], and the chainlit version is changed from 1.1.306 to
1.1.306.
2024-07-11 01:33:33 -07:00
Stan Girard
c86074942a
chore: Update quivr-core and chainlit versions in requirements.txt (#2836) 2024-07-11 01:16:32 -07:00
Stan Girard
d9338347f7
chore(main): release core 0.0.8 (#2832)
🤖 I have created a release *beep* *boop*
---


##
[0.0.8](https://github.com/QuivrHQ/quivr/compare/core-0.0.7...core-0.0.8)
(2024-07-11)


### Features

* Add Quivr chatbot example
([#2827](https://github.com/QuivrHQ/quivr/issues/2827))
([5ff8d4e](5ff8d4ee81))
* Update aiofiles dependency to loosen version control
([#2834](https://github.com/QuivrHQ/quivr/issues/2834))
([5e75d15](5e75d15597))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
2024-07-11 01:06:42 -07:00
Stan Girard
5e75d15597
feat: Update aiofiles dependency to loosen version control (#2834)
This pull request updates the aiofiles dependency version to loosen the
version control.
2024-07-11 01:05:17 -07:00
Stan Girard
5ff8d4ee81
feat: Add Quivr chatbot example (#2827)
The commit adds a new Quivr chatbot example to the repository. The
example demonstrates how to create a simple chatbot using Quivr and
Chainlit. Users can upload a text file and ask questions about its
content. The commit includes the necessary files, installation
instructions, and usage guidelines.
2024-07-10 12:42:49 -07:00
Stan Girard
7b8db6b9ec
chore(main): release core 0.0.7 (#2831)
🤖 I have created a release *beep* *boop*
---


##
[0.0.7](https://github.com/QuivrHQ/quivr/compare/core-0.0.6...core-0.0.7)
(2024-07-10)


### Bug Fixes

* llm model name ([#2830](https://github.com/QuivrHQ/quivr/issues/2830))
([71d6cd9](71d6cd9b6b))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
2024-07-10 09:34:49 -07:00
AmineDiro
71d6cd9b6b
fix: llm model name (#2830)
# Description

llm endpoint model name wasn't taken into account
2024-07-10 09:34:06 -07:00
Stan Girard
cc4bea7654
chore(main): release core 0.0.6 (#2829)
🤖 I have created a release *beep* *boop*
---


##
[0.0.6](https://github.com/QuivrHQ/quivr/compare/core-0.0.5...core-0.0.6)
(2024-07-10)


### Features

* quivr-core ask streaming
([#2828](https://github.com/QuivrHQ/quivr/issues/2828))
([0658d49](0658d4947c))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
2024-07-10 08:53:07 -07:00
AmineDiro
0658d4947c
feat: quivr-core ask streaming (#2828)
# Description

Added streaming response to quivr-core brain + tests.
2024-07-10 08:52:07 -07:00
Stan Girard
f496e013d3
chore(main): release core 0.0.5 (#2821)
🤖 I have created a release *beep* *boop*
---


##
[0.0.5](https://github.com/QuivrHQ/quivr/compare/core-0.0.4...core-0.0.5)
(2024-07-10)


### Features

* Add GitHub Actions workflow for running tests on backend/core
([#2820](https://github.com/QuivrHQ/quivr/issues/2820))
([82292f3](82292f30ac))
* Add GitHub Actions workflow for running tests on backend/core
([#2822](https://github.com/QuivrHQ/quivr/issues/2822))
([1566040](15660409a3))
* quivr core chat history
([#2824](https://github.com/QuivrHQ/quivr/issues/2824))
([847e161](847e161d80))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
2024-07-10 06:29:24 -07:00
AmineDiro
847e161d80
feat: quivr core chat history (#2824)
# Description

- Defined quivr-core `ChatHistory`
- `ChatHistory` can be iterated over in tuples of
`HumanMessage,AIMessage`
-  Brain appends to the chatHistory once response is received
- Brain holds a dict of chats and defines the default chat (TODO: define
a system of selecting the chats)
- Wrote test 
- Updated `QuivrQARAG` to use `ChatHistory` as input
2024-07-10 06:22:59 -07:00
Stan Girard
442186c674
feat(precommit): Update pre-commit hooks to latest versions (#2823)
This pull request updates the pre-commit hooks in the
`.pre-commit-config.yaml` file to the latest versions. By doing so, we
ensure that our codebase benefits from the latest bug fixes and
improvements provided by the pre-commit community.
2024-07-09 10:33:45 -07:00
Stan Girard
15660409a3
feat: Add GitHub Actions workflow for running tests on backend/core (#2822)
# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):
2024-07-09 09:39:01 -07:00
Stan Girard
82292f30ac
feat: Add GitHub Actions workflow for running tests on backend/core (#2820)
This commit adds a new GitHub Actions workflow file
`backend-core-tests.yml` to the repository. This workflow is triggered
on push and pull request events, specifically for changes made to the
`backend/core` directory. The workflow runs tests for the backend/core
module using a Tika server as a service. It checks the health of the
Tika server before running the tests. The workflow sets up Python,
installs dependencies using Poetry, and runs the tests using pytest.

This commit is necessary to automate the testing process for the
backend/core module and ensure that the tests are run consistently and
reliably.

Co-authored-by: aminediro <aminedirhoussi@gmail.com>
2024-07-09 09:28:27 -07:00
Stan Girard
03aa9e4521
chore(main): release core 0.0.4 (#2819)
🤖 I have created a release *beep* *boop*
---


##
[0.0.4](https://github.com/QuivrHQ/quivr/compare/core-0.0.3...core-0.0.4)
(2024-07-09)


### Features

* quivr core minimal chat
([#2818](https://github.com/QuivrHQ/quivr/issues/2818))
([481f24f](481f24f5be))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
2024-07-09 18:12:33 +02:00
AmineDiro
481f24f5be
feat: quivr core minimal chat (#2818)
# Description
- Introduce `LLMEndpoint` class: wrapper around a `BaseChatLLM` to load
OpenAI compatible models
- Add `brain.search(...)` function to retrieve
- Test with test-coverage: 
- Added ability to load brain `from langchain.Document`
- Configured mypy and poetry lock in `.pre-commit.yaml`

# Test coverage

![image](https://github.com/QuivrHQ/quivr/assets/14312141/629ede66-146e-400f-b40b-8c22a9258a47)

---------

Co-authored-by: aminediro <aminedirhoussi@gmail.com>
2024-07-09 17:55:14 +02:00
Stan Girard
f77c8e65a3
chore(main): release core 0.0.3 (#2817)
🤖 I have created a release *beep* *boop*
---


##
[0.0.3](https://github.com/QuivrHQ/quivr/compare/core-0.0.2...core-0.0.3)
(2024-07-09)


### Bug Fixes

* **pyproject:** fixed to quivr github
([#2816](https://github.com/QuivrHQ/quivr/issues/2816))
([5a4ac00](5a4ac001d0))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
2024-07-09 07:57:16 -07:00
Stan Girard
5a4ac001d0
fix(pyproject): fixed to quivr github (#2816)
This pull request updates the repository URL in the pyproject.toml file
from "https://github.com/langchain-ai/langchain" to
"https://github.com/QuivrHQ/quivr".
2024-07-09 07:56:05 -07:00
Stan Girard
e047fec673
chore(main): release core 0.0.2 (#2815)
🤖 I have created a release *beep* *boop*
---


##
[0.0.2](https://github.com/QuivrHQ/quivr/compare/core-v0.0.1...core-0.0.2)
(2024-07-09)


### Features

* **backend:** quivr-monorepo and quivr-core package
([#2765](https://github.com/QuivrHQ/quivr/issues/2765))
([2e75de4](2e75de4039))
* quivr core minimal chat
([#2803](https://github.com/QuivrHQ/quivr/issues/2803))
([1dc6d88](1dc6d88f9b))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
2024-07-09 07:49:44 -07:00
Stan Girard
2e995a6ae9 chore: Update backend/core version to 0.0.1 in release-please-manifest.json 2024-07-09 16:48:12 +02:00
Stan Girard
11e8556d1c
chore(main): release core 0.0.2 (#2814)
🤖 I have created a release *beep* *boop*
---


##
[0.0.2](https://github.com/QuivrHQ/quivr/compare/core-v0.0.1...core-0.0.2)
(2024-07-09)


### Features

* **backend:** quivr-monorepo and quivr-core package
([#2765](https://github.com/QuivrHQ/quivr/issues/2765))
([2e75de4](2e75de4039))
* quivr core minimal chat
([#2803](https://github.com/QuivrHQ/quivr/issues/2803))
([1dc6d88](1dc6d88f9b))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
2024-07-09 07:43:18 -07:00
Stan Girard
c6d794ecb4 chore: release please updated manifest 2024-07-09 16:38:36 +02:00
Stan Girard
b8eb5dc652 chore: Update release-please-core workflow for python package in backend 2024-07-09 16:36:23 +02:00
Stan Girard
85ef336f70
chore(main): release core 0.0.2 (#2813)
🤖 I have created a release *beep* *boop*
---


##
[0.0.2](https://github.com/QuivrHQ/quivr/compare/core-v0.0.1...core-0.0.2)
(2024-07-09)


### Features

* **backend:** quivr-monorepo and quivr-core package
([#2765](https://github.com/QuivrHQ/quivr/issues/2765))
([2e75de4](2e75de4039))
* quivr core minimal chat
([#2803](https://github.com/QuivrHQ/quivr/issues/2803))
([1dc6d88](1dc6d88f9b))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
2024-07-09 07:31:12 -07:00
Stan Girard
ae8bb71142 chore: Update release-please-core workflow for python package in backend 2024-07-09 16:28:54 +02:00
Stan Girard
433e14c0a2
chore(main): release core 0.0.2 (#2812)
🤖 I have created a release *beep* *boop*
---


##
[0.0.2](https://github.com/QuivrHQ/quivr/compare/core-v0.0.1...core-0.0.2)
(2024-07-09)


### Features

* **backend:** quivr-monorepo and quivr-core package
([#2765](https://github.com/QuivrHQ/quivr/issues/2765))
([2e75de4](2e75de4039))
* quivr core minimal chat
([#2803](https://github.com/QuivrHQ/quivr/issues/2803))
([1dc6d88](1dc6d88f9b))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
2024-07-09 07:21:49 -07:00
Stan Girard
7919c09161 chore: Update GitHub Actions workflows to trigger on tag pushes
This commit updates the GitHub Actions workflows for the backend services (quivr-com-backend, quivr-com, raise-frontend, raise, theodo-backend, and theodo-frontend) to trigger on tag pushes instead of branch pushes. This change allows for more controlled deployments and ensures that only tagged versions are deployed to the respective environments.
2024-07-09 16:07:59 +02:00
Stan Girard
07d25e4208 chore: Add release-please-core workflow and configuration files
This commit adds the release-please-core workflow and configuration files for the python package in the backend. The release-please workflow is triggered on push to the main branch and on manual workflow dispatch. It sets up Python, installs Poetry, configures Poetry, and runs release-please for the backend/core package. The release-please configuration file specifies the release type, package name, bump patch for minor pre-major, changelog notes type, include v in tag, tag separator, and component.
2024-07-09 16:00:31 +02:00
Stan Girard
318b615fcb chore: Update release-please workflow for python package in backend 2024-07-09 15:55:46 +02:00
AmineDiro
1dc6d88f9b
feat: quivr core minimal chat (#2803)
# Description

Minimal working example of `quivr-core` rag with minimal dependencies.

---------

Co-authored-by: aminediro <aminedirhoussi@gmail.com>
2024-07-09 06:22:16 -07:00
Stan Girard
cde7c81de1
feat: Improve error handling in acquiring token (#2807)
The code changes handle the case when the access token is not present in
the result of acquiring the token. It now logs an error message with the
specific reason for the failure and raises an HTTPException with a
corresponding detail message. This improves the error handling and
provides more information to the user.

Note: The commit message follows the convention used in the recent user
commits and adheres to the established format.

# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):
2024-07-09 01:14:37 -07:00
AmineDiro
1fa79de859
fix: RAG service bug assertion error (#2796)
# Description

Fixes assertion error on brains of brain type integration.
!/!: temporary fix casts user_id to string for the assertion
2024-07-04 06:36:34 -07:00
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
Chloé Daems
913217f682
feat: add megaparse (#2785)
Add megaparse as the main parser

---------

Co-authored-by: Stan Girard <girard.stanislas@gmail.com>
2024-07-04 02:23:15 -07:00
Stan Girard
2e4b80138c
chore: Update flashrank npm dependency to version 0.2.5 (#2781)
# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):
2024-06-28 09:09:17 -07:00
Stan Girard
49c6eb686a
chore: Add supabase directory to Dockerfile (#2768)
# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):
2024-06-27 05:02:10 -07:00
Stan Girard
1cd5ff6e78
chore: Add ci-migration.sh to Dockerfile (#2767)
# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):
2024-06-27 04:02:15 -07:00
AmineDiro
2e75de4039
feat(backend): quivr-monorepo and quivr-core package (#2765)
# Description

closes #2722.

- Creates `quivr-monorepo` 
- Separates `quivr-core`
- Update dockerfiles and docker-compose

---------

Co-authored-by: aminediro <aminediro@github.com>
2024-06-27 03:51:01 -07:00
Stan Girard
0f51de8f41
chore: Update docker-compose files to specify platform for backend services (#2762)
This pull request updates the docker-compose files to specify the
platform for the backend services as linux/amd64. This ensures that the
services are built and run specifically for the amd64 architecture.
2024-06-26 15:46:18 -07:00
Stan Girard
d8956e55bb
fix: Update email sender parameters in backend code (#2755)
# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):

Co-authored-by: Stan Girard <stan@quivr.app>
2024-06-26 05:21:46 -07:00
AmineDiro
cb3b795a92
closes #2756 (#2757)
# Description

closes #2756 

- Fixed torchvision cpu version in poetry
- Moved test dependencies to dev group

Co-authored-by: aminediro <aminediro@github.com>
2024-06-26 05:04:06 -07:00
AmineDiro
ca93cb9062
refacto(backend): poetry package manager and chat route refactoring (#2684)
# Description
- Added package manager
- Added precommit checks
- Rewrote dependency injection of Services and Repositories
- Integrate async SQL alchemy engine
- Migrate Chat  repository to SQLModel 
- Migrated ChatHistory repository to SQLModel
- User SQLModel
- Unit test methodology with db rollback
- Unit tests ChatRepository
- Test ChatService get_history
- Brain entity SQL Model
- Promp SQLModel
- Rewrite chat/{chat_id}/question route
- updated docker files and docker compose in dev and production

Added `quivr_core` subpackages:
- Refactored KnowledgebrainQa
- Added Rag service to interface with non-rag dependencies

---------

Co-authored-by: aminediro <aminediro@github.com>
2024-06-26 00:58:55 -07:00
Stan Girard
036201d844
feat: Improve efficiency of syncing stripe (#2719)
Fixes #2718

# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):

---------

Co-authored-by: Stan Girard <stan@quivr.app>
2024-06-24 13:17:48 -07:00
AmineDiro
28cb0ba7e6
fix: check user premium upsert (#2714)
# Description

closes #2713. Quick fix to upsert in `user_settings`

Co-authored-by: aminediro <aminediro@github.com>
2024-06-24 08:38:14 -07:00
Stan Girard
f546fd4d54
fix: Add logic to filter active subscriptions in check_if_is_premium_user function (#2673)
# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):

Co-authored-by: Stan Girard <stan@quivr.app>
2024-06-13 13:45:01 -07:00
Stan Girard
52d121b96f
feat: Add timezone conversion for premium user check (#2670)
This commit adds timezone conversion to the premium user check in the
`check_if_is_premium_user` function. It imports the `pytz` library and
retrieves the current time in the "Europe/Paris" timezone. This ensures
that the comparison of the current period end with the current time is
accurate, taking into account the correct timezone. The Paris time is
logged for debugging purposes.

Co-authored-by: Stan Girard <stan@quivr.app>

# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):

---------

Co-authored-by: Stan Girard <stan@quivr.app>
2024-06-13 01:54:26 -07:00
Stan Girard
ec58935d9b
feat: Add premium user check in celery task (#2668)
"This pull request adds a new celery task called
`check_if_is_premium_user` that checks if a user is a premium user based
on their subscription status. The task retrieves the list of active
subscriptions and the list of customers from the Supabase database. It
then matches the subscriptions with the customers and updates the user
settings with the corresponding premium features if a match is found. If
a user is not found or their subscription is expired, the user settings
are deleted. This task will run periodically to keep the user settings
up to date with the subscription status.

---------

Co-authored-by: Stan Girard <stan@quivr.app>
2024-06-13 01:14:12 -07:00
Stan Girard
6bd1a5b334
fix: name passed in sync authorize (#2665)
# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):

---------

Co-authored-by: Stan Girard <stan@quivr.app>
2024-06-12 05:20:10 -07:00
Stan Girard
83f06dc5d2
fix: Add error handling for syncing in tasks.py (#2663)
This pull request adds error handling for the syncing process in the
tasks.py file. Previously, if an error occurred during the syncing
process, the program would crash. With this change, any exceptions that
occur during syncing will be caught and logged, allowing the program to
continue running. This improves the stability and reliability of the
syncing functionality.

Co-authored-by: Stan Girard <stan@quivr.app>
2024-06-12 02:42:16 -07:00
Stan Girard
8e5af2c8c5
feat: Normalize file names in sync module (#2661)
This commit adds a new utility function `remove_special_characters` to
the `normalize.py` module in the `sync/utils` directory. The function
removes special characters from file names by normalizing the input
string and using regular expressions to remove non-alphanumeric
characters.

The function is then used in the `list_files.py` module in the
`sync/utils` directory to normalize the names of files retrieved from
Google Drive and Azure Drive. This ensures that the file names are free
of special characters, improving consistency and compatibility with
other parts of the system.

Co-authored-by: Stan Girard <stan@quivr.app>
2024-06-12 02:08:48 -07:00
Stan Girard
92ac7ae493
feat: Update Google authorization URL with prompt for consent (#2658)
The code changes in `google_sync_routes.py` update the authorization URL
for Google authentication. The `prompt` parameter is added with the
value "consent" to ensure that users are prompted to grant consent when
authorizing the application. This improves the user experience and
ensures that the necessary permissions are obtained.

# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):
2024-06-11 04:36:42 -07:00
Stan Girard
9d1b2911a5
Update license to include enterprise features (#2653)
This pull request updates the license to include enterprise features.
The license now specifies that certain folders or files within the
distribution may be subject to different license terms and conditions,
which will be specified in a separate LICENSE file or within the file
itself. Additionally, a new Quivr Enterprise license has been added,
which restricts the use of the software to production environments only
if the user has a valid Quivr Enterprise license for the correct number
of user seats. The license also clarifies that modifications and patches
to the software can only be used with a valid Quivr Enterprise license.
Finally, the license includes a disclaimer of warranties and limitations
of liability.
2024-06-10 09:42:14 -07:00
Stan Girard
d0cd634d7c
feat: Add force_sync option to SyncsActiveUpdateInput (#2652)
This commit adds a new optional boolean field, force_sync, to the
SyncsActiveUpdateInput class in the sync module. The force_sync field
allows users to manually trigger a sync operation, bypassing the regular
sync interval. By default, force_sync is set to False.

The force_sync field is used in the GoogleSyncUtils and AzureSyncUtils
classes to determine whether to perform a sync operation even if the
regular sync interval has not elapsed. If force_sync is True, the
last_synced timestamp is updated and the sync operation is executed.

This enhancement provides more flexibility and control over the
synchronization process, allowing users to manually trigger sync
operations when needed.
2024-06-10 07:17:09 -07:00
Stan Girard
76930363ee
feat: telemetry improved (#2651)
# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):
2024-06-10 06:28:14 -07:00
Stan Girard
11a2e888da
fix(google): auth is now in state (#2647)
# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):
2024-06-09 13:23:50 -07:00
Stan Girard
7467707da4
fix: files_metadata (#2645)
# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):
2024-06-09 10:01:36 -07:00
Antoine Dewez
3d3e6b7306
feat(frontend): sharepoint and gdrive integration (#2643)
# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):
2024-06-09 09:43:18 -07:00
Stan Girard
47c6e24bf1
fix: integrations (#2642)
This pull request adds support for recursive folder retrieval in the
`get_files_folder_user_sync` method. Previously, the method only
retrieved files from the specified folder, but now it can also retrieve
files from all subfolders recursively. This enhancement improves the
functionality and flexibility of the method, allowing for more
comprehensive file retrieval in sync operations.
2024-06-08 02:55:11 -07:00
Stan Girard
ca6341372d
chore: Set default value for "last_synced" column in "syncs_active" table to '2024-06-01 15:30:25+00' (#2638)
# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):
2024-06-06 10:11:10 -07:00
Stan Girard
31d3cce97f
fix: sync creation fixed (#2637)
This pull request includes updates to the `docker-compose.dev.yml` and
`Dockerfile.dev` files. The changes aim to improve performance and fix
bugs. The updates include:

- Removing unnecessary workers configuration in the
`docker-compose.dev.yml` file.

- Updating the base image in the `Dockerfile.dev` to use a slim version.

- Adjusting the schedule for a specific task in the code.

- Modifying the time interval for retrieving active syncs.

- Changing the loader class for processing PowerPoint files.

- Refactoring the file existence check logic.

- Adding debug logs for file existence check and file removal.

- Adjusting the file synchronization logic.

These changes are intended to enhance the performance and stability of
the application.
2024-06-06 10:06:21 -07:00
AmineDiro
675885c762
feat(upload): async improved (#2544)
# Description
Hey,

Here's a breakdown of what I've done:

- Reducing the number of opened fd and memory footprint: Previously, for
each uploaded file, we were opening a temporary NamedTemporaryFile to
write existing content read from Supabase. However, due to the
dependency on `langchain` loader classes, we couldn't use memory buffers
for the loaders. Now, with the changes made, we only open a single
temporary file for each `process_file_and_notify`, cutting down on
excessive file opening, read syscalls, and memory buffer usage. This
could cause stability issues when ingesting and processing large volumes
of documents. Unfortunately, there is still reopening of temporary files
in some code paths but this can be improved further in later work.
- Removing `UploadFile` class from File: The `UploadFile` ( a FastAPI
abstraction over a SpooledTemporaryFile for multipart upload) was
redundant in our `File` setup since we already downloaded the file from
remote storage and read it into memory + wrote the file into a temp
file. By removing this abstraction, we streamline our code and eliminate
unnecessary complexity.
- `async` function Adjustments: I've removed the async labeling from
functions where it wasn't truly asynchronous. For instance, calling
`filter_file` for processing files isn't genuinely async, ass async file
reading isn't actually asynchronous—it [uses a threadpool for reading
the
file](9f16bf5c25/starlette/datastructures.py (L458))
. Given that we're already leveraging `celery` for parallelism (one
worker per core), we need to ensure that reading and processing occur in
the same thread, or at least minimize thread spawning. Additionally,
since the rest of the code isn't inherently asynchronous, our bottleneck
lies in CPU operations rather than asynchronous processing.

These changes aim to improve performance and streamline our codebase. 
Let me know if you have any questions or suggestions for further
improvements!

## Checklist before requesting a review
- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my code
- [x] I have ideally added tests that prove my fix is effective or that
my feature works

---------

Signed-off-by: aminediro <aminediro@github.com>
Co-authored-by: aminediro <aminediro@github.com>
Co-authored-by: Stan Girard <girard.stanislas@gmail.com>
2024-06-04 06:29:27 -07:00
Stan Girard
41dec746a7
fix: Refactor conversational_qa_chain initialization in KnowledgeBrainQA (#2629)
# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):
2024-05-29 13:31:25 -07:00
Stan Girard
043bcd17ce
feat(sync): retrieve user email used for the connection (#2628)
# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):
2024-05-29 06:39:13 -07:00
Stan Girard
a89db0cd5a
feat(llamaparse): Update parsing instructions in common.py (#2627)
This pull request updates the parsing instructions in the `common.py`
file for the `llamaparse` feature. The previous parsing instruction for
transforming checkboxes into text has been modified to also extract
tables and transform them into key-value pairs. Additionally, the
instruction now allows for duplicate keys if needed. The example
instructions have also been updated to provide clearer examples for both
tables and checkboxes.
2024-05-29 02:25:15 -07:00
Chloé Daems
da9a3c1897
fix: modify thought prompt (#2626)
# Description

Change the prompt of the thoughts feature to have more steps.

## Checklist before requesting a review

Please delete options that are not relevant.

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):
2024-05-28 08:31:56 -07:00
Stan Girard
ff4ecb86e5
feat: Update QuivrRAG and run_evaluation.py files (#2615)
# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):

---------

Co-authored-by: chloedia <chloedaems0@gmail.com>
2024-05-28 07:47:31 -07:00
Stan Girard
877e8500bb
feat(rag): follow-up questions and thoughts with spanish fix (#2618)
This pull request refactors the generate_answer and generate_stream
functions in order to improve code readability and maintainability. It
also adds new fields to the cited_answer model and updates the system
message template.
2024-05-26 08:43:38 -07:00
Stan Girard
b1fbbc8b02
feat: ragas improved testing (#2611)
# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):
2024-05-23 01:36:10 -07:00
Stan Girard
c287fceb5b
feat: self-reflect brain (#2610)
This pull request adds the SelfBrain integration to the list of
available brain integrations.
2024-05-22 08:51:15 -07:00
Stan Girard
287cbb3347
Feat/celery import (#2608)
# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):
2024-05-21 14:36:51 -07:00
Stan Girard
5c28f16a09
Add additional modules to celery.autodiscover_tasks() (#2607)
# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):
2024-05-21 14:13:25 -07:00
Stan Girard
b06af57a1e
feat: add init to create packages (#2606)
# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):
2024-05-21 13:42:07 -07:00
Stan Girard
d41a0b4be4
Feat/auth-playground (#2605)
# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):
2024-05-21 13:20:35 -07:00
Stan Girard
848aed46ea
Revert "feat: Add Google Drive & Sharepoint sync in backend" (#2603)
Reverts QuivrHQ/quivr#2592
2024-05-21 08:37:08 -07:00
Stan Girard
8303aca9d9
feat: Add Google Drive & Sharepoint sync in backend (#2592)
# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):
2024-05-21 07:53:04 -07:00
Stan Girard
d84b8e79d6
fix: sender email address in resend_invitation_email.py (#2600)
This pull request fixes the sender email address in the
`resend_invitation_email` function in the `resend_invitation_email.py`
file. The `from` field has been changed to `sender` to ensure that the
correct email address is used when sending the invitation email.
2024-05-21 03:27:05 -07:00
Stan Girard
1b60f59ad7
feat: Update ChatLiteLLM model and add RLS optimization for notifications (#2591)
This pull request updates the ChatLiteLLM model to "gpt-4o" and adds a
row-level security (RLS) optimization for notifications. It also
includes a new SQL script to drop and create a policy for allowing user
access to all notifications.
2024-05-14 01:43:01 -07:00
Stan Girard
cd927ebdcf
feat: Add support for gpt-4o model (#2589)
This pull request adds support for the gpt-4o model to the existing
codebase. It includes changes to the BrainConfig, openAiFreeModels,
defineMaxTokens, model_compatible_with_function_calling, create_graph,
main, and process_assistant functions.
2024-05-13 14:07:41 -07:00
Stan Girard
3086891cb7
fix: Update import statements for OllamaEmbeddings (#2584)
This pull request fixes the import statements for OllamaEmbeddings in
multiple files. The import statements are updated to use the correct
package name "langchain_community.embeddings" instead of
"langchain.embeddings.ollama". This ensures that the code can be
compiled and executed without any import errors.
2024-05-11 11:50:13 -07:00
Stan Girard
2f3cbb67d2 Update api_key default value in WebSearchTool 2024-05-10 23:49:08 +02:00
Stan Girard
b60a31e561
docs: Add docstrings to integration brains (#2582)
This pull request adds comprehensive docstrings to the Brain classes
within the `backend/modules/brain/integrations` directory, enhancing
code documentation and readability. The changes include:

- **BigBrain (`Big/Brain.py`)**: Adds a class-level docstring explaining
the purpose and functionality of the BigBrain class, along with
method-level docstrings detailing the operations performed by each
method.
- **ClaudeBrain (`Claude/Brain.py`)**: Introduces a class-level
docstring that describes the ClaudeBrain class's integration with the
Claude model for conversational AI capabilities, and method-level
docstrings that clarify the purpose of each method.
- **GPT4Brain (`GPT4/Brain.py`)**: Updates include a detailed
class-level docstring outlining the GPT4Brain's integration with GPT-4
for real-time answers and tool support, along with method-level
docstrings explaining the functionality of each method.
- **NotionBrain (`Notion/Brain.py`)**: Adds a class-level docstring that
describes the NotionBrain's role in leveraging Notion data for
knowledge-based responses.
- **ProxyBrain (`Proxy/Brain.py`)**: Incorporates a class-level
docstring explaining the ProxyBrain's function as a dynamic language
model selector and method-level docstrings detailing the operations of
each method.

These additions ensure that each Brain class and its methods are
well-documented, providing clear insights into their purposes and
functionalities.


---

For more details, open the [Copilot Workspace
session](https://copilot-workspace.githubnext.com/QuivrHQ/quivr?shareId=b4e301ad-828e-4424-95ec-6e378d5d3849).
2024-05-10 14:46:55 -07:00
Stan Girard
bbcca2a8fe
docs: Update GPT4 documentation with available tools and use cases (#2580)
Updates the GPT-4 documentation and the `GPT4Brain` class to include
detailed information about the tools available for GPT4Brain and their
use cases.

- **Documentation (`docs/brains/gpt4.mdx`):**
- Adds a new section titled "Tools Available for GPT4Brain" that
describes specific tools: WebSearchTool, ImageGeneratorTool,
URLReaderTool, and EmailSenderTool.
- Provides use cases for each tool, demonstrating how they can be
utilized within GPT4Brain for various scenarios, such as generating
images, reading content from URLs, and sending emails.

- **Code (`backend/modules/brain/integrations/GPT4/Brain.py`):**
- Updates the class documentation to include information about the tools
available for GPT4Brain and outlines use cases for WebSearchTool,
ImageGeneratorTool, URLReaderTool, and EmailSenderTool.
- Maintains the existing functionality of the `GPT4Brain` class,
ensuring compatibility with the newly documented tools and use cases.


---

For more details, open the [Copilot Workspace
session](https://copilot-workspace.githubnext.com/QuivrHQ/quivr?shareId=2c2c1666-e5fb-4a06-bb08-ca967f4fe276).
2024-05-10 09:33:21 -07:00
Stan Girard
01c6e7b3bb
feat(email): Add email sender tool and update image generator tool (#2579)
This pull request adds a new email sender tool and updates the image
generator tool.
2024-05-10 07:56:51 -07:00
Stan Girard
105a2b8ecc
feat(tool): Add URLReaderTool (#2577)
This pull request adds the URLReaderTool to the list of tools in the
GPT4Brain class. The URLReaderTool allows for reading the content of a
URL.
2024-05-10 05:03:21 -07:00
Stan Girard
a4e2104cad
feat(brave-search): Update GPT4Brain tools and add WebSearchTool (#2576)
# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):
2024-05-10 03:22:15 -07:00
Stan Girard
03ebbe70fe
chore: tools (#2575)
# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):
2024-05-10 02:42:49 -07:00
Stan Girard
9b4142d0ba
fix: NEXT_PUBLIC_AUTH_MODES in docker-compose.yml (#2572)
This pull request fixes the value of NEXT_PUBLIC_AUTH_MODES in the
docker-compose.yml file. The previous value was incorrect and has been
updated to the correct value.
2024-05-10 01:25:29 -07:00
Stan Girard
4e5b0c0373
feat(gpt4): image generation (#2569)
This pull request adds a new feature to generate images using the OpenAI
DALL-E model. The `ImageGeneratorTool` class is implemented to handle
the image generation functionality.
2024-05-09 10:00:51 -07:00
imgbot[bot]
854cf9ef7c
[ImgBot] Optimize images (#2568)
## Beep boop. Your images are optimized!

Your image file size has been reduced by **22%** 🎉

<details>
<summary>
Details
</summary>

| File | Before | After | Percent reduction |
|:--|:--|:--|:--|
| /backend/modules/assistant/ito/utils/logo.png | 65.29kb | 23.44kb |
64.09% |
| /docs/images/brain-name-description.png | 183.55kb | 117.44kb | 36.02%
|
| /docs/images/upload-docs-urls.png | 195.53kb | 125.67kb | 35.73% |
| /docs/images/supabase-table.png | 303.63kb | 200.92kb | 33.83% |
| /docs/images/2024-04-22-21-49-27.png | 103.47kb | 69.76kb | 32.58% |
| /docs/images/vercel-source.png | 419.37kb | 303.08kb | 27.73% |
| /docs/images/create-brain-doc.png | 258.97kb | 188.74kb | 27.12% |
| /frontend/public/state-of-openai.png | 2,226.61kb | 1,631.89kb |
26.71% |
| /docs/images/supabase-user-settings-models.png | 68.30kb | 51.37kb |
24.79% |
| /docs/images/supabase-user-settings.png | 234.70kb | 182.26kb | 22.34%
|
| /logo.png | 162.43kb | 138.77kb | 14.56% |
| /frontend/public/default_brain_image.png | 5.14kb | 4.39kb | 14.47% |
| /frontend/public/discord.svg | 1.99kb | 1.84kb | 7.45% |
| /frontend/public/Web capture_22-10-2023_19416_www.quivr.app.jpeg |
108.15kb | 100.97kb | 6.64% |
| /frontend/public/Web capture_22-10-2023_19154_www.quivr.app.jpeg |
106.38kb | 99.42kb | 6.54% |
| /frontend/public/twitter.svg | 0.71kb | 0.67kb | 5.87% |
| /docs/images/undraw_docusaurus_mountain.svg | 30.75kb | 29.20kb |
5.04% |
| /docs/images/undraw_docusaurus_react.svg | 35.16kb | 33.60kb | 4.43% |
| /frontend/public/logo-white.svg | 39.07kb | 37.44kb | 4.16% |
| /frontend/public/logo-accent.svg | 39.07kb | 37.44kb | 4.15% |
| /frontend/public/logo-primary.svg | 39.07kb | 37.44kb | 4.15% |
| /docs/images/logo.png | 277.32kb | 267.54kb | 3.53% |
| /frontend/public/logo.png | 277.35kb | 267.56kb | 3.53% |
| /docs/images/undraw_docusaurus_tree.svg | 11.61kb | 11.42kb | 1.62% |
| /frontend/public/vercel.svg | 0.61kb | 0.61kb | 0.16% |
| /frontend/public/Homepage/smartphone-demo.png | 461.57kb | 461.44kb |
0.03% |
| | | | |
| **Total :** | **5,655.79kb** | **4,424.34kb** | **21.77%** |
</details>

---

[📝 docs](https://imgbot.net/docs) | [:octocat:
repo](https://github.com/imgbot/ImgBot) | [🙋🏾
issues](https://github.com/imgbot/ImgBot/issues) | [🏪
marketplace](https://github.com/marketplace/imgbot)

<i>~Imgbot - Part of [Optimole](https://optimole.com/) family</i>

Signed-off-by: ImgBotApp <ImgBotHelp@gmail.com>
Co-authored-by: ImgBotApp <ImgBotHelp@gmail.com>
2024-05-09 07:16:31 -07:00
Stan Girard
f5cfa2f6fa
feat(gpt4): Add search functionality (#2566)
This pull request adds search functionality to the application The
search functionality allows users to search the internet for
information.
2024-05-09 07:01:33 -07:00
Stan Girard
c1c39f1f5c
ci(ecr): added build to public ecr (#2564)
This pull request adds a GitHub Actions workflow for building and
pushing Docker images to Amazon ECR. The workflow is triggered on every
push to the main branch and includes steps for configuring AWS
credentials, logging in to Amazon ECR, GitHub Container Registry, and
Docker Hub, setting up Docker Buildx, creating a Docker cache storage
backend, and building, tagging, and pushing the Docker image to Amazon
ECR.
2024-05-08 07:42:31 -07:00
Stan Girard
e33d497598
feat(crawler): Add Playwright for web crawling (#2562)
This pull request adds the Playwright library for web crawling. It
includes the necessary dependencies and updates the code to use
Playwright for crawling websites.
2024-05-08 07:20:35 -07:00
Stan Girard
cd73412e8f
Revert "feat(celery): moved assistant summary to celery" (#2558)
Reverts QuivrHQ/quivr#2557
2024-05-07 09:20:42 -07:00
Stan Girard
55834365b2
feat(celery): moved assistant summary to celery (#2557)
This pull request moves the assistant summary functionality to the
celery module for better organization and separation of concerns.
2024-05-07 09:12:31 -07:00
Chloé Daems
748733df2d
fix: utf8 encoding (#2555)
# Description

Delete the replacement of non ASCII characters into spaces

## Checklist before requesting a review

Please delete options that are not relevant.

- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [x] New and existing unit tests pass locally with my changes
- [x] Any dependent changes have been merged

## Screenshots (if appropriate):
2024-05-07 06:28:40 -07:00
Antoine Dewez
da3880a685
feat(frontend): add notifications for document uploads (#2549)
# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):
2024-05-06 08:57:02 -07:00
Stan Girard
6b229a8fc3
feat(notion): update doc (#2542)
# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):
2024-05-04 11:16:24 -07:00
Stan Girard
0dd1d12e6a
Add config parameter to conversational_qa_chain (#2540)
This pull request adds a new config parameter to the
`conversational_qa_chain` function. The config parameter allows for
passing metadata, specifically the conversation ID, to the function.
This change ensures that the conversation ID is included in the metadata
when invoking the `conversational_qa_chain` function.
2024-05-04 11:05:29 -07:00
Stan Girard
21e239c208
feat(brain): Add ProxyBrain integration (#2536)
This pull request adds the ProxyBrain integration to the project. The
ProxyBrain class is responsible for handling conversational QA and
generating answers based on the provided chat history and question.
2024-05-03 06:53:51 -07:00
Stan Girard
05cb0f71d0
feat(llama-parse): improve prompt (#2535)
# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):
2024-05-03 06:28:07 -07:00
Damien Mourot
6bf78d67bb
feat(backend): Add a pre_pring on Connection polling to handle disconnection (#2534)
# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):
2024-05-03 01:42:17 -07:00
Antoine Dewez
8d54187713
feat(user): Delete User Data from frontend (#2476)
# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):

---------

Co-authored-by: Stan Girard <girard.stanislas@gmail.com>
2024-05-02 02:31:58 -07:00
Stan Girard
76f21bc2f5
fix: Update parsing instruction in common.py (#2531)
This pull request fixes the parsing instruction in the common.py file.
The result_type has been corrected to "markdown" and the
parsing_instruction has been updated to handle checkboxes, tables, and
other elements that are hard to parse in a meaningful way.
2024-05-02 01:12:24 -07:00
Stan Girard
62bfc3c8d9
fix: Refactor chat_service.py and remove unused code (#2530)
# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):
2024-05-01 15:26:14 -07:00
Stan Girard
94d100eb11 Update supabase token setting in ci-migration.sh 2024-05-02 00:04:01 +02:00
Stan Girard
4d730448af
chore: packages (#2527)
Update python packages
2024-05-01 11:20:15 -07:00
Stan Girard
e1ad3dfb2a
feat(notifications): implemented notifications with RLS and realtime (#2525)
This pull request adds the implementation of the notifications feature,
including the ability to create, update, and delete notifications.
2024-05-01 11:11:12 -07:00
Stan Girard
8b0c55de5c
feat(llamaparse): Add Llama Parse integration for complex document parsing (#2517)
This pull request adds Llama Parse integration for complex document
parsing in Quivr. Llama Parse is a tool from Llama Index that allows you
to read complex documents in Quivr. It provides an API key that needs to
be added to the `.env` file as `LLAMA_CLOUD_API_KEY`. Once configured,
you can use the Llama Parse tool to read `pdf`, `docx`, and `doc` files
in Quivr.
2024-04-29 09:31:21 -07:00
Stan Girard
5717fdc1d5 Update .env.example and backend/models/settings.py 2024-04-29 10:36:10 +02:00
Damien Mourot
fb3aae27f1
feat(backend): use SQLAlchemy instead od supabase API (#2516)
# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):
2024-04-29 01:27:50 -07:00
Stan Girard
5de8166e46
feat(supabase): Add logging statements and refactor Supabase client creation (#2514)
# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):
2024-04-28 07:23:14 -07:00
Stan Girard
30b9e057ff
feat(db): Add Supabase client and database instances caching (#2513)
This pull request adds caching for the Supabase client and database
instances in order to improve performance and reduce unnecessary API
calls. The `get_supabase_client()` and `get_supabase_db()` functions now
check if the instances have already been created and return the cached
instances if available. This avoids creating new instances for every
function call, resulting in faster execution times.
2024-04-28 06:46:16 -07:00
Stan Girard
bdb115ad0a
feat(profiler): Add pyinstrument package and update Makefile and backend code (#2512)
This pull request adds the pyinstrument package and updates the Makefile
and backend code. The pyinstrument package is used for profiling and the
Makefile and backend code have been modified to support profiling.
2024-04-28 06:10:21 -07:00
Stan Girard
eb360830e0 Update Dockerfile dependencies 2024-04-28 14:34:44 +02:00
Stan Girard
d2086a97d3 Refactor logging configuration and remove unused imports 2024-04-28 13:35:07 +02:00
Stan Girard
4050313078 Remove debug flag from supabase db push command 2024-04-27 15:35:24 +02:00
Stan Girard
b12fc4f4bf Remove supabase initialization from ci-migration.sh 2024-04-27 15:34:36 +02:00
Stan Girard
b3e8c3d711 Add Supabase schema, migrations, and .gitignore file 2024-04-27 15:31:43 +02:00
Stan Girard
74c0e2d72c Add Supabase to Dockerfile 2024-04-27 15:20:39 +02:00
Stan Girard
e28ef7d709 Add debug flag to supabase db push command 2024-04-27 15:09:55 +02:00
Stan Girard
5baf2f02e5 Add supabase db password to ci-migration script 2024-04-27 15:04:19 +02:00
Stan Girard
9bfa9f63c5 Update ci-migration.sh script with environment variable setup and supabase commands 2024-04-27 15:00:35 +02:00
Stan Girard
491b1f85bf Add supabase initialization to ci-migration.sh 2024-04-27 14:56:45 +02:00
Stan Girard
5c0e5db0d9
Feat/migration ci 2 (#2509)
# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):
2024-04-27 05:49:15 -07:00
Stan Girard
cba3ac3729
Add ci-migration script (#2508)
This pull request adds a ci-migration script that sets the project ID
from an environment variable and runs the supabase link and supabase db
push commands. This script will be used for continuous integration
purposes.
2024-04-27 05:43:12 -07:00
Stan Girard
785066f9cb
fix(metadata): Removed citation from metadata (#2507)
This pull request removes the citation metadata from the generate_answer
and generate_stream functions. The citation metadata was previously
being added to the streamed_chat_history and metadata dictionaries, but
it is no longer necessary. This change improves the efficiency and
clarity of the code.
2024-04-27 05:19:13 -07:00
Stan Girard
2be6aac02a
feat(embedding): keeping citations (#2506)
This pull request updates the chunk size and overlap parameters in the
File class to improve performance. It also increases the top_n value in
the compressor for both the CohereRerank and FlashrankRerank models.
Additionally, it ensures that the page content is encoded in UTF-8
before processing.
2024-04-27 05:18:51 -07:00
Antoine Dewez
e7ce2fa54b
feat(frontend): show remaining credits (#2495)
# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):
2024-04-27 04:44:48 -07:00
Stan Girard
e7b5699818
feat(docker): Update Dockerfile to install Supabase CLI (#2505)
This pull request updates the Dockerfile to include the installation of
the Supabase CLI. The Supabase CLI is required for interacting with the
Supabase backend. This update ensures that the Supabase CLI is installed
in the Docker image, allowing developers to easily use the Supabase CLI
within their Docker environment.
2024-04-27 04:42:24 -07:00
Stan Girard
b7ff2e77af
feat(citations): system added (#2498)
# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):
2024-04-26 08:11:01 -07:00
Damien Mourot
85c4835c59
fix(backend): compute history only if needed and put some cache to remove some call… (#2497)
… to the DB API

# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):
2024-04-25 15:18:12 -07:00
Stan Girard
2a25f442e5
feat: Add telemetry ping task to celery worker and main.py (#2494)
This pull request adds a new telemetry ping task to the celery worker
and main.py files. The ping task sends a ping message to the telemetry
system.
2024-04-25 07:22:13 -07:00
Stan Girard
0239d5d19c feat(porter): Add Porter.yaml files for backend and frontend services 2024-04-25 10:51:10 +02:00
Stan Girard
47491bc967
feat: Update chunk overlap to 200 (#2488)
This pull request updates the chunk overlap value in the File class from
300 to 200. This change reduces the overlap between chunks, improving
the performance of chunking operations.
2024-04-24 14:15:31 -07:00
Stan Girard
5c5e022990
feat(history): max tokens in the history provided (#2487)
# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):
2024-04-24 14:09:55 -07:00
Stan Girard
f656dbcb42
feat(reranker): Add flashrank and contextual compression retriever (#2480)
This pull request adds the flashrank and contextual compression
retriever to the codebase. The flashrank reranker model is used for
compression, and the contextual compression retriever combines the base
compressor and base retriever to improve document retrieval.
2024-04-24 10:44:31 -07:00
Stan Girard
0fd99fe5b2
feat(docs): update to new (#2465)
This pull request updates the API documentation to include new sections
on configuring Quivr and contacting the Quivr team. It also removes the
"API Brains" section from the documentation.
2024-04-22 08:34:11 -07:00
Stan Girard
fbddb70f81
fix(sources): Remove duplicate sources and add metadata to model response (#2462)
This pull request fixes the issue of duplicate sources in the model
response and adds metadata to the response. It removes duplicate sources
with the same name and creates a list of unique sources. Additionally,
it includes the generated URLs and sources in the metadata of the model
response.
2024-04-21 14:50:44 -07:00
Stan Girard
1f48043bb9
fix(gpt4): Refactor GPT4Brain and KnowledgeBrainQA classes to add non-streaming-saving-answer (#2460)
This pull request refactors the GPT4Brain and KnowledgeBrainQA classes
to add the functionality of saving non-streaming answers. It includes
changes to the `generate_answer` method and the addition of the
`save_non_streaming_answer` method. This enhancement improves the
overall functionality and performance of the code.
2024-04-21 04:09:52 -07:00
Stan Girard
e426ecd178
feat(gpt4): Add chat service and generate answer method to GPT4Brain class (#2459)
# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):
2024-04-21 03:42:03 -07:00
Thoonsen Maxime
5c965b6d22
refactor: reorg the files #2 (#2457)
# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):
2024-04-20 02:28:20 -07:00
Thoonsen Maxime
43a20ebefe
refactor: Refacto code #1 (#2458)
# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):
2024-04-20 02:22:05 -07:00
Stan Girard
ec37400691
Revert "refactor: reorg files in backend" (#2456)
Reverts QuivrHQ/quivr#2449
2024-04-20 01:42:35 -07:00
Thoonsen Maxime
dc6bd53519
refactor: reorg files in backend (#2449)
# Description

Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.

## Checklist before requesting a review

Please delete options that are not relevant.

- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged

## Screenshots (if appropriate):


<!--
ELLIPSIS_HIDDEN
-->
----

| 🚀 This description was created by
[Ellipsis](https://www.ellipsis.dev) for commit
997576d577 |
|--------|

### Summary:
This PR involves a significant refactoring of the codebase, with file
and class relocations and renames, and updated import paths, without
introducing new functionality.

**Key points**:
- Significant refactoring of the codebase for improved organization and
clarity.
- File and class relocations and renames.
- Updated import paths to reflect new locations and names.
- No new functionality introduced.


----
Generated with ❤️ by [ellipsis.dev](https://www.ellipsis.dev)

<!--
ELLIPSIS_HIDDEN
-->
2024-04-19 22:25:03 -10:00