Aller au contenu

Evanesca ouvre bientôt : cette page montre comment le chat fonctionnera.

Créer une chat completion

POST/chat/completions

Reçoit une conversation et renvoie la réponse du modèle, au format chat completions d'OpenAI : les SDK officiels fonctionnent tels quels. Streaming, appel d'outils et modèles de raisonnement plus bas.

Catalogue vérifié le 20 oct. 2026

BientôtOuverture prochaine : ce qui suit décrit le service tel qu'il fonctionnera.

URL du serveurhttps://evanesca.app/api/v1
POST/chat/completionsOuvre au lancement
AuthorizationBearer $EVANESCA_API_KEY
  • Authorizationstringrequis

    Bearer suivi de votre clé, qui commence par sk-eva-.

  • Content-Typestringrequis

    application/json : le corps est du JSON.

Corps de la requête

application/json
  • modelstringrequis

    Un identifiant du tableau des modèles, par exemple gemma-4-26b.

  • messagesarrayrequis

    La conversation, en objets {role, content} au format OpenAI : system, user, assistant — et tool pour le résultat d'un outil.

  • streamboolean

    true envoie la réponse en server-sent events (Streaming).

  • max_tokensinteger

    Plafond de tokens de la réponse. Sur un modèle de raisonnement, la réflexion compte dedans : omettez-le ou laissez au moins 1 000 tokens environ (pourquoi).

  • tools, tool_choicetableau · chaîne ou objet

    Appel de fonctions, au format OpenAI (quels modèles).

  • temperature, top_p, stop…divers

    Les paramètres d'échantillonnage d'OpenAI, transmis tels quels à l'opérateur.

Où l'appel tourne, ce qu'il coûte

Evanesca · au dossier

Exécuté
  • Mistral AI · Région UE de Mistral AImistral-large-4, mistral-small-4-119b
  • AKI.IO · Allemagnedeepseek-v4.1-flash, glm-5.3, gemma-4-26b
  • Scaleway · Paris, Franceqwen3.8-27b, deepseek-v4-flash, glm-5.2, qwen3.6-35b, qwen3.5-397b, gpt-oss-120b, qwen3-coder-30b, qwen3-235b, mistral-small-3.2, llama-3.3-70b, pixtral-12b
  • Infomaniak · Suisseapertus-v1.5-70b
L'opérateur garde

Mistral AI conserve les entrées et sorties de l'API pendant trente jours glissants pour surveiller les abus (politique de confidentialité de Mistral).

AKI.IO annonce que prompts, entrées et réponses générées sont traités en mémoire volatile, sans être journalisés, stockés ni analysés (AKI.IO) ; sa politique de confidentialité garde 90 jours les données d'usage — identifiant de requête, modèle, statut, horodatages, tokens — pour la facturation et la maintenance (politique de confidentialité d'AKI.IO).

Scaleway peut conserver et lire les requêtes qui provoquent des erreurs ou paraissent abusives, jusqu'à 14 jours (page confidentialité de Scaleway).

OVHcloud annonce ne garder que les données nécessaires à la facturation, « zero data retention » (OVHcloud AI Endpoints).

Infomaniak annonce que les requêtes ne sont ni enregistrées ni utilisées pour entraîner des modèles (Infomaniak AI Tools).

Coût
Au token, au prix du modèle, TVA comprise : 0,168 € à 3,024 € par million de tokens d'entrée, 0,336 € à 9,24 € par million de tokens de sortie — le raisonnement compte en sortie. Une question rapide (300 tokens en entrée, 400 en sortie) sur gemma-4-26b : environ 0,0004 € (tous les prix).
En-têtes de réponse
x-evanesca-operator: mistral | aki | scaleway | infomaniak
x-evanesca-location: mistral-eu-region | germany | paris | switzerland

Ce qui arrive à l'opérateur

Evanesca transmet le corps de la requête à l'opérateur qui sert le modèle : les paramètres d'OpenAI se comportent comme OpenAI les documente, et un paramètre qu'un opérateur ne prend pas en charge est ignoré par lui. Deux exceptions gardent le routage et la facturation chez Evanesca : les champs qui demanderaient à un routeur de choisir un autre modèle ou un autre hébergeur — models, provider, plugins — sont retirés, et un max_tokens au-dessus du plafond de l'opérateur pour ce modèle est ramené à ce plafond au lieu d'échouer.

La réponse est un objet chat.completion standard. Son champ model porte le nom que l'opérateur donne au modèle qui a répondu ; son bloc usage est ce que votre crédit paie, au token près.

Streaming

Avec "stream": true, la réponse arrive en server-sent events : des lignes data: qui portent des fragments au format OpenAI, jusqu'à data: [DONE]. C'est le format d'OpenAI, donc les fonctions de streaming des SDK marchent telles quelles.

Evanesca demande toujours l'usage à l'opérateur dans le flux (stream_options.include_usage) : le dernier fragment avant [DONE] porte l'objet usage et un tableau choices vide. C'est lui qui permet de facturer un appel en streaming au token près — attendez-vous à le voir si vous lisez le flux vous-même.

Appel d'outils

Envoyez tools et tool_choice au format OpenAI : Evanesca les transmet tels quels à l'opérateur, et les appels d'outils reviennent dans message.tool_calls (ou en fragments si vous streamez). Qu'un modèle en émette dépend du modèle et de son opérateur : le catalogue l'indique modèle par modèle, d'après un vrai appel plutôt qu'une fiche de modèle.

Tous les modèles du tableau renvoient des appels d'outils.

Dans GET /models, tool_calling vaut true ou false là où il a été mesuré, et manque là où il ne l'a pas été : filtrez dessus avant de déployer un agent.

Python · un outil
tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "Météo actuelle d'une ville",
        "parameters": {
            "type": "object",
            "properties": {"city": {"type": "string"}},
            "required": ["city"],
        },
    },
}]

answer = client.chat.completions.create(
    model="gemma-4-26b",
    messages=[{"role": "user", "content": "Quel temps fait-il à Lyon ?"}],
    tools=tools,
)
print(answer.choices[0].message.tool_calls)

Modèles de raisonnement

Ces modèles réfléchissent avant de répondre : deepseek-v4.1-flash, glm-5.3, qwen3.8-27b, deepseek-v4-flash, glm-5.2, qwen3.6-35b, qwen3.5-397b, gpt-oss-120b. Cette réflexion est faite de tokens de complétion : elle est facturée en sortie, au prix de sortie du modèle, avant le moindre texte visible. Sur tout modèle, les tokens de raisonnement que l'opérateur rapporte comptent comme de la sortie.

Laissez-leur de la marge. Avec un max_tokens bas, tout le budget peut partir dans la réflexion, et la réponse revient sans contenu, avec finish_reason "length" : elle paraît vide, mais rien n'a échoué. Omettez max_tokens, ou laissez au moins 1 000 tokens environ.

La réflexion prend aussi du temps : sur un long prompt, un modèle comme deepseek-v4.1-flash peut travailler plusieurs minutes avant que la réponse soit complète. Relevez le délai d'attente de votre client HTTP (le nœud OpenAI Chat Model de n8n, par exemple, coupe à 60 secondes par défaut) ou streamez la réponse.

Erreurs

StatuttypeSignification
400invalid_requestLe corps n'est pas du JSON valide, ou model ou messages manque.
401invalid_api_keyPas de clé, une clé malformée, ou une clé révoquée.
402insufficient_creditVotre crédit est à zéro ou en dessous. Rechargez pour continuer.
404model_not_foundIdentifiant inconnu, modèle qu'Evanesca ne sert pas, ou modèle d'embedding envoyé ici. GET /models liste les identifiants valides.
502upstream_errorL'opérateur est injoignable, a renvoyé une réponse illisible, ou a refusé le compte d'Evanesca elle-même. Votre clé n'est pas en cause : réessayez.

Les autres erreurs d'opérateur vous parviennent avec son statut et son corps, et Retry-After quand il en envoie un (erreurs).

curl https://evanesca.app/api/v1/chat/completions \
  -H "Authorization: Bearer $EVANESCA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemma-4-26b",
    "messages": [{"role": "user", "content": "Bonjour"}]
  }'
{
  "id": "chatcmpl-…",
  "object": "chat.completion",
  "model": "…",
  "choices": [
    {
      "index": 0,
      "message": { "role": "assistant", "content": "…" },
      "finish_reason": "stop"
    }
  ],
  "usage": { "prompt_tokens": 9, "completion_tokens": 12, "total_tokens": 21 }
}