Construis avec un signal vivant.
01Introduction
Bienvenue dans la documentation de l'API Aura. Cette API te donne accès à un assistant IA polyvalent capable de converser, analyser des images, générer du contenu visuel, transcrire et synthétiser de la parole.
Que tu construises une application mobile, un chatbot web, un outil de productivité ou un agent automatisé — Aura fournit les briques essentielles pour intégrer l'intelligence artificielle en quelques lignes de code.
Conversation
Dialogue naturel avec mémoire sémantique et historique de session persistant.
Vision
Analyse et description détaillée d'images uploadées via multipart/form-data.
Génération d'image
Crée des images uniques à partir d'un prompt texte, avec dimensions personnalisables.
Audio
Transcription STT (speech-to-text) et synthèse TTS (text-to-speech) en flux direct.
Compatible OpenAI
Utilise ton SDK OpenAI préféré — change juste l'URL de base et la clé API.
Sécurisé
Authentification par clé API rotative, gestion de session et OAuth Google.
https://philbuilder-ai.fastapicloud.devToutes les requêtes doivent utiliser
HTTPS. Le HTTP pur est refusé.
02Connexion
Connecte-toi ou cree un compte pour generer et gerer tes cles API. Chaque cle est liee a ton compte et peut etre revoquee a tout moment.
Tes cles API
Chargement...
03Gestion des cles API
Les cles API sont ton passeport pour acceder a l'API Aura. Chaque cle est unique, liee a ton compte, et peut etre nommee pour identifier le projet ou l'environnement auquel elle est destinee.
Creer une cle
Connecte-toi ci-dessus, donne un nom a ta cle, puis clique sur Generer. La cle complete ne s'affiche qu'une seule fois — copie-la immediatement.
POST /api/v1/generer-cle
{"nom": "mon-projet"}
Utiliser une cle
Envoie ta cle dans le header X-API-Key pour les routes natives, ou Authorization: Bearer pour la compatibilite OpenAI.
X-API-Key: aura_sk_xxxxxxxx
Lister tes cles
Recupere la liste de tes cles actives avec leur nom et un apercu masque pour identifier chacune.
GET /api/v1/compte/mes-cles
Header: X-Session: <jeton>
Revoquer une cle
Si une cle est compromise ou obsolete, supprime-la depuis le tableau de bord. La revocation est immediate et irreversible.
DELETE /api/v1/compte/cles/<id>
Header: X-Session: <jeton>
Flux recommande pour les developpeurs
- Cree un compte sur ce portail ou via l'endpoint
/api/v1/compte/inscription - Genere une cle nommee selon ton environnement (ex:
aura-prod,aura-dev) - Stocke la cle dans des variables d'environnement cote serveur uniquement
- Appelle l'API depuis ton backend avec le header
X-API-Key - Rotation : regenere une nouvelle cle et revoque l'ancienne periodiquement
04Authentification API
Une fois ta cle generee, utilise l'un des deux styles d'authentification selon l'endpoint appele :
| Style | Header | Utilise par |
|---|---|---|
| Aura natif | X-API-Key: ta_cle | Toutes les routes /api/v1/* |
| Compatible OpenAI | Authorization: Bearer ta_cle | /v1/chat/completions |
05Premier appel
Voici comment faire ton premier appel a l'API Aura en trois langages. Remplace ta_cle_ici par ta cle API reelle.
curl -X POST https://philbuilder-ai.fastapicloud.dev/api/v1/causerie \
-H "Content-Type: application/json" \
-H "X-API-Key: ta_cle_ici" \
-d '{"message": "Bonjour Aura, qui es-tu ?"}'
import httpx
reponse = httpx.post(
"https://philbuilder-ai.fastapicloud.dev/api/v1/causerie",
headers={"X-API-Key": "ta_cle_ici"},
json={"message": "Bonjour Aura, qui es-tu ?"},
timeout=60.0,
)
print(reponse.json()["reponse"])
const res = await fetch("https://philbuilder-ai.fastapicloud.dev/api/v1/causerie", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-Key": "ta_cle_ici"
},
body: JSON.stringify({ message: "Bonjour Aura, qui es-tu ?" }),
});
const data = await res.json();
console.log(data.reponse);
package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
)
func main() {
payload := map[string]string{"message": "Bonjour Aura, qui es-tu ?"}
body, _ := json.Marshal(payload)
req, _ := http.NewRequest("POST",
"https://philbuilder-ai.fastapicloud.dev/api/v1/causerie",
bytes.NewBuffer(body))
req.Header.Set("Content-Type", "application/json")
req.Header.Set("X-API-Key", "ta_cle_ici")
client := &http.Client{}
resp, _ := client.Do(req)
// Traiter la reponse...
}
{"reponse": "..."} avec le message genere par Aura.
06Compatible OpenAI
Deja habitue au SDK OpenAI, Gemini ou Claude ? Change juste l'URL de base et utilise ta cle Aura. Aucune autre modification necessaire.
from openai import OpenAI
client = OpenAI(
base_url="https://philbuilder-ai.fastapicloud.dev/v1",
api_key="ta_cle_ici",
)
reponse = client.chat.completions.create(
model="aura",
messages=[{"role": "user", "content": "Bonjour Aura !"}],
stream=False,
)
print(reponse.choices[0].message.content)
Tu peux aussi utiliser le streaming (Server-Sent Events) :
for chunk in client.chat.completions.create(
model="aura",
messages=[{"role": "user", "content": "Raconte une histoire"}],
stream=True,
):
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")
07Reference des endpoints
POST/api/v1/causerie
Conversation avec memoire — Aura s'appuie sur sa memoire semantique et l'historique de session pour maintenir le contexte.
| Champ | Type | Requis | Description |
|---|---|---|---|
message | string | Oui | Le message de l'utilisateur. Max 8000 caracteres. |
session_id | string | Non | Identifiant de session pour garder le contexte entre plusieurs messages. |
system | string | Non | Instructions systeme personnalisees pour orienter le comportement. |
curl -X POST https://philbuilder-ai.fastapicloud.dev/api/v1/causerie \
-H "X-API-Key: ta_cle" \
-H "Content-Type: application/json" \
-d '{
"message": "Quel est le sujet de notre conversation precedente ?",
"session_id": "sess_abc123"
}'
POST/api/v1/vision/analyser
Analyse une image et renvoie une description detaillee ou repond a une question specifique sur son contenu.
| Champ | Type | Requis | Description |
|---|---|---|---|
image | fichier | Oui | Fichier image (JPG, PNG, WEBP). Format multipart/form-data. |
question | string | Non | Question personnalisee. Par defaut : "Decris cette image en detail." |
curl -X POST https://philbuilder-ai.fastapicloud.dev/api/v1/vision/analyser \ -H "X-API-Key: ta_cle" \ -F "image=@photo.jpg" \ -F "question=Quels objets vois-tu sur cette image ?"
POST/api/v1/image/generer
Genere une image a partir d'un prompt texte. Renvoie l'image directement au format image/png.
| Champ | Type | Requis | Description |
|---|---|---|---|
prompt | string | Oui | Description textuelle de l'image souhaitee. |
largeur | int | Non | Largeur en pixels. Par defaut : 1024. Max : 1792. |
hauteur | int | Non | Hauteur en pixels. Par defaut : 1024. Max : 1792. |
style | string | Non | Style visuel : realistic, anime, artistic, 3d. |
curl -X POST https://philbuilder-ai.fastapicloud.dev/api/v1/image/generer \
-H "X-API-Key: ta_cle" \
-H "Content-Type: application/json" \
-d '{
"prompt": "Un chat astronaute flottant dans l'espace, style realiste",
"largeur": 1024,
"hauteur": 1024,
"style": "realistic"
}' \
--output image.png
POST/api/v1/audio/transcrire
Transcrit un fichier audio (MP3, WAV, OGG, M4A) en texte. Supporte plusieurs langues avec detection automatique.
| Champ | Type | Requis | Description |
|---|---|---|---|
audio | fichier | Oui | Fichier audio. Format multipart/form-data. Max 25 Mo. |
langue | string | Non | Code langue ISO (ex: fr, en). Detection auto si absent. |
curl -X POST https://philbuilder-ai.fastapicloud.dev/api/v1/audio/transcrire \ -H "X-API-Key: ta_cle" \ -F "audio=@enregistrement.wav" \ -F "langue=fr"
POST/api/v1/audio/parler
Convertit un texte en audio. Renvoie le fichier directement au format audio/mpeg (MP3).
| Champ | Type | Requis | Description |
|---|---|---|---|
texte | string | Oui | Le texte a convertir en parole. Max 4000 caracteres. |
voix | string | Non | Identifiant de voix. Par defaut : aura-default. |
vitesse | float | Non | Vitesse de parole. 0.5 (lent) a 2.0 (rapide). Defaut : 1.0. |
curl -X POST https://philbuilder-ai.fastapicloud.dev/api/v1/audio/parler \
-H "X-API-Key: ta_cle" \
-H "Content-Type: application/json" \
-d '{"texte": "Bonjour, je suis Aura. Comment puis-je t aider ?"}' \
--output voix.mp3
POST/v1/chat/completions
Format standard compatible OpenAI. Authentification via Authorization: Bearer. Supporte le streaming SSE.
| Champ | Type | Requis | Description |
|---|---|---|---|
messages | array | Oui | Tableau de messages {"role": "user"|"assistant", "content": "..."} |
model | string | Oui | Utilise aura comme identifiant de modele. |
stream | bool | Non | Reponse en flux (Server-Sent Events). Defaut : false. |
temperature | float | Non | Creativite (0.0 a 2.0). Defaut : 0.7. |
max_tokens | int | Non | Tokens max en sortie. Defaut : 2000. Max : 4000. |
curl -X POST https://philbuilder-ai.fastapicloud.dev/v1/chat/completions \
-H "Authorization: Bearer ta_cle" \
-H "Content-Type: application/json" \
-d '{
"model": "aura",
"messages": [
{"role": "system", "content": "Tu es un expert en programmation."},
{"role": "user", "content": "Explique les closures en JavaScript"}
],
"temperature": 0.5,
"max_tokens": 1500
}'
08Limites & quotas
Les limites suivantes sont appliquees pour garantir la stabilite du service pour tous les utilisateurs :
| Ressource | Limite | Notes |
|---|---|---|
| Messages (entree) | 8000 caracteres | Comptes apres normalisation Unicode. |
| Reponses (sortie) | 2000 tokens | ~1500 mots en francais. Extensible sur demande. |
| Fichiers audio | 25 Mo | Formats supportes : MP3, WAV, OGG, M4A. |
| Images (upload) | 10 Mo | JPG, PNG, WEBP. Max 4096x4096 px. |
| Images (generation) | 1792x1792 px | Ratio 1:1 recommande pour la meilleure qualite. |
| Requetes / minute | 60 | Par cle API. Contacte-nous pour augmenter. |
| Requetes / jour | 10 000 | Par compte. Usage raisonnable demande. |
09Codes d'erreur
| Code | Signification | Action recommandee |
|---|---|---|
400 | Requete invalide | Verifie le format JSON, les champs requis et les types de donnees. |
401 | Cle API manquante ou invalide | Verifie que le header X-API-Key ou Authorization est present et correct. |
403 | Quota depasse ou acces interdit | Attends la fenetre de rate limit ou contacte le support pour augmenter ton quota. |
413 | Fichier trop volumineux | Reduis la taille du fichier ou compresse-le avant envoi. |
429 | Trop de requetes | Ralentis le rythme d'appels ou mets en place un backoff exponentiel. |
500 | Erreur interne du serveur | Reessaie dans quelques secondes. Si persistant, contacte le support. |
502 | Erreur d'un service sous-jacent | Reessaie avec un backoff. Le service redemarre automatiquement. |
10SDK & integrations
Bien que l'API soit accessible directement via HTTP, voici quelques patterns d'integration recommandes :
Python — avec retry automatique
import httpx
from tenacity import retry, stop_after_attempt, wait_exponential
@retry(stop=stop_after_attempt(3), wait=wait_exponential(multiplier=1, min=2, max=10))
def ask_aura(message: str, api_key: str, session_id: str = None) -> str:
payload = {"message": message}
if session_id:
payload["session_id"] = session_id
r = httpx.post(
"https://philbuilder-ai.fastapicloud.dev/api/v1/causerie",
headers={"X-API-Key": api_key},
json=payload,
timeout=60.0,
)
r.raise_for_status()
return r.json()["reponse"]
Node.js — avec streaming OpenAI
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://philbuilder-ai.fastapicloud.dev/v1",
apiKey: process.env.AURA_API_KEY,
});
const stream = await client.chat.completions.create({
model: "aura",
messages: [{ role: "user", content: "Raconte-moi une histoire" }],
stream: true,
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content || "");
}