Por recurso
Chat
Escolha um modelo, copie a requisição e leia a resposta. Todos os modelos de chat usam a mesma requisição no estilo OpenAI.
#1. Escolha um modelo
gpt-6.1-sol$0.20 entrada · $1.00 saída / 1MLimites e status
5 modelos online para isto. Trocar de modelo altera o código abaixo.
#2. Copie a requisição
Substitua YOUR_API_KEY pela sua chave e execute. As opções mostradas são as que este modelo aceita.
https://www.aisplice.store/v1/chat/completionsBearer API keyRetorno diretoAPI_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 os parâmetros
Todos os campos que este modelo aceita, com os valores permitidos.
Todos os parâmetros
Todos os campos que este modelo aceita, com os valores permitidos.
modelIdentificador exato do modelo para esta requisição.
messagesRequired on /v1/chat/completions.
inputRequired on /v1/responses.
Ciclo de vida da resposta
Exemplo de resposta bem-sucedida deste endpoint.
Ciclo de vida da resposta
Exemplo de resposta bem-sucedida deste endpoint.
{
"id": "chatcmpl_xxx",
"choices": [
{
"message": {
"role": "assistant",
"content": "Hello!"
}
}
]
}Todos os campos: /v1/chat/completions na referência da API →
#3. Obtenha o resultado
Uma resposta 200 traz o texto em choices[0].message.content. Adicione "stream": true para recebê-lo enquanto é escrito.
#Quando algo dá errado
- 400 com o nome de um campo: essa opção não é aceita por este modelo; use os valores listados na etapa 2.
- 402: o saldo não cobre esta requisição; recarregue em Carteira e tente novamente.
- 429: diminua o ritmo e tente novamente após os segundos de Retry-After.
- 503 model_not_found: o nome do modelo está errado ou o modelo está offline; escolha um na etapa 1.
StreamingMostre a resposta enquanto ela é escrita.
#Como funciona
Defina stream:true e o gateway repassa os Server-Sent Events exatamente como a OpenAI os emite: um frame data: por delta, encerrado por data: [DONE]. Qualquer cliente SSE ou os SDKs oficiais os consomem sem alteração.
#Executar
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="")#Cobrança parcial
Pague só pelo que foi transmitido
Chamada de ferramentasDeixe o modelo chamar as suas próprias funções.
#Declarar ferramentas
Envie o array tools padrão da OpenAI. O gateway o repassa a todo modelo com suporte a ferramentas — OpenAI, Claude, Gemini, DeepSeek — e normaliza a resposta de volta em tool_calls. Deltas de chamadas de ferramentas em streaming são suportados.
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"]
}
}
}]
}'#Tratar tool_calls
Quando o modelo decide chamar uma ferramenta, a escolha chega com finish_reason:"tool_calls" e uma string arguments que o seu código interpreta e executa.
{
"choices": [{
"finish_reason": "tool_calls",
"message": {
"role": "assistant",
"tool_calls": [{
"id": "call_abc123",
"type": "function",
"function": {
"name": "get_weather",
"arguments": "{\"city\": \"Tokyo\"}"
}
}]
}
}]
}#Devolver os resultados
Adicione o turno do assistente e uma mensagem role:"tool" por chamada (associada por tool_call_id) e faça a requisição de novo — o modelo incorpora o resultado na resposta 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 imagemEnvie imagens junto com o texto.
#Enviar uma imagem
Modelos de chat com visão recebem um array content que mistura partes de texto e partes image_url. Use uma URL pública ou uma data URL base64 inline — o campo é o mesmo nos dois 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"}}
]
}]
}'#Imagens em Base64
Para arquivos locais, use uma data URL inline: "url": "data:image/png;base64,<bytes>". Os tokens de imagem são cobrados como tokens de entrada; o tamanho máximo e a quantidade de imagens por requisição dependem do provedor — reduza a resolução antes de enviar para economizar.
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)Ainda com problemas?
Envie para nós o ID da requisição ou a mensagem de erro e vamos investigar.