Pour contribuer au projet, merci de suivre les instructions suivantes.
⚠️ Attention : Vous devez disposer d'une API de modèle de language et d'embeddings pour lancer l'API en local.
Merci de respecter la convention suivante pour vos commits :
[doc|feat|fix](*) commit object (in english)
# example
feat(collections): collection name retriever
*Le thème est optionnel et doit correspondre à un thématique de la code base (deploy, collections, models, ...).
- Dans un environnement virtuel Python, installez les packages Python présents dans le fichier pyproject.toml
pip install ".[ui,app,dev,test]"
pre-commit install
Pour plus d'information sur le déploiement des services, veuillez consulter la documentation dédiée.
-
Après avoir créé un fichier config.yml, lancez l'API en local
uvicorn app.main:app --port 8080 --log-level debug --reload
-
Lancez l'API en local (voir la sectionLancement de l'API)
-
Lancez l'UI en local
python -m streamlit run ui/chat.py --server.port 8501 --browser.gatherUsageStats false --theme.base light
Merci, avant chaque pull request, de vérifier le bon déploiement de votre API en exécutant des tests unitaires.
-
Lancez l'API en local avec la commande suivante:
uvicorn app.main:app --port 8080 --log-level debug --reload
-
Exécutez les tests unitaires à la racine du projet
PYTHONPATH=. pytest --config-file=pyproject.toml --base-url http://localhost:8080/v1 --api-key-user API_KEY_USER --api-key-admin API_KEY_ADMIN --log-cli-level=INFO
Il est important de tenir à jour les notebooks de docs/tutorials, afin de montrer des rapides exemples d'utilisation de l'API.
Pour lancer les notebooks en local:
jupyter notebook docs/tutorials/
Le linter du projet est Ruff. Les règles de formatage spécifiques au projet sont dans le fichier pyproject.toml.
-
Installez les hooks de pre-commit
pre-commit install
Ruff s'exécutera automatiquement à chaque commit.
-
Installez l'extension Ruff (charliermarsh.ruff) dans VSCode
-
Configurez le linter Ruff dans VSCode pour utiliser le fichier pyproject.toml
À l'aide de la palette de commandes de VSCode (⇧⌘P), recherchez et sélectionnez Preferences: Open User Settings (JSON).
Dans le fichier JSON qui s'ouvre, ajoutez à la fin du fichier les lignes suivantes :
"ruff.configuration": "<path to pyproject.toml>", "ruff.format.preview": true, "ruff.lineLength": 150, "ruff.codeAction.fixViolation": { "enable": false }, "ruff.nativeServer": "on"
⚠️ Attention : Assurez-vous que le fichier pyproject.toml est bien spécifié dans la configuration. -
Pour exécuter le linter, utilisez la palette de commandes de VSCode (⇧⌘P) depuis le fichier sur lequel vous voulez l'exécuter, puis recherchez et sélectionnez Ruff: Format document et Ruff: Format imports.