Cas d'Usage Concrets des Predicted Outputs
Trois familles de cas d’usage
Les Predicted Outputs brillent dans trois grandes catégories de tâches en production : l’édition de code, la modification de texte, et le remplissage de templates. Dans cette leçon, vous découvrirez des exemples concrets pour chaque catégorie, avec les patterns à reproduire dans vos propres applications.
Cas 1 : Édition de code
C’est le cas d’usage le plus naturel. Vous avez un fichier source existant et vous voulez y apporter une modification ciblée. Le modèle n’a besoin de régénérer que les lignes modifiées.
Renommer une variable
code_existant = """
def calculate_total(items):
tax_rate = 0.20
subtotal = sum(item.price for item in items)
tax = subtotal * tax_rate
total = subtotal + tax
return total
"""
prompt = (
"Renommez la variable 'tax_rate' en 'vat_rate' partout dans ce code. "
"Répondez uniquement avec le code modifié."
)
response = client.chat.complete(
model="codestral-latest",
messages=[
{"role": "user", "content": prompt},
{"role": "user", "content": code_existant}
],
prediction={"type": "content", "content": code_existant}
)
Le modèle sait que la structure du code reste identique. Il ne recalcule que les tokens affectés par le renommage.
Changer un import ou une dépendance
code_existant = """
from flask import Flask, request, jsonify
from flask_cors import CORS
app = Flask(__name__)
CORS(app)
@app.route('/api/predict', methods=['POST'])
def predict():
data = request.get_json()
result = model.predict(data['input'])
return jsonify({'prediction': result})
"""
prompt = (
"Migrez ce code de Flask vers FastAPI. "
"Conservez la même logique métier. "
"Répondez uniquement avec le code."
)
response = client.chat.complete(
model="codestral-latest",
messages=[
{"role": "user", "content": prompt},
{"role": "user", "content": code_existant}
],
prediction={"type": "content", "content": code_existant}
)
Cas 2 : Modification de texte
Les documents longs avec des modifications ponctuelles sont un terrain idéal pour les Predicted Outputs.
Mise à jour d’une section dans un rapport
rapport = """
# Rapport trimestriel Q4 2025
## Résumé exécutif
Le chiffre d'affaires a atteint 2,3M EUR au Q4 2025, en hausse de 15 %
par rapport au Q3. La marge opérationnelle s'établit à 22 %.
## Performances commerciales
L'équipe commerciale a signé 47 nouveaux contrats, dont 12 grands comptes.
Le panier moyen progresse de 8 % à 49 000 EUR.
## Perspectives Q1 2026
Nous anticipons une croissance de 10 % portée par le lancement du
produit Enterprise et l'expansion sur le marché allemand.
"""
prompt = (
"Mettez à jour ce rapport pour le Q1 2026 avec les données suivantes : "
"CA = 2,7M EUR (+17 %), marge = 24 %, 53 nouveaux contrats, "
"panier moyen = 51 000 EUR (+4 %). "
"Pour les perspectives Q2, mentionnez l'expansion au Benelux. "
"Gardez exactement la même structure."
)
response = client.chat.complete(
model="mistral-large-latest",
messages=[
{"role": "user", "content": prompt},
{"role": "user", "content": rapport}
],
prediction={"type": "content", "content": rapport}
)
Cas 3 : Remplissage de templates
Quand vous avez un template fixe où seules quelques valeurs changent, la prédiction est quasi parfaite :
template_email = """
Bonjour {nom},
Suite à notre échange du {date}, je vous confirme les points suivants :
1. Le projet {projet} démarrera le {date_debut}
2. L'équipe sera composée de {nb_personnes} personnes
3. Le budget prévisionnel s'élève à {budget} EUR HT
Je reste à votre disposition pour toute question.
Cordialement,
{signataire}
"""
# Remplir partiellement le template pour la prédiction
prediction = template_email.replace("{nom}", "M. Dupont")
prediction = prediction.replace("{signataire}", "Marie Martin")
prompt = (
"Complétez cet email avec les informations suivantes : "
"date = 28 mars 2026, projet = Migration Cloud, "
"date_debut = 15 avril 2026, nb_personnes = 5, "
"budget = 85 000."
)
response = client.chat.complete(
model="mistral-large-latest",
messages=[
{"role": "user", "content": prompt},
{"role": "user", "content": prediction}
],
prediction={"type": "content", "content": prediction}
)
Mesurer le gain réel
Pour évaluer l’efficacité des Predicted Outputs dans votre cas d’usage, comparez systématiquement avec et sans prédiction :
import time
# Sans prédiction
start = time.time()
resp_normal = client.chat.complete(
model="mistral-large-latest",
messages=messages
)
time_normal = time.time() - start
# Avec prédiction
start = time.time()
resp_predicted = client.chat.complete(
model="mistral-large-latest",
messages=messages,
prediction={"type": "content", "content": contenu_predit}
)
time_predicted = time.time() - start
gain = (1 - time_predicted / time_normal) * 100
print(f"Sans prédiction : {time_normal:.2f}s")
print(f"Avec prédiction : {time_predicted:.2f}s")
print(f"Gain de latence : {gain:.1f} %")
Le gain varie selon le pourcentage de contenu correctement prédit. Pour une modification de 5 % d’un fichier de 500 lignes, attendez-vous à un gain de 60 à 80 % sur la latence.
Points clés à retenir
- L’édition de code (renommage, migration, refactoring léger) est le cas d’usage principal
- La modification de texte (rapports, documents) profite de la structure stable
- Les templates avec quelques valeurs dynamiques offrent le meilleur ratio gain/effort
- Mesurez toujours le gain réel dans votre contexte avant de déployer en production