Hi!
En tant qu'ingénieur, passionné par les technologies open source, j'aimerais partager avec vous comment utiliser Mistral, open-webui et Exoscale pour une utilisation plus open source des outils liés aux technologies de génération de langage naturel (GenAI).
Mistral est un projet open source qui permet de gérer les modèles de langage naturel. Il offre plusieurs avantages par rapport aux modèles et interfaces closed-source, notamment :
Transparence dans les algorithmes utilisés, ce qui permet de comprendre les décisions prises par les modèles.
Possibilité de personnaliser les modèles pour répondre à des besoins spécifiques.
L'accès à une communauté active de développeurs qui contribuent régulièrement à l'amélioration du projet.
Pour accéder à Mistral, vous devez suivre les étapes suivantes :
Créez un compte sur le site web de Mistral https://mistral.ai/
Connectez-vous à votre compte et cliquez sur "API keys" dans le menu de gauche.
Cliquez sur "Create new API key" pour générer une nouvelle clé d'API.
Une fois que vous avez obtenu votre clé API, vous pouvez utiliser open-webui pour interagir avec les modèles de Mistral. open-webui est un outil open source qui permet de visualiser et de manipuler les modèles de langage naturel.
Pour démarrer open-webui en local, vous devez effectuer la commande suivante :
docker run -d -p 3000:8080 \
-v open-webui:/app/backend/data \
-e OPENAI_API_BASE_URLS="https://api.mistral.ai/v1" \
-e OPENAI_API_KEYS="your-api-key" \
--name open-webui \
--restart always \
ghcr.io/open-webui/open-webui:main
Puis, pour accéder à open-webui, aller sur l'URL http://localhost:3000/
Vous trouverez un exemple de setup SSL https en bas de cet article.
Personnelement j'utilise actuellement leur dernier modèle, le plus performant, open-mixtral-8x22b.
Si vous souhaitez héberger l'interface open-webui sur une VM s'exécutant sur un cloud public, je vous conseil d'utiliser Exoscale, un cloud souverain Européen avec des Datacenters en Suisse. Voici comment procéder :
Créez un compte sur Exoscale et déployez une VM avec Ubuntu 22.04 LTS.
Connectez-vous à votre VM via SSH et installez Docker en suivant les instructions sur leur site web.
Exécutez la commande suivante pour télécharger et installer open-webui :
docker run -d -p 80:8080 \
-v open-webui:/app/backend/data \
-e OPENAI_API_BASE_URLS="https://api.mistral.ai/v1" \
-e OPENAI_API_KEYS="your-api-key" \
--name open-webui \
--restart always \
ghcr.io/open-webui/open-webui:main
Afin de pouvoir accéder au service open-webui il faut vous assurer d'autoriser vers le port que vous aurez mentionné dans la commande docker run.
Voic un exemple de Security Group à appliquer sur votre instance:
Pour accéder à votre instance open-webui, il suffit de trouver l'IP de votre instance et d'y accèder sur le port sur lequel écoute le service.
Fonctionnalité très utiles dans Mistral, vous pouvez suivre en temps réel l'évolution des coûts de votre compte. Soit en Euro ou en nombre de Token.
Vous pouvez ainsi faire vos tests entre les différents modèles et adapter selon vos besoins et préférences.
Total usage in TOKENS
Total usage in EURO
Et voilà!
C'est si simple de s'affranchir un peu de la Silicon Valley :-)
Exemple de setup SSL https
docker run -d -p 8080:8080 -v open-webui:/app/backend/data -e OPENAI_API_BASE_URLS="https://api.mistral.ai/v1" -e OPENAI_API_KEYS="your-api-key" --name open-webui --restart always ghcr.io/open-webui/open-webui:main
sudo apt-get update
sudo apt-get install nginx
server {
if ($host = ai.example.com) {
return 301 https://$host$request_uri;
}
listen 80;
server_name ai.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name ai.example.com;
ssl_certificate /etc/letsencrypt/live/ai.example.com-0001/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/ai.example.com-0001/privkey.pem; # managed by Certbot
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256";
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Activer la configuration et obtenir le certificat SSL
sudo ln -s /etc/nginx/sites-available/open-webui.conf /etc/nginx/sites-enabled/
sudo systemctl restart nginx
Références et liens
Mistral GitHub : https://github.com/mistralai
Mistral LLM: https://mistral.ai/technology/#models
La Plateforme: https://console.mistral.ai/
Le Chat: https://chat.mistral.ai/chat
Mistral API: https://docs.mistral.ai/api/
open-webui : https://github.com/open-webui/open-webui
Exoscale: https://www.exoscale.com/
Exoscale Compute: https://www.exoscale.com/compute/
Source : Partially generated with Mistral model open-mixtral-8x22b