Construisez avec Todou AI Cloud.
Todou AI Cloud expose une API textuelle compatible avec le format OpenAI Chat Completions. Elle prend en charge les conversations multi-tours, les outils, le streaming et les sorties JSON structurées.
URL de base
https://cheftdapi.todoustudio.com
Format
JSON / SSE
Authentification
Bearer API key
Démarrage rapide
Créez un compte, ajoutez des crédits à votre organisation, générez une clé API puis envoyez votre première requête.
- 1Créez votre compte
- 2Ajoutez des crédits
- 3Générez une clé API
- 4Appelez un modèle Todou
curl https://cheftdapi.todoustudio.com/v1/chat/completions \
-H "Authorization: Bearer sk-todou-..." \
-H "Content-Type: application/json" \
-d '{
"model": "todou-fast",
"messages": [
{ "role": "user", "content": "Bonjour Todou" }
]
}'Exemple JavaScript / Node.js
const response = await fetch("https://cheftdapi.todoustudio.com/v1/chat/completions", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.TODOU_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "todou-balanced",
messages: [
{ role: "system", content: "Tu es un assistant concis." },
{ role: "user", content: "Résume cette réunion." },
],
}),
});
if (!response.ok) throw new Error(await response.text());
const completion = await response.json();
console.log(completion.choices[0].message.content);Authentification
Ajoutez votre clé à chaque requête avec l’en-tête HTTP suivant :
Authorization: Bearer sk-todou-...Gardez la clé côté serveur. Ne placez jamais une clé Todou dans du JavaScript public, une application mobile ou un dépôt Git. Utilisez une variable d’environnement et révoquez immédiatement toute clé exposée.
Modèles Todou
Les slugs publics restent stables même si le moteur d’inférence évolue. Consultez toujours GET /v1/models pour connaître les modèles actifs et leurs capacités certifiées.
Todou Fast
todou-fastRapide et économique.
Todou Balanced
todou-balancedÉquilibre coût et qualité.
Todou Pro
todou-proTâches plus exigeantes.
curl https://cheftdapi.todoustudio.com/v1/models \
-H "Authorization: Bearer sk-todou-..."Chaque modèle expose notamment context_length et capabilities. Une capacité non certifiée est refusée avant l’appel fournisseur et avant toute facturation.
Tarification
Les tokens d’entrée et de sortie sont comptabilisés séparément. Tous les prix ci-dessous sont exprimés en dollars américains par million de tokens.
| Modèle | Entrée | Sortie |
|---|---|---|
| todou-fast | 0,50 $ | 2,00 $ |
| todou-balanced | 2,00 $ | 8,00 $ |
| todou-pro | 5,00 $ | 20,00 $ |
Le coût exact de chaque requête apparaît dans votre espace développeur. Les crédits sont détenus par l’organisation et consommés par les projets associés.
Chat Completions
Endpoint principal : POST /v1/chat/completions. Les rôles acceptés sont system, user, assistant et tool.
| Paramètre | Type | Description |
|---|---|---|
| model | string | Slug du modèle Todou. |
| messages | array | Historique de la conversation. |
| max_tokens | integer | Maximum de tokens générés, 512 par défaut. |
| temperature | number | Créativité entre 0 et 2. |
| stream | boolean | Active les événements SSE. |
| tools | array | Fonctions accessibles au modèle. |
| tool_choice | string | object | Contrôle le choix d’outil. |
| response_format | object | Demande une sortie structurée. |
| seed | integer | Graine de reproductibilité lorsque supportée. |
Structure de la réponse
{
"id": "chatcmpl-...",
"object": "chat.completion",
"model": "todou-fast",
"choices": [{
"index": 0,
"message": { "role": "assistant", "content": "Bonjour !" },
"finish_reason": "stop"
}],
"usage": { "prompt_tokens": 8, "completion_tokens": 3, "total_tokens": 11 }
}Tool-calling multi-tours
Déclarez jusqu’à 128 fonctions. Le modèle choisit un outil et retourne un message assistant avec content: null et tool_calls. Votre application exécute la fonction puis renvoie son résultat avec le rôle tool.
1. Déclarer l’outil
{
"model": "todou-fast",
"messages": [
{ "role": "user", "content": "Quel est mon solde ?" }
],
"tools": [{
"type": "function",
"function": {
"name": "get_balance",
"description": "Retourne le solde du client",
"parameters": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}
}],
"tool_choice": "auto"
}2. Renvoyer le résultat
{
"model": "todou-fast",
"messages": [
{ "role": "user", "content": "Quel est mon solde ?" },
{
"role": "assistant",
"content": null,
"tool_calls": [{
"id": "call_balance",
"type": "function",
"function": { "name": "get_balance", "arguments": "{}" }
}]
},
{
"role": "tool",
"tool_call_id": "call_balance",
"content": "12500 FCFA"
}
],
"tools": [/* mêmes outils qu’au premier appel */]
}Votre application garde le contrôle. Todou choisit et décrit l’appel, mais n’exécute jamais votre fonction. Validez les arguments et demandez une confirmation humaine pour les opérations sensibles.
Streaming SSE
Ajoutez stream: true. La réponse utilise text/event-stream et chaque événement commence par data:.
- Le premier delta annonce le rôle assistant.
- Les deltas suivants contiennent content ou tool_calls.
- Le dernier événement contient finish_reason.
- La séquence se termine par data: [DONE].
JSON structuré
Utilisez response_format pour demander une réponse JSON exploitable par votre application.
{
"model": "todou-balanced",
"messages": [{
"role": "user",
"content": "Extrait le nom et le montant : ACME, facture de 42 000 FCFA"
}],
"response_format": { "type": "json_object" }
}Décrivez précisément les propriétés attendues dans le message système ou utilisateur. Validez toujours le résultat dans votre application avant une action métier.
Limites actuelles
| Élément | Limite |
|---|---|
| Messages | 64 par requête |
| Contenu texte | 32 000 caractères par message |
| Outils | 128 par requête |
| Tokens de sortie | 8 192 maximum |
| Débit Chat Completions | 60 requêtes/minute par origine |
Pas encore disponible. Vision, audio/Realtime, embeddings, RAG hébergé, batch et fallback automatique ne font pas encore partie du contrat public.
Erreurs et traçabilité
Chaque réponse fournit un en-tête X-Request-ID. Conservez-le dans vos logs pour faciliter le diagnostic. Vous pouvez aussi envoyer votre propre identifiant dans cet en-tête.
| Code | Signification |
|---|---|
| 400 | Paramètre, capacité ou contexte invalide |
| 401 | Clé absente, invalide ou révoquée |
| 402 | Crédits prépayés insuffisants |
| 404 | Modèle indisponible |
| 429 | Limite de débit atteinte |
| 502 | Échec du moteur d’inférence |
| 503 | Modèle en maintenance ou fournisseur non configuré |
Prêt à effectuer votre premier appel ?
Créez une clé Todou et lancez votre première intégration.
Obtenir une clé