Voici un tutoriel pour router les étapes de codage d'un agent entre **DeepSeek V4 Pro** et **DeepSeek V4 Flash** sur **TokenLab**, incluant un tableau des limites et des tarifs, une estimation des coûts, une requête d'appel d'outil, ainsi que du code pour la gestion des tentatives et des replis (fallback).
---
### Introduction au routage intelligent sur TokenLab
Le routage entre **DeepSeek V4 Pro** et **DeepSeek V4 Flash** permet d'optimiser l'équilibre entre performance et coût. Utilisez **DeepSeek V4 Pro** pour les tâches complexes de raisonnement et **DeepSeek V4 Flash** pour les tâches répétitives ou à faible latence.
### Tableau des limites et tarifs
| Modèle | Limite de débit (RPM) | Prix par 1M tokens (Input) | Prix par 1M tokens (Output) |
| :--- | :--- | :--- | :--- |
| **DeepSeek V4 Pro** | 50 | $3.00 | $15.00 |
| **DeepSeek V4 Flash** | 500 | $0.10 | $0.30 |
### Estimation des coûts : Exemple pratique
Imaginons un flux de travail composé de 100 000 tokens d'entrée et 20 000 tokens de sortie :
* **Option 100% Pro :** (0,1 * $3.00) + (0,02 * $15.00) = **$0.60**
* **Option 100% Flash :** (0,1 * $0.10) + (0,02 * $0.30) = **$0.016**
* **Option Routage (80% Flash / 20% Pro) :** (0,08 * $0.10 + 0,02 * $3.00) + (0,016 * $0.30 + 0,004 * $15.00) = **$0.132**
### Requête d'appel d'outil (Tool-calling)
Voici comment structurer une requête d'appel d'outil pour votre agent :
```json
{
"model": "deepseek-v4-flash",
"messages": [{"role": "user", "content": "Refactorise cette fonction Python."}],
"tools": [{
"type": "function",
"function": {
"name": "update_codebase",
"parameters": { "type": "object", "properties": { "code": { "type": "string" } } }
}
}]
}
```
### Implémentation : Retry et Fallback
Utilisez ce modèle pour basculer automatiquement vers **DeepSeek V4 Pro** en cas d'échec de **DeepSeek V4 Flash** :
```python
import time
def call_model_with_fallback(prompt):
models = ["deepseek-v4-flash", "deepseek-v4-pro"]
for model in models:
try:
print(f"Tentative avec {model}...")
return client.chat.completions.create(
model=model,
messages=[{"role": "user", "content": prompt}]
)
except Exception as e:
print(f"Échec avec {model}: {e}")
time.sleep(1) # Délai avant le fallback
raise Exception("Tous les modèles ont échoué.")
```
19 septembre