Início rápido: Primeira Solicitação
Come apontando seu cliente para nossa URL base. Use https://api.grockapi.com/v1 e defina sua chave de API no cabeçalho. O identificador do modelo é sempre uncensored. Isso funciona com qualquer SDK compatível com OpenAI.
A autenticação requer um token Bearer válido. Passe-o como Authorization: Bearer YOUR_API_KEY. Se a chave estiver ausente ou inválida, você receberá um erro 401 imediatamente.
Faça sua primeira chamada para testar a conectividade. O corpo da solicitação deve incluir o nome do modelo e uma matriz de mensagens.
Parâmetros e modos suportados
Configure o comportamento de geração usando parâmetros padrão. Você pode ajustar a temperatura para criatividade ou top_p para amostragem por núcleo. Use o parâmetro stop para definir sequências específicas que interrompem a geração.
Defina seed para saídas determinísticas durante a depuração. Penalidades de presença e frequência ajudam a reduzir a repetição. O modelo suporta até 100.000 tokens na janela de contexto.
A saída máxima é tipicamente de 16.000 tokens por solicitação. Deixe max_tokens não definido para usar o limite de saída padrão de 2.048. Erros e recusas não consomem crédito.
Streaming e Uso de Tokens
Ative o streaming definindo stream: true. A API retorna fragmentos via Eventos Enviados pelo Servidor (SSE). Cada fragmento contém conteúdo parcial e metadados.
Os detalhes de uso de tokens aparecem no último chunk. Isso permite que você rastreie os custos com precisão em tempo real. O último chunk inclui as estatísticas completas de uso para a solicitação.
Lide com o fechamento do stream corretamente para evitar vazamentos de recursos. Processe sempre o último chunk para obter dados de faturamento precisos.
Function Calling (Tools)
Defina ferramentas no corpo da solicitação. Especifique nomes de ferramentas, descrições e esquemas de parâmetros. O modelo responde com chamadas de ferramentas quando apropriado.
Use o parâmetro tool_choice para forçar ou permitir comportamentos específicos. Você pode defini-lo como auto, required ou IDs de ferramentas específicas.
Processe chamadas de ferramenta na lógica do seu aplicativo. Envie a saída da ferramenta de volta ao modelo para continuar a conversa. Isso permite fluxos de trabalho complexos em várias etapas sem análise externa.
Modo JSON e Restrições
Força saída estruturada definindo response_format para json_object. O modelo retornará JSON sem blocos de código markdown.
Este modo é ideal para analisar dados em aplicações. Certifique-se de que seu schema seja claro para melhorar a precisidade. Estruturas JSON inválidas podem causar erros de análise no seu cliente.
Combine o modo JSON com controles de temperatura para formatação consistente. Use sequências de parada para evitar caracteres finais após a chave de fechamento.
Limites de Taxa e Cotas
Cada chave de API está limitada a 300 solicitações por minuto. Você pode executar até 8 solicitações simultâneas. O tamanho máximo do corpo da solicitação é de 8 MB.
Um erro 429 indica que você excedeu o limite de taxa. Aguarde antes de tentar novamente ou reduza sua concorrência. Existe uma chave ativa por conta; gerar uma nova chave substitui a antiga.
Monitore seu uso por meio do último chunk de streaming ou dos cabeçalhos de resposta. Erros como 402 (sem crédito) ou 401 (chave inválida) são gratuitos e não contam contra sua cota.
cURL
curl https://api.grockapi.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "calculate the sum of two and three"}]
}'Python
from openai import OpenAI
client = OpenAI(base_url="https://api.grockapi.com/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)Node.js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.grockapi.com/v1", apiKey: process.env.API_KEY });
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);Streaming
stream = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Tell the story in second person."}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)