Serveur API pour le moteur linguistique générant les enrichissements
Lancer le serveur avec la commande (port 5000 par défaut)
Lancement en local : python ./run.py
Lancement par Docker : docker compose up -d --build
- dotenv
- flask
- flask-cors
- mistralai
- pytest
Pour les installer : pip install -r requirements.txt
pytest tests/
Scaleway propose un système d'hébergement de containers qui se prête particulièrement bien à l'hébergement de ce serveur de démo.
ATTENTION : l'explication suivante correspond à un usage ponctuel pour une démo, ce n'est pas une installation compatible pour un usage en production (pas de sécurité entre le front et le back, utilisation de Flask pour le serveur d'API et en mode debug, etc.)
- Créer un compte Scaleway et le configurer
- Créer un compte sur Scaleway
- Créer une "police" qui autorise l'exécution des containers. La nommer par exemple "Compute containers" et lui attribuer les droits suivants
- Sur les projets
ContainerRegistryFullAccess: pour autoriser à créer/modifier des images de type DockerContainersFullAccess: pour lancer et arrêter des containers
- Sur l'organisation
ProjectReadOnly: pour permettre la connexion initiale de l'application par Docker
- Sur les projets
- Créer un utilisateur d'application
- Dans la partie IAM de la console, créer un utilisateur de type "applications", en le nommant par exemple "applications-genboost-apiserver" et lui affecter la "police" créée précédemment
- Créer une clé d'API pour cet utilisateur et conserver les deux informations générées que sont
Access KeyetSecret Key - Récupérer le
Project IDsur la console Scaleway- Celui-ci est disponible sur la page "Dashboard" à côté du nom du projet
- Créer un
namespacedans leContainer Registry- Il s'agit de l'endroit où l'on va charger l'image Docker du serveur qui sera exécuté
- Noter le nom de ce
namespace
- Créer un
namespacedans lesContainersde la partieServerless, pour l'instant on n'ajoute pas de le containeur. Récupérer leendpoint du Registry
- Installer et configurer Docker
- Installer Docker sur votre ordinateur, cloner ce repository
- Configurer Docker pour lui donner accès à votre repository sur Scaleway
- Lancer la commande
docker login rg.fr-par.scw.cloud(changer si nécessaire l'URL en fonction de la région souhaitée pour l'exécution, il s'agit de celle sélectionnée dans la création du namespace du container) - Renseigner
Access Key,Secret Key,Project ID
- Lancer la commande
- Créer un compte Mistral et configurer le serveur
- Créer un compte Mistral sur la console et générer une clef API
- Cloner ce repository et créer un fichier
.enven dupliquant le fichierexample.envpuis modifier la clef API pour utiliser celle créée au point précédent
- Construire l'image Docker et la charger sur Scaleway
- Construire l'image avec la commande suivante en remplaçant les items entre < et > :
docker build --platform linux/amd64 -t <endpoint du Registry>/api_server-web:v1 . - Charger l'image sur Scaleway avec la commande suivante :
docker push <endpoint du Registry>/api_server-web:v1
- Construire l'image avec la commande suivante en remplaçant les items entre < et > :
- Lancer le serveur
- Aller sur le conteneur créée précédemment dans console de Scaleway et cliquer sur "Déployer le conteneur"
- Sélectionner :
- Le registre précédemment créé
- L'image
api_server-web(qui est normalement la seule disponible) et la versionv1 - Indiquer le port 5000
- Pour les ressources il est possible de mettre le minimum : 100 mVCPU et 128 MB (ou 256 MB idéalement)
- Pour l'autoscaling positionner le maximum à 1 pour limiter les frais d'hébergement
- A la fin de la configuration le serveur va démarrer, il suffit alors d'attendre que le déploiement soit réussi et de copier le
endpoint du conteneurpour configurer cette URL sur l'application web