Aller au contenu
TukaiDevelopers

Rechercher dans la documentation

Console
Sommaire de la documentation

Exemples

Migrer une intégration du SDK OpenAI

Les trois lignes à changer pour faire passer un code du SDK OpenAI sur l'API Tukai, et une vérification gratuite que la migration est prête.

Vérifié le 3 octobre 2026Version MarkdownSignaler une erreur sur cette page

Ce que fait la recette : elle part d'un appel standard du SDK OpenAI et montre la version Tukai. Pour un appel de texte, trois lignes changent : l'URL de base, la clé et l'identifiant du modèle.

Version vérifiée : openai 7.27.0 pour Node.js, le 3 octobre 2026, avec la vérification ci-dessous.

Avant

avant.mjs
// Intégration de départ, telle qu'on la trouve chez OpenAI. Ne s'exécute pas contre Tukai.
import OpenAI from "openai";

const client = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });

const reponse = await client.chat.completions.create({
  model: process.env.OPENAI_MODEL, // un identifiant OpenAI
  max_tokens: 100,
  messages: [
    {
      role: "user",
      content: "Résume en une phrase : la réunion est déplacée à jeudi 10 h.",
    },
  ],
});

console.log(reponse.choices[0].message.content);

Après

apres.mjs
// La même intégration, sur Tukai. Trois lignes changent ; elles sont marquées.
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: process.env.TUKAI_BASE_URL ?? "https://chat.tuk-ai.com/v1", // changé : URL de base Tukai
  apiKey: process.env.TUKAI_API_KEY, //                                   changé : clé tuk_sk_
});

const { data, response } = await client.chat.completions
  .create({
    model: process.env.TUKAI_MODELE ?? "chat-aion-labs-aion-3-0-mini", // changé : identifiant Tukai
    max_tokens: 100,
    messages: [
      {
        role: "user",
        content: "Résume en une phrase : la réunion est déplacée à jeudi 10 h.",
      },
    ],
  })
  .withResponse();

console.log(data.choices[0].message.content);
console.log(`x-request-id : ${response.headers.get("x-request-id")}`);

Vérifier sans payer

Ce script envoie la requête avec une clé volontairement invalide. Une erreur 401 lue par le SDK prouve que l'URL, le chemin et la lecture des erreurs sont corrects ; rien n'est généré ni facturé.

verifier.mjs
// Vérification gratuite de la migration : envoie la requête de apres.mjs avec une clé
// VOLONTAIREMENT invalide. Une réponse 401 prouve que l'URL de base, le chemin et la lecture
// des erreurs par le SDK sont corrects, sans générer ni payer quoi que ce soit.
import OpenAI from "openai";

const URL_DE_BASE = process.env.TUKAI_BASE_URL ?? "https://chat.tuk-ai.com/v1";
const client = new OpenAI({
  baseURL: URL_DE_BASE,
  apiKey: "tuk_sk_INVALIDE",
  maxRetries: 0,
});

try {
  await client.chat.completions.create({
    model: "chat-aion-labs-aion-3-0-mini",
    max_tokens: 1,
    messages: [{ role: "user", content: "test" }],
  });
  console.error("✗ Réponse inattendue : une clé invalide a été acceptée.");
  process.exit(1);
} catch (erreur) {
  if (erreur instanceof OpenAI.AuthenticationError) {
    console.log(
      `✓ ${URL_DE_BASE}/chat/completions joint, erreur 401 lue par le SDK (x-request-id : ${erreur.requestID ?? "absent"})`,
    );
    console.log(
      "  La migration est prête : remplacez la clé de test par votre TUKAI_API_KEY.",
    );
  } else {
    console.error(
      `✗ Erreur inattendue : ${erreur.status ?? ""} ${erreur.message}`,
    );
    process.exit(1);
  }
}

Résultat attendu :

✓ https://chat.tuk-ai.com/v1/chat/completions joint, erreur 401 lue par le SDK (x-request-id : …)
  La migration est prête : remplacez la clé de test par votre TUKAI_API_KEY.

Ce qui ne migre pas

Changer ces trois lignes ne suffit pas si votre code utilise :

  • des images ou de l'audio en entrée (ignorés par Tukai) ;
  • des outils (tools) : la réponse Tukai ne contient pas tool_calls ;
  • finish_reason pour détecter une réponse coupée (toujours stop) ;
  • la Responses API, les embeddings, les fichiers ou les lots (absents).

Le détail est dans Compatibilité. Pour le SDK Anthropic, l'URL de base est l'hôte seul (https://chat.tuk-ai.com) et la clé passe dans apiKey.