You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -10,77 +10,52 @@ Pour contribuer au projet, merci de suivre les instructions suivantes.
10
10
11
11
Pour plus d'information sur le déploiement des services, veuillez consulter la [documentation dédiée](./docs/deployment.md).
12
12
13
+
> [!NOTE] Le fichier de configuration pour exécuter les tests est [config.test.yml](./.github/config.test.yml). Vous pouvez vous en inspirer pour configurer votre propre fichier de configuration.
14
+
13
15
2. Lancer le docker compose de développement avec le mode watch :
14
16
15
17
```bash
16
18
docker compose --file compose.dev.yml up --watch
17
19
```
18
20
19
-
L'API et l'UI seront disponibles respectivement sur les ports 8000 et 8501.
21
+
> [!NOTE] L'API et le playground seront disponibles respectivement sur les ports 8000 et 8501. Pour vous connecter au playground la première fois utilisez le login *master* et le mot de passe *changeme* (définit dans le fichier de configuration).
20
22
21
23
# Développement hors environnement Docker
22
24
23
-
## Les bases de de données
24
-
25
-
Vous pouvez lancer les services de base de données nécéssaires avec docker compose :
26
-
27
-
```bash
28
-
docker compose up --detach
29
-
```
30
-
31
-
## API (FastAPI)
32
-
33
-
1. Dans un environnement virtuel Python, installez les packages Python présents dans le fichier *[pyproject.toml](./pyproject.toml)*
34
-
35
-
```bash
36
-
pip install ".[app,dev,test]"
37
-
pre-commit install
38
-
```
25
+
1. Créez un fichier *config.yml* à partir du fichier d'exemple de configuration *[config.example.yml](./config.example.yml)* avec vos modèles.
39
26
40
-
2. Créez un fichier *config.yml* à partir du fichier d'exemple de configuration *[config.example.yml](./config.example.yml)* en configurant votre base de données SQL et vos modèles.
27
+
Pour plus d'information sur le déploiement des services, veuillez consulter la [documentation dédiée](./docs/deployment.md).
41
28
42
-
Pour plus d'information sur la configuration, veuillez consulter la [documentation dédiée](./docs/deployment.md).
29
+
> [!NOTE] Le fichier de configuration pour exécuter les tests est [config.test.yml](./.github/config.test.yml). V
43
30
44
-
3. Créez les tables de la base de données avec Alembic
31
+
2. Instanciez les dépendances
45
32
46
33
```bash
47
-
alembic -c app/alembic.ini upgrade head
48
-
```
34
+
docker compose up --detach # run the databases
49
35
50
-
4. Lancez l'API en local
36
+
pip install ".[app,ui,dev,test]" # install the dependencies
alembic -c app/alembic.ini upgrade head # create the API tables
39
+
alembic -c ui/alembic.ini upgrade head # create the Playground tables
54
40
```
55
41
56
-
## UI (Streamlit)
57
-
58
-
1. Dans un environnement virtuel Python, installez les packages Python présents dans le fichier *[pyproject.toml](./pyproject.toml)*
59
-
60
-
```bash
61
-
pip install ".[ui,dev,test]"
62
-
pre-commit install
63
-
```
64
-
65
-
2. Créez un fichier *config.yml* à partir du fichier d'exemple de configuration *[config.example.yml](./config.example.yml)* en configurant votre base de données SQL.
66
-
67
-
Pour plus d'information sur la configuration, veuillez consulter la [documentation dédiée](./docs/deployment.md).
68
-
69
-
3. Créez les tables de la base de données avec Alembic
42
+
3. Lancez l'API
70
43
71
44
```bash
72
-
alembic -c ui/alembic.ini upgrade head
45
+
uvicorn app.main:app --port 8000 --log-level debug --reload # run the API
73
46
```
74
47
75
-
4. Lancez l'UI en local
48
+
4. Lancez le playground
49
+
50
+
Dans un autre terminal, lancez le playground avec la commande suivante :
76
51
77
52
```bash
78
-
streamlit run ui/chat.py --server.port 8501 --browser.gatherUsageStats false --theme.base light
53
+
streamlit run ui/chat.py --server.port 8501 --browser.gatherUsageStats false --theme.base light# run the playground
79
54
```
80
55
81
-
Pour vous connecter à l'UI la première fois utilisez le login *master* et le mot de passe *changeme* (correspondant à la clé master dans le fichier de configuration).
56
+
Pour vous connecter au playground la première fois utilisez le login *master* et le mot de passe *changeme* (définit dans le fichier de configuration).
82
57
83
-
# Migration de la base de données SQL
58
+
#Modifications de la structure des bases de données SQL
84
59
85
60
## Modifications du fichier [`app/sql/models.py`](./app/sql/models.py)
86
61
@@ -113,64 +88,19 @@ alembic -c ui/alembic.ini upgrade head
113
88
# Tests
114
89
115
90
Merci, avant chaque pull request, de vérifier le bon déploiement de votre API en exécutant les tests prévus à cet effet. Pour exécuter ces tests à la racine du projet, exécutez la commande suivante :
116
-
117
-
```bash
118
-
PYTHONPATH=. pytest --config-file=pyproject.toml
119
-
```
120
-
121
-
Pour n'exécuter qu'une partie des tests, par exemple les test *audio*, exécutez la commande suivante :
> [!NOTE] Le fichier de configuration pour exécuter les tests est [config.test.yml](./.github/config.test.yml). Vous pouvez le modifier pour exécuter les tests sur votre machine.
97
+
127
98
Pour mettre à jour les snapshots, exécutez la commande suivante :
Pour utiliser le module testing de VSCode, veuillez la configuration suivante dans votre fichier *.vscode/settings.json* :
136
-
137
-
```json
138
-
{
139
-
"python.terminal.activateEnvironment": false,
140
-
"python.testing.pytestArgs": [
141
-
"app/tests",
142
-
"--config-file=pyproject.toml"
143
-
],
144
-
"python.testing.unittestEnabled": false,
145
-
"python.testing.pytestEnabled": true,
146
-
}
147
-
```
148
-
149
-
Afin de spéficier les variables d'environnement nécessaires pour les tests, vous devez également créer un fichier *.vscode/launch.json* avec la configuration suivante ou l'ajouter à votre fichier existant :
150
-
151
-
```json
152
-
{
153
-
"version": "0.2.0",
154
-
"configurations": [
155
-
{
156
-
"name": "Debug Test",
157
-
"purpose": [
158
-
"debug-test"
159
-
],
160
-
"type": "debugpy",
161
-
"request": "launch",
162
-
"program": "${file}",
163
-
"args": [
164
-
"--color=yes",
165
-
"--exitfirst"
166
-
],
167
-
"env": {"CONFIG_FILE": "<path to config file>"},
168
-
"console": "integratedTerminal",
169
-
}
170
-
]
171
-
}
172
-
```
173
-
174
104
# Notebooks
175
105
176
106
Il est important de tenir à jour les notebooks de docs/tutorials, afin de montrer des rapides exemples d'utilisation de l'API.
Le linter du projet est [Ruff](https://beta.ruff.rs/docs/configuration/). Les règles de formatage spécifiques au projet sont dans le fichier *[pyproject.toml](./pyproject.toml)*.
188
118
189
-
## Configurer Ruff avec pre-commit
190
-
191
-
1. Installez les hooks de pre-commit
192
-
193
-
```bash
194
-
pip install ".[dev]"
195
-
pre-commit install
196
-
```
197
-
198
-
Ruff s'exécutera automatiquement à chaque commit.
119
+
Merci de bien vouloir installer les hooks de pre-commit :
199
120
200
-
## Configurer Ruff sur VSCode
201
-
202
-
1. Installez l'extension *Ruff* (charliermarsh.ruff) dans VSCode
203
-
2. Configurez le linter Ruff dans VSCode pour utiliser le fichier *[pyproject.toml](./pyproject.toml)*
204
-
205
-
À l'aide de la palette de commandes de VSCode (⇧⌘P), recherchez et sélectionnez *Preferences: Open User Settings (JSON)*.
206
-
207
-
Dans le fichier JSON qui s'ouvre, ajoutez à la fin du fichier les lignes suivantes :
208
-
209
-
```json
210
-
"ruff.configuration": "<path to pyproject.toml>",
211
-
"ruff.format.preview": true,
212
-
"ruff.lineLength": 150,
213
-
"ruff.codeAction.fixViolation": {
214
-
"enable": false
215
-
},
216
-
"ruff.nativeServer": "on"
217
-
```
218
-
219
-
⚠️ **Attention** : Assurez-vous que le fichier *[pyproject.toml](./app/pyproject.toml)* est bien spécifié dans la configuration.
121
+
```bash
122
+
pip install ".[dev]"
123
+
pre-commit install
124
+
```
220
125
221
-
3. **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*.**
126
+
Ruff s'exécutera automatiquement à chaque commit.
222
127
223
128
# Commit
224
129
@@ -232,3 +137,4 @@ feat(collections): collection name retriever
232
137
```
233
138
234
139
*Le thème est optionnel et doit correspondre à un thématique de la code base (deploy, collections, models, ...).
0 commit comments