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.
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).
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.
POST /chat/completionsC'est le format OpenAI Chat Completions classique : un tableau de messages, une réponse du modèle.
| Champ | Type | Rôle |
|---|---|---|
model | string | Mets toujours "auto" : LumyAI choisit tout seul le meilleur modèle disponible et bascule si l'un tombe en panne. |
messages | array | { "role": "user" | "assistant" | "system", "content": "…" } — l'historique complet de ta conversation. |
stream | bool | true pour recevoir la réponse en flux (voir § 4). |
temperature, max_tokens | number | Optionnels, comme chez OpenAI (plafonnés par ton plan). |
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." }
]
}'
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)
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);
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" } }
]
}]
}
"stream": trueAvec 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 || "");
}
GET /modelsGET /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.
POST /imagePOST /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 }
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 :
| Plan | Requêtes API / minute | Requêtes API / jour |
|---|---|---|
| Free | 10 / min | 300 / jour |
| Premium et au-delà | 30 à 60 / min | 2 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.
OPENAI_API_KEY marche directement avec les bibliothèques OpenAI).Les erreurs suivent le format OpenAI : { "error": { "message": "…", "code": "…" } }.
| Code HTTP | Quand | Que faire |
|---|---|---|
401 | Clé manquante, invalide ou révoquée | Vérifie la clé, crées-en une nouvelle |
403 | Compte suspendu, route interdite à une clé API | — |
429 | Quota 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 / 503 | Panne momentanée des modèles en amont | Réessaie dans quelques secondes (LumyAI bascule tout seul) |