Fournisseurs de modèles
Chatbotaurus répond par défaut avec un modèle souverain européen exécuté localement. Un fournisseur supplémentaire se branche par un identifiant (voir Sécurité et identifiants) enregistré dans l'application, pas par une variable d'environnement globale.
Les trois modèles souverains
La liste est dans crates/forge-core/src/model_governance.rs
(SOVEREIGN_LOCAL_MODELS). C'est l'unique source des défauts du code.
| Rôle | Modèle | Où il tourne |
|---|---|---|
| Dialogue | cas/eurollm-1.7b-instruct-q8 (EuroLLM 1.7B, environ 1,8 Go) | Ollama |
| Repli | ministral-3:3b | Ollama |
| Embedding | paraphrase-multilingual-MiniLM-L12-v2, 384 dimensions | fastembed, dans le processus forge-api |
Télécharger les deux modèles de dialogue (le conteneur Ollama vient du plan décrit dans Déploiement avec Podman) :
podman exec forge-ollama ollama pull cas/eurollm-1.7b-instruct-q8
podman exec forge-ollama ollama pull ministral-3:3b
Le modèle d'embedding n'est pas un modèle Ollama : ollama pull ne le
concerne pas. fastembed le télécharge dans son cache au premier usage (le
pipeline d'indexation est décrit dans Connaissances). La
collection Qdrant du pipeline wiki est donc créée en 384 dimensions.
Ollama local (par défaut)
OLLAMA_BASE_URL=http://localhost:11434
OLLAMA_MODEL=ministral-3:3b
OLLAMA_EMBEDDING_MODEL=paraphrase-multilingual-MiniLM-L12-v2
Valeurs par défaut (crates/forge-core/src/config.rs) : OLLAMA_BASE_URL
vaut http://localhost:11434 et OLLAMA_MODEL prend le modèle de repli de la
liste souveraine. Le délai d'appel (OLLAMA_TIMEOUT_SECS) vaut 120 s.
Ajouter un autre fournisseur
La résolution du modèle de chat d'une organisation suit cet ordre
(crates/forge-api/src/routes/llm_provider.rs) :
- le dernier identifiant de type IA enregistré par l'organisation ;
- l'ancienne configuration
/llm-provider(compatibilité) ; - EuroLLM en local.
Pour ajouter un fournisseur :
- Ouvrez
/credentials(section Sécurité du menu à partir du plan Business, sinon par son adresse) et choisissez la catégorie des modèles de langage. - Choisissez la famille (par exemple
mistralApipour Mistral AI, France, ouollamapour votre propre serveur Ollama). Le formulaire préremplit l'adresse et le modèle. - Pour un serveur auto-hébergé, indiquez son adresse de base. Pour un service en ligne, saisissez la clé d'API.
- Enregistrez. La carte active est signalée dans la liste.
- Vérifiez dans le chat : si le fournisseur est refusé, le chat répond avec EuroLLM (voir « Fournisseurs refusés » plus bas).
La clé n'est stockée qu'une fois, chiffrée en base. Le fournisseur choisi n'est utilisé que si son point d'accès est local ou européen (voir « Fournisseurs refusés »). Les variables
LLM_PROVIDER et MISTRAL_API_KEY du fichier .env.example ne sont pas lues
par le backend pour choisir le fournisseur de chat : n'en dépendez pas.
Les métadonnées du code (llm_provider_metadata.rs) décrivent Ollama et
Mistral AI comme fournisseurs européens. Des fiches ollama et localai
existent dans connectors/.
Fournisseurs refusés
Avant chaque appel à un modèle, le code applique deux contrôles
(assert_llm_sovereign, crates/forge-core/src/agent/memory/sovereignty.rs) :
- le nom du modèle ne doit contenir aucun de ces huit noms : OpenAI,
Anthropic, Azure, Google, AWS, Bedrock, Cohere, Groq
(
US_PROVIDERS) ; - l'adresse du point d'accès doit être locale (boucle locale, réseau privé),
se terminer par
.eu, ou être celle d'un fournisseur européen connu (Ollama, Mistral AI et un hébergeur européen référencé dans le code).
Un appel qui échoue l'un des deux contrôles est refusé avant l'envoi du
message. Quand le fournisseur choisi par l'organisation est refusé, le
chat
bascule sur EuroLLM. La liste de dix noms LLM_PROVIDER_US_BLOCKLIST
(avec Together et Replicate) existe dans le code mais aucun chemin de
production ne l'appelle.
La liste des familles proposées dans
/credentialsévolue : certaines familles passent par un agrégateur ou un service hors UE. Le formulaire affiche l'origine de chaque famille. Une famille dont le point d'accès n'est ni local ni européen s'enregistre, mais ses appels sont refusés par le contrôle ci-dessus.
Voir aussi
- Installation : compiler et lancer la pile en local
- Variables d'environnement : chaque variable lue par le code
- Conformité RGPD : données personnelles, hébergement et sous-traitants dans l'UE
- Chat : quel modèle répond, et le repli quand un fournisseur est refusé
- Conception des connecteurs MCP : le contrôle de conformité UE appliqué aux connecteurs
- Questions fréquentes : « Quels modèles d'IA sont utilisés ? » en une réponse courte