API LumyAI — compatible OpenAI

Utilise LumyAI dans tes propres programmes, scripts et applications. Les bibliothèques OpenAI existantes (Python, JavaScript…) fonctionnent telles quelles : change l'URL et la clé, c'est tout.

1. Créer ta clé 2. Authentification 3. Discuter : /chat/completions 4. Réponses en flux (stream) 5. Modèles : /models 6. Générer une image : /image 7. Limites et quotas 8. Codes d'erreur

1. Créer ta clé

Ouvre l'application LumyAI (ou la version web), clique sur ton compte (en bas à gauche) → Clés API (développeurs) → Créer une clé. Donne-lui un nom (ex. mon-script) pour t'en souvenir.

La clé s'affiche une seule fois, au format kodo_… : copie-la immédiatement dans un gestionnaire de mots de passe. Tu peux créer jusqu'à 5 clés actives et révoquer chaque clé à tout moment (les programmes qui l'utilisent cessent de marcher immédiatement).

Bon à savoir : la clé donne accès à l'IA avec TON compte (tes quotas s'appliquent), mais elle ne permet jamais de se connecter à ton compte, d'accéder à l'administration ni de créer d'autres clés.

2. Authentification

Chaque appel porte ta clé dans l'en-tête Authorization: Bearer :

Authorization: Bearer kodo_votre_cle_ici

URL de base : https://lumyai.zyranex.fr/api/v1 — toutes les routes ci-dessous s'y rattachent.

3. Discuter : POST /chat/completions

C'est le format OpenAI Chat Completions classique : un tableau de messages, une réponse du modèle.

ChampTypeRôle
modelstringMets toujours "auto" : LumyAI choisit tout seul le meilleur modèle disponible et bascule si l'un tombe en panne.
messagesarray{ "role": "user" | "assistant" | "system", "content": "…" } — l'historique complet de ta conversation.
streambooltrue pour recevoir la réponse en flux (voir § 4).
temperature, max_tokensnumberOptionnels, comme chez OpenAI (plafonnés par ton plan).

Exemple curl

curl https://lumyai.zyranex.fr/api/v1/chat/completions \
  -H "Authorization: Bearer kodo_votre_cle_ici" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "auto",
    "messages": [
      { "role": "system", "content": "Tu réponds en français, de façon concise." },
      { "role": "user", "content": "Explique-moi la récursivité en deux phrases." }
    ]
  }'

Exemple Python (bibliothèque openai)

pip install openai
from openai import OpenAI

client = OpenAI(
    api_key="kodo_votre_cle_ici",
    base_url="https://lumyai.zyranex.fr/api/v1",
)

r = client.chat.completions.create(
    model="auto",
    messages=[{ "role": "user", "content": "Bonjour LumyAI !" }],
)
print(r.choices[0].message.content)

Exemple JavaScript

npm install openai
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: "kodo_votre_cle_ici",
  baseURL: "https://lumyai.zyranex.fr/api/v1",
});

const r = await client.chat.completions.create({
  model: "auto",
  messages: [{ role: "user", content: "Bonjour LumyAI !" }],
});
console.log(r.choices[0].message.content);

Images dans les messages

Les modèles qui savent lire les images acceptent le format image_url (URL publique ou data-URL) : l'IA lit le texte des captures d'écran, analyse graphiques et photos.

{
  "model": "auto",
  "messages": [{
    "role": "user",
    "content": [
      { "type": "text", "text": "Que lit-on sur cette capture d'écran ?" },
      { "type": "image_url", "image_url": { "url": "https://exemple.fr/capture.png" } }
    ]
  }]
}

4. Réponses en flux : "stream": true

Avec stream: true, la réponse arrive en SSE (Server-Sent Events), comme chez OpenAI : des petits morceaux de texte au fil de la génération. Les bibliothèques OpenAI gèrent ça nativement :

const flux = await client.chat.completions.create({
  model: "auto",
  messages: [{ role: "user", content: "Raconte-moi une blague" }],
  stream: true,
});

for await (const morceau of flux) {
  process.stdout.write(morceau.choices[0]?.delta?.content || "");
}

5. Modèles : GET /models

GET /api/v1/models — renvoie la liste des modèles que ta clé peut appeler. LumyAI cache les modèles derrière un identifiant unique : auto. C'est le seul que tu aies besoin de connaître : le serveur choisit en permanence les meilleurs modèles disponibles, teste les nouveaux et retire ceux qui tombent. Si un modèle a une panne, ta requête bascule toute seule sur le suivant — tu n'as rien à gérer.

6. Générer une image : POST /image

POST /api/v1/image — génère une image à partir d'une description. L'image est hébergée par LumyAI : l'URL renvoyée reste valable 90 jours, tu peux la partager telle quelle.

curl https://lumyai.zyranex.fr/api/v1/image \
  -H "Authorization: Bearer kodo_votre_cle_ici" \
  -H "Content-Type: application/json" \
  -d '{ "prompt": "un renard qui code devant un ordinateur, illustration plate", "width": 1024, "height": 1024 }'

# → { "url": "https://lumyai.zyranex.fr/img/renard-x1y2.jpg", "w": 1024, "h": 1024 }

7. Limites et quotas

Les appels API partagent les quotas normaux de ton compte (fenêtres de 5 heures et hebdomadaire, affichées dans l'application). Ils ont en plus des limites propres à l'API, par plan :

PlanRequêtes API / minuteRequêtes API / jour
Free10 / min300 / jour
Premium et au-delà30 à 60 / min2 000 à 10 000 / jour

Ces valeurs sont réglables par l'administrateur (panneau admin → Plans & quotas). En cas de dépassement, l'API renvoie 429 avec un message clair : attendez et réessayez.

Sécurité : maximum 5 clés actives par compte ; une clé ne donne jamais accès à l'administration ni à la gestion des clés ; chaque clé peut être révoquée indépendamment. Ne mets jamais ta clé dans du code public — utilise une variable d'environnement (OPENAI_API_KEY marche directement avec les bibliothèques OpenAI).

8. Codes d'erreur

Les erreurs suivent le format OpenAI : { "error": { "message": "…", "code": "…" } }.

Code HTTPQuandQue faire
401Clé manquante, invalide ou révoquéeVérifie la clé, crées-en une nouvelle
403Compte suspendu, route interdite à une clé API—
429Quota du compte épuisé (5 h / semaine) ou limite API (minute / jour)Attends la réinitialisation (le message indique quand) ou passe à un plan supérieur
502 / 503Panne momentanée des modèles en amontRéessaie dans quelques secondes (LumyAI bascule tout seul)

← Retour au site · Ouvrir LumyAI dans le navigateur