Documentation API

Maestro API est une API d'inférence IA compatible OpenAI, hébergée en France. Changez simplement l'URL de base — votre code existant fonctionne sans modification.

💡 Base URL : https://api.maestrostudio.fr/v1

Authentification

Toutes les requêtes doivent inclure votre clé API dans le header Authorization.

Authorization: Bearer sk-votre-cle-api

Générez vos clés API depuis votre Dashboard → Clés API.

Démarrage rapide

Python
JavaScript
cURL
PHP
# pip install openai from openai import OpenAI client = OpenAI( base_url="https://api.maestrostudio.fr/v1", api_key="sk-votre-cle-api" ) response = client.chat.completions.create( model="qwen2.5-14b", messages=[ {"role": "user", "content": "Bonjour !"} ] ) print(response.choices[0].message.content)
// npm install openai import OpenAI from 'openai'; const client = new OpenAI({ baseURL: 'https://api.maestrostudio.fr/v1', apiKey: 'sk-votre-cle-api', }); const response = await client.chat.completions.create({ model: 'qwen2.5-14b', messages: [{role: 'user', content: 'Bonjour !'}], }); console.log(response.choices[0].message.content);
curl https://api.maestrostudio.fr/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer sk-votre-cle-api" \ -d '{ "model": "qwen2.5-14b", "messages": [{"role": "user", "content": "Bonjour !"}] }'
// composer require openai-php/client $client = OpenAI::factory() ->withBaseUri('https://api.maestrostudio.fr/v1') ->withApiKey('sk-votre-cle-api') ->make(); $response = $client->chat()->create([ 'model' => 'qwen2.5-14b', 'messages' => [['role' => 'user', 'content' => 'Bonjour !']], ]); echo $response->choices[0]->message->content;

Chat Completions

Endpoint principal pour interagir avec les modèles de langage.

POST /v1/chat/completions Générer une réponse

Paramètres

ParamètreTypeRequisDescription
modelstringRequisIdentifiant du modèle. Ex: qwen2.5-14b
messagesarrayRequisListe des messages de la conversation
max_tokensintegerOptionnelNombre maximum de tokens en sortie (défaut: 1024)
temperaturefloatOptionnelCréativité de la réponse, entre 0 et 2 (défaut: 0.7)
streambooleanOptionnelActiver le streaming des tokens
systemstringOptionnelPrompt système pour définir le comportement

Exemple avec système prompt

response = client.chat.completions.create( model="qwen2.5-14b", messages=[ {"role": "system", "content": "Tu es un assistant médical expert."}, {"role": "user", "content": "Quels sont les symptômes de la dépression ?"} ], temperature=0.3, max_tokens=512 )

Streaming

with client.chat.completions.stream( model="qwen2.5-14b", messages=[{"role": "user", "content": "Raconte une histoire"}] ) as stream: for text in stream.text_stream: print(text, end="", flush=True)

Modèles disponibles

GET /v1/models Lister les modèles
ID ModèleTypeContexteDescription
qwen2.5-14bLLM4096 tokensModèle principal — polyvalent, français, code
whisper-large-v3-turboAudioTranscription audio multilingue

Transcription Audio

Convertit un fichier audio en texte.

POST /audio/asr Transcrire un fichier audio

Paramètres (multipart/form-data)

ParamètreTypeRequisDescription
audio_filefileRequisFichier audio (MP3, WAV, M4A, OGG, FLAC)
languagestringOptionnelCode langue ISO (ex: fr, en). Détection auto si absent.
outputstringOptionneltxt ou json (défaut: txt)

Exemple Python

import requests with open("consultation.mp3", "rb") as f: response = requests.post( "https://api.maestrostudio.fr/audio/asr", headers={"Authorization": "Bearer sk-votre-cle"}, files={"audio_file": f}, data={"language": "fr", "output": "json"} ) data = response.json() print(data["text"])

Exemple cURL

curl https://api.maestrostudio.fr/audio/asr \ -H "Authorization: Bearer sk-votre-cle" \ -F "audio_file=@consultation.mp3" \ -F "language=fr" \ -F "output=txt"

Migration depuis OpenAI

La migration est immédiate — changez uniquement l'URL de base et la clé API.

- base_url = "https://api.openai.com/v1" - api_key = "sk-openai-..." + base_url = "https://api.maestrostudio.fr/v1" + api_key = "sk-votre-cle-maestro"
⚠️ Remplacez les noms de modèles OpenAI (gpt-4, gpt-3.5-turbo) par qwen2.5-14b.

Gestion des erreurs

CodeSignificationSolution
401Clé API invalide ou manquanteVérifiez votre clé dans le Dashboard
402Crédits insuffisantsRechargez vos crédits dans le Dashboard
429Trop de requêtesRéduisez la fréquence de vos appels
500Erreur serveurRéessayez dans quelques secondes

Limites & quotas

PlanTokens/minuteRequêtes/minuteContexte max
Free50 000304096 tokens
Starter200 000604096 tokens
Pro500 0001204096 tokens
BusinessIllimité6004096 tokens