Snabbstart: Första begäran
Börja med att peka din klient mot vår bas-URL. Använd https://api.grockapi.com/v1 och ställ in ditt API-nyckel i headern. Modellidentifieraren är alltid uncensored. Detta fungerar med vilken OpenAI-kompatibel SDK som helst.
Autentiseringen kräver en giltig Bearer-token. Skicka den som Authorization: Bearer YOUR_API_KEY. Om nyckeln saknas eller är ogiltig får du ett 401-fel omedelbart.
Gör ditt första anrop för att testa anslutning. Begärans kropp måste innehålla modellnamnet och en messages-array.
Stödda parametrar och lägen
Konfigurera genereringsbeteende med standardparametrar. Du kan justera temperaturen för kreativitet eller top_p för nucleus-sampling. Använd stop-parametern för att definiera specifika sekvenser som avbryter genereringen.
Ställ in seed för deterministiska utdata under felsökning. Presence- och frequency-penalty hjälper till att minska upprepning. Modellen stöder upp till 100 000 tokens i kontextfönstret.
Max output är vanligtvis begränsat till 16 000 tokens per begäran. Lämna max_tokens oangivet för att använda standardgränsen på 2 048. Fel och avslag förbrukar inte kredit.
Streaming och Tokenanvändning
Aktivera strömning genom att ställa in stream: true. API:et returnerar chunkar via Server-Sent Events (SSE). Varje chunk innehåller delvis innehåll och metadata.
Tokenanvändningsdetaljer visas i den sista delen. Detta gör att du kan spåra kostnader noggrant i realtid. Den sista delen innehåller hela användningsstatistiken för begäran.
Hantera strömavbrott korrekt för att undvika resursläckor. Bearbeta alltid den sista biten för att få korrekt faktureringsdata.
Function Calling (Tools)
Definiera verktyg i din begärans kropp. Ange verktnamn, beskrivningar och parameterscheman. Modellen svarar med verktsanrop när det är lämpligt.
Använd tool_choice-parametern för att tvinga eller tillåta specifika beteenden. Du kan ställa in det till auto, required eller specifika verktygs-ID:n.
Bearbetka verktygsanrop i din applikationslogik. Skicka verkets utdata tillbaka till modellen för att fortsätta samtalet. Detta möjliggar komplexa flerstegsarbetsflöden utan extern bearbetning.
JSON-läge och begränsningar
Tvinga strukturerad utdata genom att ställa in response_format till json_object. Modellen returnerar JSON utan markdown-kodblock.
Detta läge är idealiskt för att analysera data till applikationer. Se till att ditt schema är tydligt för att förbättra noggrannheten. Ogiltiga JSON-strukturer kan orsaka parserfel i din klient.
Kombinera JSON-läge med temperaturkontroller för konsekvent formatering. Använd stoppsekvenser för att förhindra efterföljande tecken efter den avslutande klamern.
Begränsningar för begäranderänta och kvoter
Varje API-nyckel är begränsad till 300 förfrågningar per minut. Du kan köra upp till 8 samtidiga förfrågningar. Den maximala storleken på förfrågningsbodyn är 8 MB.
Ett 429-fel indikerar att du har överskridit hastighetsbegränsningen. Vänta innan du försöker igen eller minska din koncurrent. En aktiv nyckel finns per konto; att generera en ny nyckel ersätter den gamla.
Övervaka din användning via den sista streamingchunken eller svarshuvuden. Fel som 402 (inget kredit) eller 401 (ogiltig nyckel) är gratis och räknas inte mot din kvot.
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);Strömning
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)