Documentation
Smart AIPI fournit des API compatibles OpenAI et Anthropic. Utilisez notre service avec n'importe quel SDK, outil ou application OpenAI ou Anthropic existant en changeant simplement la base URL. Aucun changement de code nécessaire.
Base URL OpenAI
https://api.smartaipi.com/v1
Base URL Anthropic
https://api.smartaipi.com
Outils CLI et MCP
Smart AIPI fournit deux packages npm pour aider les développeurs à travailler avec leurs comptes :
Installer les deux
npm install -g smart-aipi @smart-aipi/mcp
Installer séparément
npm install -g smart-aipi
npm install -g @smart-aipi/mcp
Authentification
Toutes les requêtes API nécessitent une API key. La même clé fonctionne avec les deux méthodes d'authentification :
Authorization: Bearer YOUR_API_KEY
x-api-key: YOUR_API_KEY
Guide de migration
La migration prend moins d'une minute. Notre API est 100 % compatible avec les endpoints OpenAI et Anthropic.
Depuis OpenAI
Obtenez votre API key Smart AIPI
Inscrivez-vous et créez une API key depuis votre dashboard.
Changer la base URL
Remplacez https://api.openai.com/v1 par https://api.smartaipi.com/v1
Mettez à jour votre API key
Utilisez votre clé Smart AIPI à la place de votre clé OpenAI. C'est tout !
Depuis Anthropic
Obtenez votre API key Smart AIPI
Inscrivez-vous et créez une API key depuis votre dashboard.
Changer la base URL
Remplacez https://api.anthropic.com par https://api.smartaipi.com
Mettez à jour votre API key
Utilisez votre clé Smart AIPI à la place de votre clé Anthropic. Vos noms de modèles Claude existants fonctionnent tels quels.
Votre code existant, vos SDK et vos applications utilisant l'Anthropic Messages API fonctionneront sans aucun changement de code. Les noms de modèles Claude (claude-opus-4-6, claude-sonnet-4-5-20250929, claude-haiku-4-5-20251001) sont automatiquement routés vers des modèles GPT-5.4 haute performance. Chaque réponse inclut un en-tête x-actual-model indiquant le vrai modèle backend pour une transparence totale.
Achèvements des discussions
Créez une chat completion pour les messages et le modèle fournis. C'est le principal endpoint pour interagir avec les modèles de langage.
Paramètres du corps de la requête
| Paramètre | Taper | Requis | Description |
|---|---|---|---|
| model | chaîne | Oui | ID du modèle à utiliser (ex. : "gpt-6-astra", "gpt-5.6-sol") |
| messages | tableau | Oui | Tableau d'objets message avec role et content |
| temperature | nombre | Non | Température d'échantillonnage (0-2). Plus élevée = plus aléatoire. Par défaut : 1 |
| max_tokens | entier | Non | Nombre maximal de tokens à générer dans la réponse |
| top_p | nombre | Non | Échantillonnage nucleus. Prend en compte les tokens avec une probabilité top_p. Par défaut : 1 |
| frequency_penalty | nombre | Non | Pénaliser les tokens selon leur fréquence (-2 à 2). Par défaut : 0 |
| presence_penalty | nombre | Non | Pénaliser les tokens selon leur présence (-2 à 2). Par défaut : 0 |
| stop | chaîne/tableau | Non | Séquences d'arrêt. Jusqu'à 4 séquences où la génération s'arrête. |
| stream | booléen | Non | Activer les réponses en streaming via SSE. Par défaut : false |
Rôles des messages
system- system - Définit le comportement/la personnalité de l'assistantuser- user - Messages de l'utilisateurassistant- assistant - Réponses précédentes de l'assistant
Exemples de code
from openai import OpenAI
client = OpenAI(
base_url="https://api.smartaipi.com/v1",
api_key="your-api-key"
)
response = client.chat.completions.create(
model="gpt-6-astra",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"}
],
temperature=0.7,
max_tokens=1000
)
print(response.choices[0].message.content)
Streaming
Activez le streaming pour recevoir les tokens au fur et à mesure de leur génération via les Server-Sent Events (SSE). Cela offre une meilleure expérience utilisateur pour les réponses longues.
Définissez "stream": true dans votre requête pour activer le streaming.
Exemple de streaming
from openai import OpenAI
client = OpenAI(
base_url="https://api.smartaipi.com/v1",
api_key="your-api-key"
)
# Enable streaming
stream = client.chat.completions.create(
model="gpt-6-astra",
messages=[{"role": "user", "content": "Write a poem"}],
stream=True
)
# Process chunks as they arrive
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")
Effort de reasoning
Contrôlez la profondeur du reasoning avec le paramètre reasoning_effort pour les modèles GPT-5.
Smart AIPI utilise par défaut reasoning.effort = "high" pour toutes les requêtes Responses API.
Après de nombreux tests, nous avons constaté que high est le meilleur effort de reasoning pour un usage pratique - il fournit une utilisation d'outils et une analyse approfondies et fiables sans le coût de latence de xhigh. Vous pouvez le remplacer en définissant explicitement l'effort de reasoning dans votre requête.
Smart AIPI utilise par défaut store = false pour toutes les requêtes Responses API et WebSocket.
L'API upstream exige store: false pour GPT-5.4 et les modèles plus récents. Si vous définissez explicitement store: true dans vos requêtes, vous recevrez une erreur "Store must be set to false". Supprimez-le ou définissez-le sur false.
Modèles pris en charge
API Responses
gpt-5.4, gpt-5.3, gpt-5.1, gpt-5 et toutes les variantes Codex
Chat Completions uniquement
gpt-5.4-nano — la prise en charge du reasoning n'est disponible que sur /v1/chat/completions .
Niveaux d'effort de reasoning
none- Aucun reasoning. Ignore complètement la réflexion.low- Reasoning minimal. Idéal pour les tâches simples.medium- Équilibre entre vitesse et profondeur.high- Analyse approfondie pour les problèmes complexes. (Par défaut sur Smart AIPI)xhigh- Extra élevé. Profondeur de reasoning maximale pour les problèmes les plus difficiles.
Mode rapide (traitement prioritaire)
Utilisez service_tier: "priority" pour un traitement prioritaire avec une latence plus faible. C'est ce qu'utilise la commande /fast dans Codex CLI. Cela ne change pas la profondeur de reasoning - vous obtenez la même qualité, plus rapidement.
Tarification : Le traitement prioritaire est facturé à 1,5x le tarif standard. Par exemple, la sortie GPT-5.4 coûte normalement 3,75 $/1M tokens - avec la priorité, elle coûte 5,625 $/1M tokens.
response = client.responses.create(
model="gpt-6-astra",
input="Refactor this function",
service_tier="priority" # priority processing, lower latency
)
API Chat Completions
response = client.chat.completions.create(
model="gpt-6-astra",
messages=[{"role": "user", "content": "Analyze this code for bugs..."}],
reasoning_effort="high" # or "xhigh" for maximum depth
)
API Responses
# Reasoning is set via the "reasoning" object
response = client.responses.create(
model="gpt-6-astra",
input=[{"role": "user", "content": "Refactor this function..."}],
reasoning={"effort": "high"} # defaults to "high" on Smart AIPI
)
Génération d'images
Générez des images à partir de prompts textuels à l'aide de notre endpoint de génération d'images.
/v1/images/variations ) ne sont pas encore prises en charge. Les modifications d'image sont disponibles via /v1/images/edits.
Paramètres du corps de la requête
| Paramètre | Taper | Description |
|---|---|---|
| prompt | chaîne | Description textuelle de l'image à générer (requis) |
| model | chaîne | "gpt-image-2.5-flare" (frontier), "gpt-image-2.5-sunburst" ou "gpt-image-2". Par défaut : "gpt-image-2.5-flare" |
| n | entier | Nombre d'images à générer (1-10). Par défaut : 1 |
| size | chaîne | "1024x1024", "1024x1792" ou "1792x1024". Par défaut : "1024x1024" |
| quality | chaîne | "standard" ou "hd". Par défaut : "standard" |
Modèles disponibles
gpt-image-2.5-flare- Modèle frontier, qualité maximale (par défaut)gpt-image-2.5-sunburst- Modification de précision et travail créatif haut de gamme (génération plus lente)gpt-image-latest- Alias pour gpt-image-2.5-flaregpt-image-2- Modèle phare de génération précédentegpt-image-1.5- Ancien modèle phare (prend en charge les arrière-plans transparents)gpt-image-1- Génération d'image en qualité complètegpt-image-1-mini- Plus rapide, images plus petites
Exemple
response = client.images.generate(
model="gpt-image-2.5-flare",
prompt="A futuristic city at sunset, cyberpunk style",
size="1024x1024",
n=1
)
# Response contains base64-encoded image
image_b64 = response.data[0].b64_json
# Save to file
import base64
with open("output.png", "wb") as f:
f.write(base64.b64decode(image_b64))
Modifications d'image
Modifiez des images existantes à l'aide d'un prompt textuel. Accepte à la fois JSON (chaîne base64) et multipart/form-data (upload de fichier), pour que les SDK OpenAI fonctionnent immédiatement.
Paramètres du corps de la requête
| Paramètre | Taper | Description |
|---|---|---|
| prompt | chaîne | Description textuelle de la modification souhaitée (requis) |
| image | chaîne | Image encodée en base64 à modifier (requis) |
| model | chaîne | "gpt-image-2.5-flare" (par défaut), "gpt-image-2.5-sunburst" ou "gpt-image-2" |
| n | entier | Nombre d'images modifiées à générer (1-10). Par défaut : 1 |
| size | chaîne | "1024x1024", "1024x1792" ou "1792x1024". Par défaut : "1024x1024" |
| quality | chaîne | "low", "medium", "high" ou "auto". Par défaut : "medium" |
image as an array of base64 strings (JSON) or as repeated image / image[] parts (multipart). Add a mask field alongside image to restrict edits to specific regions (white = edit, black = preserve). Works identically to the official OpenAI SDK.
Exemple
import base64
response = client.images.edit(
model="gpt-image-2.5-flare",
image=open("input.png", "rb"),
prompt="Change the background to a sunset beach",
size="1024x1024",
n=1
)
# Save the edited image
edited_b64 = response.data[0].b64_json
with open("edited.png", "wb") as f:
f.write(base64.b64decode(edited_b64))
Realtime API avec WebSocket
WebSockets sont une API largement prise en charge pour le transfert de données en temps réel, et un excellent choix pour se connecter à la Realtime API de Smart AIPI dans les applications serveur à serveur.
Dans une intégration serveur à serveur, votre système backend se connecte via WebSocket directement à la Realtime API. Utilisez un Touche API standard pour authentifier la connexion, car le token n'est disponible que sur votre serveur backend sécurisé.
Se connecter via WebSocket
Vous trouverez ci-dessous plusieurs exemples de connexion via WebSocket. En plus d'utiliser l'URL WebSocket, vous devrez transmettre un en-tête d'authentification avec votre API key.
import WebSocket from "ws";
const url = "wss://api.smartaipi.com/v1/responses";
const ws = new WebSocket(url, {
headers: {
Authorization: "Bearer " + process.env.SMARTAIPI_API_KEY,
},
});
ws.on("open", function open() {
console.log("Connected to server.");
// Send a response.create event
ws.send(JSON.stringify({
type: "response.create",
response: {
model: "gpt-6-astra",
store: false,
input: [{ role: "user", content: "Hello!" }],
stream: true,
},
}));
});
ws.on("message", function incoming(message) {
const event = JSON.parse(message.toString());
console.log(event.type, event);
});
Envoi et réception d'événements
Les sessions sont gérées à l'aide d'événements JSON envoyés par le client et le serveur via la connexion WebSocket. Encapsulez votre requête dans une enveloppe response.create :
| Événement | Direction | Description |
|---|---|---|
| response.create | Client | Envoyer une requête (encapsule votre modèle, votre entrée et vos paramètres) |
| response.created | Serveur | Session acceptée, traitement démarré |
| response.output_text.delta | Serveur | Bloc de texte en streaming |
| response.completed | Serveur | Événement terminal avec réponse complète et utilisation |
| response.failed | Serveur | Événement terminal indiquant une erreur |
"store": false dans l'enveloppe de réponse. La connexion persiste sur plusieurs tours - envoyez d'autres frames response.create sans vous reconnecter.
Lister les modèles
Récupérez la liste de tous les modèles disponibles. Utilisez cet endpoint pour découvrir dynamiquement quels modèles sont disponibles pour votre compte.
Format de réponse
{
"object": "list",
"data": [
{
"id": "gpt-6-astra",
"object": "model",
"created": 1700000000,
"owned_by": "smart-aipi"
},
{
"id": "gpt-5.3-codex",
"object": "model",
"created": 1700000000,
"owned_by": "smart-aipi"
},
// ... more models
]
}
Exemple
from openai import OpenAI
client = OpenAI(
base_url="https://api.smartaipi.com/v1",
api_key="your-api-key"
)
# List all available models
models = client.models.list()
for model in models.data:
print(model.id)
Modèles disponibles
Série GPT
- gpt-6-astra Dernier
- gpt-5.6-sol
- gpt-5.6-terra
- gpt-5.6-luna
- gpt-5.5
- gpt-5.4-pro
- gpt-5.4
- gpt-5.4-mini
- gpt-5.4-nano completions uniquement
Série Codex
- gpt-5.3-codex
- gpt-5.2-codex
- gpt-5.2
- gpt-5.1
API Messages d'Anthropic
Compatibilité complète avec l'Anthropic Messages API. Utilisez n'importe quel SDK Anthropic, Claude Code ou application parlant le protocole Anthropic - changez simplement la base URL.
Fonctionnalités prises en charge
- ✓ Streaming (protocole complet d'événements SSE Anthropic)
- ✓ Utilisation d'outils / appel de fonctions
- ✓ Messages système (formats chaîne et tableau)
- ✓ Entrées d'image (base64 et URL)
- ✓ Comptage des tokens (
/v1/messages/count_tokens) - ✓ Réflexion étendue / effort de reasoning
Exemples de code
from anthropic import Anthropic
client = Anthropic(
base_url="https://api.smartaipi.com",
api_key="your-api-key"
)
response = client.messages.create(
model="claude-sonnet-4-5-20250929",
max_tokens=1024,
messages=[
{"role": "user", "content": "Hello!"}
]
)
print(response.content[0].text)
Correspondance des modèles
Les noms de modèles Claude sont acceptés et automatiquement routés vers GPT-5.4 avec un effort de reasoning par niveaux. Chaque réponse inclut un en-tête x-actual-model indiquant le vrai modèle backend.
| Modèle Claude | Back-end | Raisonnement | Idéal pour |
|---|---|---|---|
| claude-opus-4-6 | gpt-5.4 | Élevé | Reasoning complexe, architecture |
| claude-sonnet-4-5-20250929 | gpt-5.4 | Moyen | Développement quotidien, qualité équilibrée |
| claude-haiku-4-5-20251001 | gpt-5.4 | Faible | Réponses rapides, tâches simples |
Claude Code
Utilisez Claude Code avec Smart AIPI comme backend. Utilisation complète des outils, streaming et capacités agentiques pris en charge.
Configuration automatique
npx smart-aipi claude
Cela configure ~/.claude/settings.json et ~/.claude.json automatiquement. Si Claude Code est déjà configuré avec un compte Anthropic, la configuration manuelle vous sera affichée au lieu d'écraser l'existant.
Configuration manuelle
Ajoutez à ~/.claude/settings.json:
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.smartaipi.com",
"ANTHROPIC_API_KEY": "sk-your-key",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "claude-haiku-4-5-20251001"
},
"model": "opus"
}
Ajoutez ensuite "hasCompletedOnboarding": true à ~/.claude.json pour ignorer l'assistant de configuration.
Après avoir modifié les paramètres, redémarrez Claude Code pour que les changements prennent effet. Si Claude Code est déjà connecté à un vrai compte Anthropic, définir ces variables d'environnement remplacera cette connexion - utilisez un .claude/settings.json au niveau du projet pour conserver les deux.
À quoi sert chaque paramètre
"model": "opus"— Modèle principal. Utilise claude-opus-4-6 (reasoning élevé) pour toutes les tâches principales.ANTHROPIC_DEFAULT_HAIKU_MODEL— Modèle d'arrière-plan. Utilise claude-haiku-4-5 (reasoning faible) pour les tâches rapides en arrière-plan comme l'indexation de fichiers.- Basculez entre les modèles en cours de session avec
/model sonnet,/model opus, ou/model haiku.
| Alias | Modèle Claude | Back-end | Raisonnement |
|---|---|---|---|
| opus | claude-opus-4-6 | gpt-5.4 | Élevé |
| sonnet | claude-sonnet-4-5-20250929 | gpt-5.4 | Moyen |
| haiku | claude-haiku-4-5-20251001 | gpt-5.4 | Faible |
OpenCode
Utilisez Smart AIPI comme backend OpenCode via le SDK compatible OpenAI.
Configuration du config
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"smart-aipi": {
"npm": "@ai-sdk/openai-compatible",
"name": "Smart AIPI",
"options": {
"baseURL": "https://api.smartaipi.com/v1",
"apiKey": "YOUR_API_KEY"
},
"models": {
"gpt-6-astra": {
"name": "GPT-6 Astra",
"reasoning": true,
"limit": { "context": 400000, "output": 128000 }
},
"gpt-5.3-codex": {
"name": "GPT-5.3 Codex",
"reasoning": true,
"limit": { "context": 400000, "output": 128000 }
},
"gpt-5.2-codex": {
"name": "GPT-5.2 Codex",
"reasoning": true,
"limit": { "context": 400000, "output": 128000 }
},
"gpt-5-codex": {
"name": "GPT-5 Codex",
"reasoning": true,
"limit": { "context": 400000, "output": 128000 }
}
}
}
},
"model": "smart-aipi/gpt-6-astra"
}
Codex CLI
Utilisez Smart AIPI avec l'outil Codex CLI d'OpenAI. Trois fichiers doivent être configurés.
Configuration automatique
npx smart-aipi codex
Cela configure automatiquement les trois fichiers ci-dessous. Après l'exécution, ajoutez model_reasoning_effort à votre configuration (voir étape 2).
Configuration manuelle
Configurez ces trois fichiers :
1. Clé API — ~/.codex/auth.json
{
"auth_mode": "apikey",
"OPENAI_API_KEY": "sk-your-key"
}
2. Modèle et reasoning — ~/.codex/config.toml
Incluez toujours model_reasoning_effort - requis pour les modèles personnalisés.
Sans cela, Codex utilise par défaut aucun reasoning et ne fonctionnera pas correctement. Utilisez "high" pour de meilleurs résultats.
model = "gpt-6-astra"
model_reasoning_effort = "high"
Niveaux de reasoning valides : low, medium, high (recommandé), xhigh.
3. Variables d'environnement — ~/.zshrc
# Smart AIPI
export OPENAI_API_KEY="sk-your-key"
export OPENAI_BASE_URL="https://api.smartaipi.com/v1"
Après avoir modifié le profil de votre shell, redémarrez votre terminal ou exécutez source ~/.zshrc pour que les changements prennent effet.
Ensuite, utilisez Codex normalement :
codex "fix this bug"
Guide de vitesse Codex WebSocket
Le mode WebSocket est généralement plus rapide pour les flux de code agentiques avec beaucoup d'appels d'outils. Au lieu de se reconnecter sans cesse via HTTP et de renvoyer des enveloppes de requête complètes, Codex conserve une connexion active unique et envoie des tours incrémentaux, ce qui réduit la surcharge de continuation.
Activer WebSockets dans Codex
Utilisez le feature flag WebSocket v2 dans ~/.codex/config.toml : ~/.codex/config.toml:
model = "gpt-6-astra"
model_reasoning_effort = "high"
[features]
responses_websockets_v2 = true
Équivalent CLI :
codex --enable responses_websockets_v2
Les anciennes builds peuvent utiliser le flag legacy :
[features]
responses_websockets = true
Comportement connu avec Homebrew
Sur certaines builds distribuées via Homebrew, les tours WebSocket peuvent se bloquer pendant les tâches longues puis repasser silencieusement sur HTTP. Nous l'avons observé surtout dans des boucles complexes d'appels d'outils. Recompiler à partir du code open source avec les correctifs ci-dessous a amélioré à la fois la stabilité et la vitesse.
Après la fusion : corriger le bug WebSocket open source
Après avoir fusionné votre branche, utilisez cette checklist pour vous assurer que le correctif est bien présent dans votre binaire local :
# 1) Pull merged main
git checkout main
git pull --ff-only
# 2) Confirm websocket flags exist
codex features list | rg responses_websockets
# 3) Build and install
cd codex-rs
cargo build --release
install -m 0755 target/release/codex ~/.local/bin/codex-beta
# 4) Run with websocket enabled
CODEX_RS_RESPONSES_WS=true \
OPENAI_BASE_URL=https://api.smartaipi.com/v1 \
~/.local/bin/codex-beta --enable responses_websockets_v2
Si vous devez appliquer le patch manuellement, vérifiez que ces correctifs au niveau du code sont présents :
# A) Build websocket request with IntoClientRequest so required headers are set
let mut request = url.as_str().into_client_request()?;
request.headers_mut().extend(headers);
# B) Ensure TLS roots are enabled for tokio-tungstenite in Cargo.toml
tokio-tungstenite = { version = "...", features = ["rustls-tls-native-roots"] }
Cursor et Cline
Utilisez Smart AIPI avec Cursor IDE ou l'extension VS Code Cline.
Cursor
- Ouvrez les paramètres de Cursor
- Allez dans l'onglet
Modelsonglet - Cliquez sur
+ Add Model - Définissez la Base URL :
https://api.smartaipi.com/v1 - Saisissez votre API key
- Modèle :
gpt-6-astra
Cline (VS Code)
- Ouvrez les paramètres Cline dans VS Code
- Sélectionnez
OpenAI Compatible - Base URL :
https://api.smartaipi.com/v1 - Saisissez votre API key
- Modèle :
gpt-6-astra
Chat
Utilisez Smart AIPI Chat sur chat.smartaipi.com. pour les workflows texte, image, vidéo, code, recherche et voix.
Fonctionnalités
- ✓ Chat — Conversations textuelles générales avec les modèles Smart AIPI.
- ✓ Images — Générez et modifiez des images à partir de prompts.
- ✓ Vidéo — Générez des vidéos à partir de texte ou d'images.
- ✓ Code — Assistance et édition de code dans le navigateur.
- ✓ Recherche — Utilisez la recherche web pour obtenir des réponses fondées.
- ✓ Voix — Parlez au modèle avec une entrée vocale et des réponses vocales.
Premiers pas
- 1. Ouvrez chat.smartaipi.com
- 2. Connectez-vous ou créez un compte.
- 3. Commencez à discuter avec du texte, des images, de la vidéo, du code, la recherche ou la voix.
Facturation : L'utilisation est facturée sur vos crédits Smart AIPI.
Testeur API
Testez l'API directement depuis votre navigateur :