Par capacité
Chat
Choisissez un modèle, copiez la requête, lisez la réponse. Tous les modèles de chat acceptent la même requête de style OpenAI.
#1. Choisir un modèle
gpt-5.6-luna$0.20 en entrée · $1.20 en sortie / 1MLimites et état
5 modèles en ligne pour cet usage. En changer modifie le code ci-dessous.
#2. Copier la requête
Remplacez YOUR_API_KEY par votre clé, puis exécutez la requête. Les options affichées sont celles que ce modèle accepte.
https://www.aisplice.store/v1/chat/completionsBearer API keyRéponse directeAPI_KEY="${API_KEY:-YOUR_API_KEY}"
curl --fail-with-body -sS https://www.aisplice.store/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "GPT-5.6 Luna",
"messages": [
{
"role": "user",
"content": "Say hello."
}
],
"stream": false
}'Tous les paramètres
Tous les champs acceptés par ce modèle, avec les valeurs autorisées.
Tous les paramètres
Tous les champs acceptés par ce modèle, avec les valeurs autorisées.
modelIdentifiant exact du modèle pour cette requête.
messagesRequired on /v1/chat/completions.
inputRequired on /v1/responses.
Cycle de la réponse
Exemple de réponse réussie pour cet endpoint.
Cycle de la réponse
Exemple de réponse réussie pour cet endpoint.
{
"id": "chatcmpl_xxx",
"choices": [
{
"message": {
"role": "assistant",
"content": "Hello!"
}
}
]
}Tous les champs : /v1/chat/completions dans la référence API →
#3. Obtenir le résultat
Une réponse 200 contient le texte dans choices[0].message.content. Ajoutez "stream": true pour le recevoir au fil de sa rédaction.
#En cas de problème
- 400 avec un nom de champ : cette option n'est pas acceptée par ce modèle ; utilisez les valeurs listées à l'étape 2.
- 402 : le solde ne couvre pas cette requête ; rechargez dans Portefeuille, puis réessayez.
- 429 : ralentissez et réessayez après le nombre de secondes indiqué par Retry-After.
- 503 model_not_found : le nom du modèle est incorrect ou le modèle est hors ligne ; choisissez-en un à l'étape 1.
StreamingAfficher la réponse pendant sa rédaction.
#Fonctionnement
Définissez stream:true et la passerelle relaie les Server-Sent Events exactement comme OpenAI les émet : une trame data: par delta, terminée par data: [DONE]. Tout client SSE comme les SDK officiels les consomment sans modification.
#Exécuter
curl -N https://www.aisplice.store/v1/chat/completions \
-H "Authorization: Bearer sk-YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.6-luna",
"stream": true,
"messages": [
{
"role": "user",
"content": "Write a haiku about the sea."
}
]
}'from openai import OpenAI
client = OpenAI(base_url="https://www.aisplice.store/v1", api_key="sk-YOUR_KEY")
stream = client.chat.completions.create(
model="gpt-5.6-luna",
stream=True,
messages=[{"role": "user", "content": "Write a haiku about the sea."}],
)
for chunk in stream:
print(chunk.choices[0].delta.content or "", end="")#Facturation partielle
Ne payez que ce qui a été diffusé
Appel d'outilsLaisser le modèle appeler vos propres fonctions.
#Déclarer les outils
Envoyez le tableau tools standard d'OpenAI. La passerelle le transmet à chaque modèle compatible avec les outils — OpenAI, Claude, Gemini, DeepSeek — et normalise la réponse en tool_calls. Les deltas d'appels d'outils en streaming sont pris en charge.
curl https://www.aisplice.store/v1/chat/completions \
-H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-d '{
"model": "gpt-5.6-luna",
"messages": [{"role":"user","content":"Weather in Tokyo?"}],
"tools": [{
"type": "function",
"function": {
"name": "get_weather",
"parameters": {
"type": "object",
"properties": {"city": {"type": "string"}},
"required": ["city"]
}
}
}]
}'#Gérer tool_calls
Lorsque le modèle décide d'appeler un outil, le choix arrive avec finish_reason:"tool_calls" et une chaîne arguments que votre code parse et exécute.
{
"choices": [{
"finish_reason": "tool_calls",
"message": {
"role": "assistant",
"tool_calls": [{
"id": "call_abc123",
"type": "function",
"function": {
"name": "get_weather",
"arguments": "{\"city\": \"Tokyo\"}"
}
}]
}
}]
}#Renvoyer les résultats
Ajoutez le tour de l'assistant et un message role:"tool" par appel (associé par tool_call_id), puis relancez la requête — le modèle intègre le résultat dans sa réponse finale.
curl https://www.aisplice.store/v1/chat/completions \
-H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-d '{
"model": "gpt-5.6-luna",
"messages": [
{"role":"user","content":"Weather in Tokyo?"},
{"role":"assistant","tool_calls":[{"id":"call_abc123","type":"function",
"function":{"name":"get_weather","arguments":"{\"city\":\"Tokyo\"}"}}]},
{"role":"tool","tool_call_id":"call_abc123","content":"{\"temp_c\": 22, \"sky\": \"clear\"}"}
]
}'Entrée d'imageEnvoyer des images en plus du texte.
#Envoyer une image
Les modèles de chat dotés de vision acceptent un tableau content mêlant parties text et parties image_url. Utilisez une URL publique ou une data URL base64 intégrée — le champ est le même dans les deux cas.
curl https://www.aisplice.store/v1/chat/completions \
-H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-d '{
"model": "gpt-5.6-luna",
"messages": [{
"role": "user",
"content": [
{"type": "text", "text": "What is in this image?"},
{"type": "image_url", "image_url": {"url": "https://example.com/cat.png"}}
]
}]
}'#Images en Base64
Pour les fichiers locaux, intégrez une data URL : "url": "data:image/png;base64,<bytes>". Les tokens d'image sont facturés comme des tokens d'entrée ; la taille maximale et le nombre d'images par requête dépendent du fournisseur — réduisez la résolution avant l'envoi pour économiser.
import base64
from openai import OpenAI
client = OpenAI(base_url="https://www.aisplice.store/v1", api_key="sk-YOUR_KEY")
b64 = base64.b64encode(open("photo.png", "rb").read()).decode()
resp = client.chat.completions.create(
model="gpt-5.6-luna",
messages=[{"role": "user", "content": [
{"type": "text", "text": "Describe this photo."},
{"type": "image_url", "image_url": {"url": f"data:image/png;base64,{b64}"}},
]}],
)
print(resp.choices[0].message.content)Toujours bloqué ?
Envoyez-nous l'ID de requête ou le message d'erreur, et nous examinerons le problème.