Le Paramètre reasoning_effort
Contrôler la profondeur de réflexion
Le raisonnement ajustable repose sur un principe simple : vous décidez combien le modèle doit réfléchir avant de répondre. Le paramètre reasoning_effort est votre levier de contrôle principal.
Ce paramètre est disponible sur mistral-small-latest et vous permet de basculer entre un mode rapide (sans réflexion visible) et un mode approfondi (avec traces de raisonnement complètes).
Les deux modes de reasoning_effort
Mode “high” : réflexion maximale
Quand vous définissez reasoning_effort = "high", le modèle :
- Génère un chunk de réflexion complet avant de formuler sa réponse
- Explore le problème en profondeur, envisage plusieurs angles
- Consomme davantage de tokens (et donc de temps et de coût)
- Produit des réponses significativement meilleures sur les tâches complexes
Mode “none” : réponse directe
Quand vous définissez reasoning_effort = "none", le modèle :
- Applique une réflexion minimale, voire aucune
- Exclut le chunk de réflexion de la réponse
- Répond rapidement avec une consommation de tokens réduite
- Convient parfaitement aux tâches simples et directes
Implémentation en Python
Voici comment utiliser le paramètre reasoning_effort avec le SDK Mistral :
from mistralai import Mistral
client = Mistral(api_key="VOTRE_CLE_API")
# Mode HIGH : raisonnement approfondi
response_high = client.chat.complete(
model="mistral-small-latest",
messages=[
{"role": "user", "content": "Résous ce problème : x^3 - 6x^2 + 11x - 6 = 0"}
],
reasoning_effort="high"
)
# Mode NONE : réponse directe sans réflexion
response_none = client.chat.complete(
model="mistral-small-latest",
messages=[
{"role": "user", "content": "Quelle est la capitale de la France ?"}
],
reasoning_effort="none"
)
Différence de sortie
Avec reasoning_effort="high", la réponse contient deux éléments :
for chunk in response_high.choices[0].message.content:
if chunk.type == "thinking":
print("RÉFLEXION:", chunk.text[:200], "...")
elif chunk.type == "text":
print("RÉPONSE:", chunk.text)
Avec reasoning_effort="none", la réponse ne contient que l’élément texte, sans trace de réflexion.
Guide de choix du mode
Le choix entre “high” et “none” dépend de la nature de votre tâche :
Utilisez “high” pour :
- Les problèmes mathématiques multi-étapes
- Le debugging de code complexe
- L’analyse comparative de solutions
- La planification stratégique
- Les questions de logique et les énigmes
- L’évaluation de risques ou de compromis
Utilisez “none” pour :
- Les questions factuelles simples
- La traduction et la reformulation
- La génération de texte créatif
- Le remplissage de formulaires
- Les réponses conversationnelles basiques
- L’extraction d’informations directes
Gestion des coûts
Le mode “high” consomme significativement plus de tokens que le mode “none”. Voici une stratégie de gestion :
def smart_query(client, question, complexity="auto"):
"""Choisit automatiquement le niveau de raisonnement."""
# Mots-clés indicateurs de complexité
complex_keywords = [
"calcule", "démontre", "compare", "analyse",
"optimise", "debug", "pourquoi", "explique le raisonnement"
]
if complexity == "auto":
is_complex = any(kw in question.lower() for kw in complex_keywords)
effort = "high" if is_complex else "none"
else:
effort = complexity
return client.chat.complete(
model="mistral-small-latest",
messages=[{"role": "user", "content": question}],
reasoning_effort=effort
)
Cette approche vous permet d’optimiser le ratio qualité/coût en activant le raisonnement uniquement quand il apporte une réelle valeur ajoutée.
Limitations à connaître
Quelques points importants sur le raisonnement ajustable :
- Le paramètre
reasoning_effortn’accepte que deux valeurs :"high"ou"none". Il n’y a pas de niveau intermédiaire - Le mode “high” n’est pas une garantie de réponse parfaite : il augmente la probabilité d’un raisonnement correct, mais ne l’assure pas
- Le surcoût en tokens peut être significatif (2x à 10x selon la complexité du problème)
- Seul
mistral-small-latestsupporte ce paramètre. Les modèles Magistral utilisent une approche différente (leçon 5)
Points clés à retenir
reasoning_effort="high"active le raisonnement approfondi avec traces de réflexionreasoning_effort="none"désactive les traces pour une réponse rapide et économique- Le paramètre est exclusif à
mistral-small-latest - Adaptez le mode à la complexité de la tâche pour optimiser le rapport qualité/coût
- Il n’existe que deux niveaux : pas de granularité intermédiaire