régie

Services compatibles OpenAI

Brancher un fournisseur peu connu sans écrire de code — openai-compatible et API personnalisée.

Le catalogue n'a pas d'adapter par fournisseur, et n'en a pas besoin : dans Réglages → Providers IA, la carte Autre fournisseur mène aux deux adapters génériques.

Format OpenAI : openai-compatible

C'est le cas de la plupart des services à clé API. Leur documentation parle d'« OpenAI-compatible API » et donne une URL de base qui finit souvent par /v1.

À l'ajout, choisissez le service dans la liste (nom et URL se pré-remplissent, le lien de sa doc s'affiche) ou « Autre service (URL personnalisée) », collez la clé, puis Découvrir les modèles : régie lit GET /models et classe chaque modèle en texte, image ou embedding, d'après les métadonnées quand le service en donne (type chez Together, architecture.output_modalities chez OpenRouter), sinon d'après l'identifiant (flux, sdxl, stable-diffusion, dall-e, imagen, recraft, ideogram… → image ; embed, bge, e5… → embedding).

ServiceURL de baseCapacités
DeepInfrahttps://api.deepinfra.com/v1/openaitexte, image, embedding
Together AIhttps://api.together.xyz/v1texte, image, embedding
OpenRouterhttps://openrouter.ai/api/v1texte
Groqhttps://api.groq.com/openai/v1texte
Fireworks AIhttps://api.fireworks.ai/inference/v1texte, embedding
Mistral AIhttps://api.mistral.ai/v1texte, embedding
DeepSeekhttps://api.deepseek.com/v1texte
xAI (Grok)https://api.x.ai/v1texte
Novita AIhttps://api.novita.ai/v3/openaitexte (URL à vérifier)
Hyperbolichttps://api.hyperbolic.xyz/v1texte
SiliconFlowhttps://api.siliconflow.com/v1 (Chine : .cn)texte, embedding
Cerebrashttps://api.cerebras.ai/v1texte
Nebius AI Studiohttps://api.studio.nebius.com/v1texte, image (URL à vérifier)
Perplexityhttps://api.perplexity.aitexte (modèles à ajouter à la main)
Moonshot AIhttps://api.moonshot.ai/v1texte
Alibaba Cloud (Qwen)https://dashscope-intl.aliyuncs.com/compatible-mode/v1texte, embedding
LM Studio (local)http://localhost:1234/v1texte
vLLM (local)http://localhost:8000/v1texte
llama.cpp server (local)http://localhost:8080/v1texte

La clé est facultative (les serveurs locaux n'en demandent pas). La liste vit dans packages/providers/src/adapters/openai.ts (meta.endpoints) : ajouter un service, c'est une ligne.

Les images passent par POST /images/generations. Un service dont l'API d'images a sa propre forme (Fireworks, Hyperbolic, SiliconFlow) se branche en texte ici et en images par l'API personnalisée. Replicate et fal, qui hébergent des milliers de modèles, ont leurs propres adapters.

API personnalisée : custom-http

Pour un service qui a son propre format, en une seule requête synchrone. L'URL de base est alors l'endpoint complet. La clé, facultative, part en Authorization: Bearer … ; d'autres en-têtes se déclarent dans En-têtes. On décrit le corps avec des variables, et l'endroit où lire le résultat :

{
  "model": "flux-dev",
  "prompt": "{{prompt}}",
  "negative_prompt": "{{negative}}",
  "width": "{{width}}",
  "height": "{{height}}",
  "seed": "{{seed}}"
}

Chemin du résultat : images.0.url pour une réponse { "images": [{ "url": "https://…" }] }. La valeur trouvée peut être une URL, une data URI ou du base64 brut (préciser alors le type, image/png).

Variables : {{prompt}}, {{negative}}, {{seed}}, {{width}}, {{height}}, {{aspect_ratio}}, {{duration}}, {{image}} (data URI de la première image d'entrée). En texte, le chemin désigne la chaîne à lire (choices.0.text, output…). Déclarez ensuite les modèles à la main.

Un service asynchrone (soumission puis sondage), des fichiers en multipart, une authentification signée : il faut alors écrire un adapter.

Modifier sur GitHub

Sur cette page