## Intégrer un LLM dans une application

C'est le cœur du métier : faire **dialoguer votre code** avec un modèle.

### Le principe d'un appel API
Votre application envoie une requête (le prompt + des paramètres) à une URL, et reçoit une
réponse. Grâce au **standard compatible OpenAI**, le code est quasi identique quel que soit
le fournisseur (propriétaire ou modèle ouvert auto-hébergé).

```python
from openai import OpenAI
client = OpenAI()  # ou base_url vers votre modèle souverain
resp = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[{"role": "user", "content": "Résume ce texte : ..."}],
    temperature=0.2,
)
print(resp.choices[0].message.content)
```

### Les réponses structurées
Pour intégrer l'IA dans un système, on ne veut pas un paragraphe libre mais des **données
exploitables**. On demande au modèle de répondre en **JSON** selon un schéma :
> *« Réponds en JSON : {"categorie": ..., "urgence": "haute|moyenne|basse", "resume": ...} »*
Le résultat se branche directement dans une base ou une autre application.

### Maîtriser les coûts
Le coût dépend du **nombre de tokens** (entrée + sortie). Leviers : prompts concis, modèle
adapté à la tâche (un petit modèle pour trier), mise en cache des requêtes répétées.

> **📌 Cas concret — classer automatiquement les demandes**
> Une administration veut router ses demandes entrantes. Le développeur appelle le LLM avec
> une **réponse structurée en JSON** (`categorie`, `urgence`, `service_cible`). La sortie
> alimente directement le système de tickets, qui **route automatiquement**. L'IA n'est plus
> un chat, c'est un **composant logiciel** intégré au système d'information.

> **À retenir** — On appelle un LLM via une **API** (standard compatible OpenAI = code
> portable). Pour l'intégration, on exige des **réponses structurées (JSON)**. Le **coût se
> pilote** par le nombre de tokens et le choix du modèle.