
# Fournisseurs IA

Le fournisseur IA est le backend LLM (et d'embedding) qui propulse chaque capacité IA. Vous le sélectionnez avec des variables d'environnement — jamais dans le schéma de l'application. Définir `AI_PROVIDER` est l'interrupteur principal qui active toute la couche IA ; le laisser non défini maintient l'IA dormante.

```bash
AI_PROVIDER=anthropic
AI_API_KEY=sk-ant-...
AI_MODEL=claude-sonnet-4-5
```

## Fournisseurs pris en charge

| Fournisseur           | Valeur `AI_PROVIDER`      | Clé API requise | URL de base requise | Notes                                                                         |
| --------------------- | ------------------------- | --------------- | ------------------- | ----------------------------------------------------------------------------- |
| **Anthropic**         | `anthropic`               | Oui             | Non                 | Modèles Claude. Modèle par défaut : `claude-sonnet-4-5`.                      |
| **OpenAI**            | `openai`                  | Oui             | Non                 | Modèles GPT / série o. Modèle par défaut : `gpt-4o`.                          |
| **Mistral**           | `mistral`                 | Oui             | Non                 | Mistral / Codestral. Modèle par défaut : `mistral-large-latest`.              |
| **Google Gemini**     | `google` (alias `gemini`) | Oui             | Non                 | Modèles Gemini. Modèle par défaut : `gemini-2.0-flash`.                       |
| **Ollama**            | `ollama`                  | Non             | Oui                 | Local, auto-hébergé. Aucune clé nécessaire. Modèle par défaut : `llama3.1`.   |
| **Compatible OpenAI** | `openai-compatible`       | Oui             | Oui                 | Tout point d'accès parlant l'API OpenAI. Définissez `AI_MODEL` explicitement. |

:::callout
**`gemini` est un alias accepté** pour la valeur canonique `google`. Les deux résolvent vers Google Gemini ; `google` est préféré dans les nouvelles configurations.
:::

## Variables d'environnement principales

| Variable                  | Description                                                                                                                         | Exemple                  |
| ------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ------------------------ |
| `AI_PROVIDER`             | Identifiant du fournisseur. Interrupteur principal — non défini désactive toute l'IA.                                               | `anthropic`              |
| `AI_API_KEY`              | Clé API pour les fournisseurs cloud. Non utilisée par Ollama.                                                                       | `sk-ant-...`             |
| `AI_BASE_URL`             | URL du point d'accès. Requise pour Ollama et compatible OpenAI ; les fournisseurs cloud utilisent des valeurs par défaut intégrées. | `http://localhost:11434` |
| `AI_MODEL`                | Modèle LLM par défaut. Bascule vers le modèle par défaut recommandé du fournisseur lorsque non défini.                              | `claude-sonnet-4-5`      |
| `AI_TEMPERATURE`          | Température d'échantillonnage par défaut, `0`–`1` inclus.                                                                           | `0.7`                    |
| `AI_MAX_TOKENS`           | Nombre maximal de jetons de sortie par défaut (entier positif).                                                                     | `4096`                   |
| `AI_EMBEDDING_MODEL`      | Modèle d'embedding pour le RAG. Bascule vers le modèle d'embedding du fournisseur par défaut.                                       | `text-embedding-3-small` |
| `AI_EMBEDDING_DIMENSIONS` | Dimensions du vecteur (doit correspondre à la sortie du modèle d'embedding).                                                        | `1536`                   |

Une valeur vide ou composée uniquement d'espaces est traitée de manière identique à une valeur non définie — les opérateurs qui vident `AI_PROVIDER` ont l'intention de le désactiver, et non de fournir une valeur invalide. Le serveur démarre proprement avec l'IA désactivée plutôt que de lever une erreur d'analyse.

## Alias de clés et d'URL spécifiques aux fournisseurs

En plus des génériques `AI_API_KEY` / `AI_BASE_URL`, chaque fournisseur cloud accepte une variable d'environnement alias conventionnelle. La valeur générique `AI_*` a toujours la priorité ; l'alias est le repli.

| Fournisseur       | Alias de clé API       | Alias d'URL de base     |
| ----------------- | ---------------------- | ----------------------- |
| Anthropic         | `ANTHROPIC_API_KEY`    | —                       |
| OpenAI            | `OPENAI_API_KEY`       | —                       |
| Mistral           | `MISTRAL_API_KEY`      | —                       |
| Google Gemini     | `GOOGLE_API_KEY`       | —                       |
| Ollama            | — (pas de clé)         | `OLLAMA_BASE_URL`       |
| Compatible OpenAI | (utilise `AI_API_KEY`) | (utilise `AI_BASE_URL`) |

## Modèles par défaut

Lorsque `AI_MODEL` n'est pas défini, chaque fournisseur résout vers une valeur par défaut raisonnable :

| Fournisseur       | Modèle par défaut            |
| ----------------- | ---------------------------- |
| Anthropic         | `claude-sonnet-4-5`          |
| OpenAI            | `gpt-4o`                     |
| Mistral           | `mistral-large-latest`       |
| Google Gemini     | `gemini-2.0-flash`           |
| Ollama            | `llama3.1`                   |
| Compatible OpenAI | _aucun_ — définir `AI_MODEL` |

Les points d'accès compatibles OpenAI pointent vers un backend arbitraire, il n'y a donc pas de modèle par défaut universel — vous devez définir `AI_MODEL` explicitement.

## Validation des modèles

Pour les fournisseurs ayant un catalogue connu (Anthropic, OpenAI, Mistral, Google), Sovrium émet un **avertissement de démarrage non fatal** lorsque `AI_MODEL` (ou un remplacement `model` d'un agent) ne correspond pas à un modèle reconnu — typiquement une confusion inter-fournisseurs (`gpt-4o` sur `anthropic`) ou une faute de frappe (`claud-sonet`). C'est un avertissement, pas une erreur ; le serveur démarre quand même.

Les fournisseurs Ollama et compatible OpenAI ont des **catalogues ouverts** (modèles installés localement, points d'accès arbitraires), la validation du nom de modèle est donc entièrement ignorée pour eux.

## Exemples de configuration

```bash
# Auto-hébergé, sans coût, frugal par défaut : Ollama local.
AI_PROVIDER=ollama
AI_BASE_URL=http://localhost:11434     # ou OLLAMA_BASE_URL
AI_MODEL=llama3.1
AI_EMBEDDING_MODEL=nomic-embed-text
```

```bash
# Anthropic avec un remplacement de température.
AI_PROVIDER=anthropic
ANTHROPIC_API_KEY=sk-ant-...           # ou AI_API_KEY
AI_MODEL=claude-sonnet-4-5
AI_TEMPERATURE=0.3
AI_MAX_TOKENS=4096
```

```bash
# Une passerelle compatible OpenAI (vLLM, LiteLLM, Azure OpenAI, etc.).
AI_PROVIDER=openai-compatible
AI_BASE_URL=https://my-gateway.internal/v1
AI_API_KEY=...
AI_MODEL=my-deployed-model             # requis — aucune valeur par défaut
```

:::callout
**Remplacements par agent.** Tout agent dans `app.agents[]` peut remplacer `model`, `temperature` et `maxTokens` pour lui-même, en revenant à ces valeurs par défaut des variables d'environnement lorsqu'ils sont omis. Voir [Agents IA](/fr/docs/ai-agents).
:::

## Pages connexes

- [Vue d'ensemble de l'IA](/fr/docs/ai-overview) — la carte complète de l'écosystème IA.
- [Routage éco IA](/fr/docs/ai-eco-routing) — précédence de fournisseur local d'abord.
- [Agents IA](/fr/docs/ai-agents) — remplacements de modèle par agent.
- [RAG IA](/fr/docs/ai-rag) — modèle d'embedding et stockage vectoriel.
- [Variables d'environnement](/fr/docs/env-vars) — référence complète des variables d'environnement.
