Commit Graph

35 Commits

Author SHA1 Message Date
Jacopo Chevallard
8cfdf53fe7
feat: using langgraph in our RAG pipeline (#3130)
# Description

Using LangGraph instead of LangChain LCEL to build and run the RAG
pipeline, as LangGraph enables greater flexibility and an easier
maintainability of complex (agentic) pipelines

Completes CORE-175

## 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
- [x] 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):

---------

Co-authored-by: Stan Girard <girard.stanislas@gmail.com>
2024-09-03 06:23:23 -07:00
Stan Girard
380cf82706
feat: quivr core 0.1 (#2970)
# Description


# Testing backend 

## Docker setup
1. Copy `.env.example` to `.env`. Some env variables were added :
EMBEDDING_DIM
2. Apply supabase migratrions : 
```sh
supabase stop
supabase db reset
supabase start
```
3. Start backend containers
```
make dev
```
## Local setup 
You can also run backend without docker.
1. Install [`rye`](https://rye.astral.sh/guide/installation/). Choose
the managed python version and set the version to 3.11
2. Run the following: 
```
cd quivr/backend
rye sync
```
3. Source `.venv` virtual env : `source .venv/bin/activate`
4. Run the backend, make sure you are running redis and supabase
API: 
```
LOG_LEVEL=debug uvicorn quivr_api.main:app --log-level debug --reload --host 0.0.0.0 --port 5050 --workers 1
```
Worker: 
```
LOG_LEVEL=debug celery -A quivr_worker.celery_worker worker -l info -E --concurrency 1
```
Notifier: 
```
LOG_LEVEL=debug python worker/quivr_worker/celery_monitor.py
```

---------

Co-authored-by: chloedia <chloedaems0@gmail.com>
Co-authored-by: aminediro <aminedirhoussi1@gmail.com>
Co-authored-by: Antoine Dewez <44063631+Zewed@users.noreply.github.com>
Co-authored-by: Chloé Daems <73901882+chloedia@users.noreply.github.com>
Co-authored-by: Zewed <dewez.antoine2@gmail.com>
2024-09-02 10:20:53 +02:00
AmineDiro
a90a01ccf2
feat: quivr api send notification (#2865)
# Description

- Quivr notification service. listens to celery events and updates
knowledge status.
- Process file notification will wait for retried tasks
2024-07-15 06:37:42 -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
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
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
Stan Girard
6ea4a4513b
feat: Add extra_hosts configuration to docker-compose.dev.yml (#2635)
# 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-05 13:51:18 -07:00
Stan Girard
309666f3fd
feat: Update Docker build commands and dependencies (#2441)
This pull request updates the Docker build commands and dependencies.
2024-04-17 14:37:32 -07:00
Stan Girard
b62297341f
feat(assistants): Add PDF generation functionality and nice emails (#2436)
This pull request adds PDF generation functionality and improves the
formatting of emails. It includes a new module for generating PDFs using
the fpdf2 library and updates the email templates to use markdown
formatting for better readability.

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

| <a href="https://ellipsis.dev" target="_blank"><img
src="https://avatars.githubusercontent.com/u/80834858?s=400&u=31e596315b0d8f7465b3ee670f25cea677299c96&v=4"
alt="Ellipsis" width="30px" height="30px"/></a> | 🚀 This PR
description was created by [Ellipsis](https://www.ellipsis.dev) for
commit ccecff77a5. |
|--------|--------|

### Summary:
This PR introduces PDF generation functionality, improves email
formatting, sanitizes filenames, updates various files and dependencies,
and updates `docker-compose.dev.yml`.

**Key points**:
- Added PDF generation functionality using the `fpdf2` library
- Improved email formatting
- Sanitized filenames using the `unidecode` library
- Updated `backend/modules/assistant/ito/ito.py` to generate PDFs and
sanitize filenames
- Added `pdf_generator.py` in `backend/modules/assistant/ito/utils/` for
PDF generation
- Updated `Pipfile` and `Pipfile.lock` in
`backend/modules/assistant/ito/utils/` to include `unidecode`
- Updated `requirements.txt` with new dependencies
- Updated `docker-compose.dev.yml`


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

<!--
ELLIPSIS_HIDDEN
-->
2024-04-17 06:00:31 -07:00
Stan Girard
68db4e0361
fix: logger level and telemetry function calls (#2409)
# 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-06 18:35:57 -07:00
Stan Girard
19c11944bc
feat: implement elasticache (#2234)
# 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-02-20 19:52:14 -08:00
Stan Girard
08e015af6c
feat(lcel): migrated to lcel and pydantic (#2185)
# 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: Antoine Dewez <44063631+Zewed@users.noreply.github.com>
2024-02-14 14:01:35 -08:00
Stan Girard
03c49693b7
feat(chunks): now chunk size is saved in database dynamically and not just 500 (#2164)
# 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-02-06 23:23:37 -08:00
Stan Girard
4d91d1cadc
feat(integrations): integration with Notion in the backend (#2123)
moved to brains

# 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: Antoine Dewez <44063631+Zewed@users.noreply.github.com>
2024-02-05 21:02:46 -08:00
Stan Girard
15ba223f9c chore(docker): increased number of replicas 2024-01-20 13:51:03 -08:00
renovate[bot]
fe373fdd10
chore(deps): pin dependencies (#1975)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [actions/checkout](https://togithub.com/actions/checkout) | action |
pinDigest | -> `b4ffde6` |
| [actions/setup-node](https://togithub.com/actions/setup-node) | action
| pinDigest | -> `b39b52d` |
| [actions/setup-python](https://togithub.com/actions/setup-python) |
action | pinDigest | -> `65d7f2d` |
|
[aws-actions/amazon-ecr-login](https://togithub.com/aws-actions/amazon-ecr-login)
| action | pinDigest | -> `2fc7ace` |
|
[aws-actions/amazon-ecs-deploy-task-definition](https://togithub.com/aws-actions/amazon-ecs-deploy-task-definition)
| action | pinDigest | -> `df96430` |
|
[aws-actions/amazon-ecs-render-task-definition](https://togithub.com/aws-actions/amazon-ecs-render-task-definition)
| action | pinDigest | -> `4225e0b` |
|
[aws-actions/configure-aws-credentials](https://togithub.com/aws-actions/configure-aws-credentials)
| action | pinDigest | -> `5fd3084` |
| darthsim/imgproxy |  | pinDigest |  -> `0facd35` |
|
[docker/build-push-action](https://togithub.com/docker/build-push-action)
| action | pinDigest | -> `0a97817` |
|
[docker/build-push-action](https://togithub.com/docker/build-push-action)
| action | pinDigest | -> `4a13e50` |
| [docker/login-action](https://togithub.com/docker/login-action) |
action | pinDigest | -> `465a078` |
| [docker/login-action](https://togithub.com/docker/login-action) |
action | pinDigest | -> `343f7c4` |
|
[docker/setup-buildx-action](https://togithub.com/docker/setup-buildx-action)
| action | pinDigest | -> `885d146` |
|
[docker/setup-buildx-action](https://togithub.com/docker/setup-buildx-action)
| action | pinDigest | -> `f95db51` |
|
[docker/setup-qemu-action](https://togithub.com/docker/setup-qemu-action)
| action | pinDigest | -> `6882732` |
|
[google-github-actions/release-please-action](https://togithub.com/google-github-actions/release-please-action)
| action | pinDigest | -> `db8f2c6` |
| kong |  | pinDigest |  -> `1b53405` |
| [pavelzw/pytest-action](https://togithub.com/pavelzw/pytest-action) |
action | pinDigest | -> `510c5e9` |
| postgrest/postgrest |  | pinDigest |  -> `23b2dab` |
| python | final | pinDigest |  -> `0c1fbb2` |
| redis |  | pinDigest |  -> `a7cee7c` |
| supabase/edge-runtime |  | pinDigest |  -> `4e02aac` |
| supabase/gotrue |  | pinDigest |  -> `b503f1f` |
| supabase/logflare |  | pinDigest |  -> `e693c78` |
| supabase/postgres |  | pinDigest |  -> `fb8387f` |
| supabase/postgres-meta |  | pinDigest |  -> `31a107d` |
| supabase/realtime |  | pinDigest |  -> `634a59e` |
| supabase/storage-api |  | pinDigest |  -> `2cd146f` |
| supabase/studio |  | pinDigest |  -> `393669f` |
| timberio/vector |  | pinDigest |  -> `4bc04ac` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/StanGirard/quivr).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-04 14:00:18 +01:00
Stan Girard
10d0ec0448 feat: 🎸 supabase
added usage of cli
2024-01-03 21:53:37 +01:00
Stan Girard
475f8ddf42 fix(docker-compose): mixed up prod and dev 2023-12-05 00:26:06 +01:00
Stan Girard
b228bc0e80 fix(docker): fixed .dev missing 2023-12-05 00:24:58 +01:00
Stan Girard
c82a8cc8b1
fix(url): crawling fixed (#1785)
# 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):
2023-12-02 18:08:22 +01:00
Stan Girard
10617727ab feat(dev): added devmode easy 2023-12-02 17:08:21 +01:00
Stan Girard
d955e31f50
feat: 🎸 marketplace (#1657)
added explore button and removed unused feature openai key

# 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):
2023-11-19 18:46:12 +01:00
Stan Girard
744eea6d43
feat: 🎸 docker reduced size by 2 (#1653)
reduced size by 2

# 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):
2023-11-18 19:23:56 +01:00
Stan Girard
46af5b7a1b fix(docker): fixed 2023-11-14 10:03:32 +01:00
Charles Brandt
b5cf350485
Use 'unless-stopped' instead of 'always' for development (#1586)
# Description

When developing locally, I am reluctant to start containers with the
`restart: always` option. I find they stick around longer than I want
them to. In my opinion, `restart: unless-stopped` is a nice middle
ground.

## 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
2023-11-04 21:30:31 +01:00
Matthieu Jacq
fa92243a18
feat: ⚙️🐞 configure debugger for the backend (#1345) 2023-10-09 15:23:13 +02:00
Stan Girard
223d3d9102
feat(frontend): responsiveness (#1174)
* feat: 🎸 responsiveness chat

* feat: 🎸 responsive

added responsive menu

* feat: 🎸 responsive

brain management

* fix: 🐛 docker

prod
2023-09-15 01:09:26 +02:00
Stan Girard
f46ad68aa4 feat(broker): fixed url 2023-09-14 17:23:30 +02:00
Zineb El Bachiri
2b74ebc1f0
fix(Analytics): no tags tracking for upload & crawl (#1024)
* 🚚 create useCrawlApi to use in useCrawler hook

* 🚑 fix tracking in Crawl

* 🧑‍💻 add hot reloading within docker containers

* 🚑 fix tracking for upload

* 🚚 create useUploadApi for fileUpload request

* 📈 add june tag for Language change

* 🩹 revert dependencies
2023-08-23 10:03:10 +02:00
Stan Girard
d0370ab499
feat(refacto): changed a bit of things to make better dx (#984) 2023-08-19 13:32:16 +02:00
Stan Girard
7281fd905a
feat(microservices): split into 4 quivr to better handle long services (#972)
* feat(verbose): removed

* feat(microservices): split quivr into micro services

* test(main): fixed
2023-08-18 10:18:29 +02:00
Matt
2f5088547a test: fix ci 2023-07-18 15:34:08 +01:00
Matt
e61f437ce8
Feat/backend core (#656) 2023-07-17 07:57:27 +01:00
Stan Girard
a3ca7ecb37
Back/refacto files (#240)
* feat(docker): added docker for prod

* feat(refacto): moved to modules
2023-06-03 23:12:42 +02:00