Passez à une API compatible OpenAI avec un routage limité à l'UE

Diff de code dans une carte claire : une ligne de clé OpenAI supprimée, une URL de base et une clé Nodion ajoutées, avec une étiquette de région EU Central

En bref

  • Nodion AI Inference, sur https://api.nodion.ai/v1, suit le format de l'API OpenAI : pour les appels pris en charge, les SDK officiels d'OpenAI fonctionnent dès que vous changez l'URL de base, la clé d'API et l'identifiant du modèle.
  • L'API couvre les chat completions, les embeddings, le rerank, l'OCR, la transcription audio, la synthèse vocale, la génération d'images, les outils web et les décisions System One.
  • Chaque projet peut restreindre les régions autorisées à servir ses requêtes et activer la zero data retention dans l'onglet Settings d'AI Inference.
  • L'usage est facturé au token, ou à la page, à la seconde, au caractère, à l'image ou à l'appel (web_search aussi par page récupérée), sur un solde prépayé ; les modèles et les prix figurent sur AI Inference.

Si votre code appelle déjà l'API OpenAI, trois changements suffisent pour transférer vers Nodion AI Inference les appels pris en charge, comme les chat completions : l'URL de base, la clé d'API et l'identifiant du modèle. L'API sur https://api.nodion.ai/v1 suit le format d'OpenAI : les SDK officiels d'OpenAI pour Python et Node.js continuent donc de fonctionner. Avant de migrer d'autres appels, vérifiez que les endpoints et les fonctionnalités que vous utilisez sont pris en charge.

Nodion AI Inference est un service de Nodion GmbH, en Allemagne. Il est facturé au token sur un solde prépayé et garde les clés, l'usage et les paramètres de confidentialité dans le même projet que votre app. Certains modèles tournent chez Nodion, d'autres sont acheminés vers un fournisseur. Pour garder le traitement dans l'UE et exiger la zero data retention, définissez sur le projet une liste de régions autorisées limitée à l'UE et la politique zero data retention, comme expliqué ci-dessous.

Ce qu'il vous faut

  • Un compte Nodion et un projet. Ouvrez AI Inference dans ce projet.
  • Une clé d'inférence créée dans l'onglet Keys. Les clés d'inférence commencent par nodion_ai_ et ne s'affichent qu'une fois. Les clés de l'API de la plateforme Nodion ne fonctionnent pas ici.
  • Du crédit sur le solde prépayé. Rechargez-le par carte ou PayPal dans l'onglet Billing.

Option 1 : changez deux variables d'environnement

Les deux SDK d'OpenAI lisent l'URL de base et la clé dans l'environnement quand vous créez le client sans arguments. Si votre code appelle OpenAI() en Python ou new OpenAI() en Node.js, définissez ces deux variables, remplacez l'identifiant du modèle par celui d'un modèle Nodion et laissez le reste du code tel quel :

OPENAI_BASE_URL=https://api.nodion.ai/v1
OPENAI_API_KEY=nodion_ai_your_key

Option 2 : changez les paramètres dans le code

Si vous passez les paramètres dans le code, ajoutez l'URL de base et remplacez la clé. Python :

import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.nodion.ai/v1",
    api_key=os.environ["NODION_AI_KEY"],
)
reply = client.chat.completions.create(
    model="<model>",
    messages=[{"role": "user", "content": "Hello"}],
)
print(reply.choices[0].message.content)

Node.js :

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.nodion.ai/v1",
  apiKey: process.env.NODION_AI_KEY,
});
const reply = await client.chat.completions.create({
  model: "<model>",
  messages: [{ role: "user", content: "Hello" }],
});
console.log(reply.choices[0].message.content);

Le streaming, les appels d'outils (tool calls), le mode JSON et la sortie structurée utilisent les mêmes appels du SDK qu'avant, tant que le modèle les prend en charge.

Choisissez un modèle

Il ne reste qu'une chose à changer, la valeur de model, car Nodion utilise ses propres identifiants de modèle. Un seul appel les liste, et il ne demande pas de clé :

curl https://api.nodion.ai/v1/models

Chaque entrée contient un id à envoyer comme model, son kind (chat, embeddings ou rerank), la longueur de contexte et de sortie, le prix par token en USD et en EUR, et des supported_features comme tools, json_mode, structured_outputs ou reasoning. Le champ serving indique si les poids tournent chez Nodion (hosted) ou si la requête est transmise à un fournisseur (routed).

Les modèles d'OCR, de voix, d'image et d'outils ne figurent pas dans cette liste. Le catalogue complet avec les prix se trouve sur AI Inference et dans l'onglet Models du dashboard. Les modèles marqués Preview peuvent quitter le catalogue à bref délai.

Les endpoints disponibles

Voici les principaux endpoints sur api.nodion.ai/v1 ; la liste complète figure dans la référence de l'API.

EndpointRôleFacturé par
GET /v1/modelsListe les modèles de chat, d'embeddings et de rerankGratuit
POST /v1/chat/completionsChat, outils, sortie structuréeTokens d'entrée et de sortie
POST /v1/embeddingsEmbeddings vectorielsTokens d'entrée
POST /v1/rerankClasse des documents selon leur pertinence pour une requêteTokens d'entrée
POST /v1/systemoneSystem One : décisions typées avec probabilitésTokens d'entrée
POST /v1/ocrOCR de documents et d'imagesPages
POST /v1/audio/transcriptions, plus un WebSocket temps réelTranscription audio (speech-to-text)Secondes d'audio
POST /v1/audio/speechSynthèse vocale (text-to-speech)Caractères
/v1/audio/voicesListe, crée, lit et supprime des voix clonéesGratuit
POST /v1/images/generationsGénération d'imagesImages
POST /v1/tools/web_search, web_news, web_fetch, web_images, web_videos, web_places, web_maps, web_shopping, web_lensOutils webAppels ; web_search aussi par page récupérée

Ce qui fonctionne différemment

  • Longueur de sortie : sans max_tokens, la passerelle le fixe à la longueur de sortie maximale du modèle. Les valeurs plus élevées sont ramenées à ce maximum.
  • Usage en streaming : la passerelle active stream_options.include_usage, si bien que le dernier chunk contient normalement le nombre de tokens.
  • PDF : envoyez-les inline sous forme de bloc de contenu file avec une data URI en base64. Les 20 premières pages sont rendues en images : il faut donc un modèle qui accepte les images en entrée. Les références file_id sont refusées.
  • Images : la génération d'images renvoie uniquement du b64_json, pas d'URL.
  • Erreurs : l'enveloppe d'erreur d'OpenAI, avec 402 quand le solde ne couvre pas une requête et 429 quand une limite de clé est atteinte. Chaque réponse porte un en-tête X-Request-ID à communiquer au support.
  • Limites : par défaut, 300 requêtes et 2 000 000 de tokens par minute, et 10 requêtes simultanées par clé. Contactez le support si vous avez besoin de plus.

Confidentialité : zero data retention et régions par projet

L'onglet Settings d'AI Inference contrôle la façon dont les requêtes d'un projet sont traitées :

  • autoriser ou exclure des fournisseurs,
  • une liste facultative de régions autorisées, qui restreint les régions pouvant servir le projet,
  • des options de politique comme la zero data retention.

Les paramètres s'appliquent au projet et couvrent donc toutes ses clés. Si aucune route disponible pour un modèle n'y correspond, la requête échoue avec une erreur 503. Séparez les projets aux besoins de confidentialité différents, par exemple un pour les données clients et un pour les expérimentations internes.

Facturation : un solde prépayé, au token

Les dépenses d'IA sont prélevées sur un solde prépayé, distinct de la facture mensuelle de la plateforme. Vous le rechargez par carte ou PayPal dans l'onglet Billing, ou vous activez la recharge automatique.

  • Le chat est facturé sur les tokens d'entrée et de sortie au prix du modèle, et l'entrée en cache au prix du cache lorsque la route le remonte.
  • Les embeddings, le rerank et System One sont facturés sur les tokens d'entrée. L'OCR est facturé à la page, la transcription audio à la seconde d'audio, la synthèse vocale au caractère, les images à l'image et les outils web à l'appel, web_search étant en plus facturé pour chaque page qu'il récupère.
  • Avant un appel, le solde réserve un montant plafond correspondant à son coût maximal. Le montant final est ensuite calculé d'après l'usage mesuré, sans dépasser la réservation, et le reste est libéré.
  • Chaque clé peut avoir une limite de dépenses quotidienne, et vous pouvez fixer une limite de dépenses mensuelle dans l'onglet Billing.

Les prix par modèle figurent sur AI Inference, pas dans la grille tarifaire de la plateforme.

Prochaines étapes

  • Tous les endpoints avec exemples, limites et codes d'erreur : Référence de l'API IA.
  • Clés, solde et onglets du dashboard : documentation AI Inference.
  • Testez un modèle avant de migrer : l'onglet Playground exécute le chat et d'autres modes. Le trafic du Playground est mesuré comme n'importe quelle autre requête.
  • Vous voulez plutôt que votre agent de code gère des apps et des bases de données ? Pour cela, utilisez MCP avec une clé de plateforme, pas une clé d'inférence.

Questions fréquentes

Le SDK OpenAI fonctionne-t-il avec Nodion AI Inference ?

Oui. L'API suit le format d'OpenAI : pour les appels pris en charge, les SDK officiels Python et Node.js fonctionnent si vous réglez l'URL de base sur https://api.nodion.ai/v1 et utilisez une clé d'inférence et un identifiant de modèle Nodion. Vérifiez la prise en charge des endpoints et des fonctionnalités avant de migrer d'autres appels.

Comment changer l'URL de base du SDK OpenAI pour Python ?

Passez base_url="https://api.nodion.ai/v1" et votre clé à OpenAI(), ou définissez les variables d'environnement OPENAI_BASE_URL et OPENAI_API_KEY, que le SDK lit quand vous ne passez aucun argument.

Puis-je restreindre l'endroit où mes requêtes d'IA sont traitées ?

Oui, par projet. L'onglet Settings d'AI Inference propose une liste facultative de régions autorisées, des contrôles par fournisseur et une option zero data retention. Si aucune route disponible ne correspond à ces paramètres, la requête échoue avec une erreur 503.

Comment Nodion AI Inference est-il facturé ?

Sur un solde prépayé que vous rechargez par carte ou PayPal, distinct de la facture de la plateforme. Le chat est facturé par token d'entrée et de sortie au prix du modèle ; les autres endpoints facturent à la page, à la seconde d'audio, au caractère, à l'image ou à l'appel, et web_search aussi par page récupérée.

Offrez un cloud à votre agent.

Jusqu'à 15 € de crédit de bienvenue à l'inscription.

Continuer avec GitHub

ou par e-mail

Restez informé.

Les nouveautés du produit, sans spam. Désabonnez-vous à tout moment.