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-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.

POSThttps://www.aisplice.store/v1/chat/completionsBearer API keyRespuesta directa
API_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 Sol",
  "messages": [
    {
      "role": "user",
      "content": "Say hello."
    }
  ],
  "stream": false
}'

Todos los parámetros

Todos los campos que acepta este modelo, con los valores permitidos.

model
stringobligatorio

Identificador exacto del modelo para esta solicitud.

messages
arrayopcional

Required on /v1/chat/completions.

input
string|arrayopcional

Required on /v1/responses.

Ciclo de vida de la respuesta

Ejemplo de respuesta exitosa para este endpoint.

Respuesta
{
  "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.

Buscar otro error →

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

terminal — live
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."
      }
    ]
  }'
streaming.py
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ó

Si un cliente se desconecta a mitad del stream, el gateway registra el uso parcial que realmente se envió — solo se te factura lo que se entregó.
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.

tools.sh
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.

response.json
{
  "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.

round-trip.sh
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.

vision.sh
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.

base64.py
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.