Por capacidad
Chat
Elige un modelo, copia la solicitud y lee la respuesta. Todos los modelos de chat aceptan la misma solicitud al estilo OpenAI.
#1. Elige un modelo
gpt-6.1-sol$0.20 entrada · $1.00 salida / 1MLímites y estado
5 modelos en línea para esto. Al cambiar de modelo, cambia el código de abajo.
#2. Copia la solicitud
Reemplaza YOUR_API_KEY por tu clave y ejecútala. Las opciones que se muestran son las que acepta este modelo.
https://www.aisplice.store/v1/chat/completionsBearer API keyRespuesta directaAPI_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-6.1 Sol",
"messages": [
{
"role": "user",
"content": "Say hello."
}
],
"stream": false
}'Todos los parámetros
Todos los campos que acepta este modelo, con los valores permitidos.
Todos los parámetros
Todos los campos que acepta este modelo, con los valores permitidos.
modelIdentificador exacto del modelo para esta solicitud.
messagesRequired on /v1/chat/completions.
inputRequired on /v1/responses.
Ciclo de vida de la respuesta
Ejemplo de respuesta exitosa para este endpoint.
Ciclo de vida de la respuesta
Ejemplo de respuesta exitosa para este endpoint.
{
"id": "chatcmpl_xxx",
"choices": [
{
"message": {
"role": "assistant",
"content": "Hello!"
}
}
]
}Todos los campos: /v1/chat/completions en la referencia de la API →
#3. Obtén el resultado
Una respuesta 200 incluye la respuesta del modelo en choices[0].message.content. Añade "stream": true para recibirla mientras se escribe.
#Si algo sale mal
- 400 con un nombre de campo: este modelo no acepta esa opción; usa los valores indicados en el paso 2.
- 402: el saldo no cubre esta solicitud; recarga en Billetera y reintenta.
- 429: reduce el ritmo y reintenta después de los segundos indicados en Retry-After.
- 503 model_not_found: el nombre del modelo es incorrecto o el modelo está fuera de línea; elige uno del paso 1.
StreamingMuestra la respuesta mientras se escribe.
#Cómo funciona
Define stream:true y el gateway retransmite los Server-Sent Events exactamente como los emite OpenAI: un frame data: por delta, cerrado con data: [DONE]. Cualquier cliente SSE o los SDK oficiales los consumen sin cambios.
#Ejecútalo
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="")#Facturación parcial
Paga solo lo que se transmitió
Llamadas a herramientasDeja que el modelo llame a tus propias funciones.
#Declarar herramientas
Envía el array tools estándar de OpenAI. El gateway lo reenvía a todos los modelos con herramientas — OpenAI, Claude, Gemini, DeepSeek — y normaliza la respuesta de vuelta a tool_calls. Se admiten deltas de llamadas a herramientas en streaming.
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"]
}
}
}]
}'#Gestionar tool_calls
Cuando el modelo decide llamar a una herramienta, la elección llega con finish_reason:"tool_calls" y un string arguments que tu código parsea y ejecuta.
{
"choices": [{
"finish_reason": "tool_calls",
"message": {
"role": "assistant",
"tool_calls": [{
"id": "call_abc123",
"type": "function",
"function": {
"name": "get_weather",
"arguments": "{\"city\": \"Tokyo\"}"
}
}]
}
}]
}#Devolver los resultados
Añade el turno del asistente y un mensaje role:"tool" por cada llamada (relacionado mediante tool_call_id) y vuelve a hacer la solicitud — el modelo incorpora el resultado a su respuesta final.
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\"}"}
]
}'Entrada de imagenEnvía imágenes junto con el texto.
#Enviar una imagen
Los modelos de chat con visión aceptan un array content que mezcla partes de texto y partes image_url. Usa una URL pública o una data URL en base64 incrustada — el campo es el mismo en ambos casos.
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"}}
]
}]
}'#Imágenes en Base64
Para archivos locales, incrusta una data URL: "url": "data:image/png;base64,<bytes>". Los tokens de imagen se facturan como tokens de entrada; el tamaño máximo de imagen y el número de imágenes por solicitud dependen del proveedor — reduce la resolución antes de enviar para ahorrar.
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)¿Sigues con el problema?
Envíanos el ID de solicitud o el mensaje de error y lo revisaremos.