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