Hurtigstart: Første anmodning
Start med at pege din klient mod vores base URL. Brug https://api.grockapi.com/v1 og indstille din API-nøgle i headeren. Modelidentifikatoren er altid uncensored. Dette virker med ethvert OpenAI-kompatibelt SDK.
Autentificeringen kræver et gyldigt Bearer-token. Send det som Authorization: Bearer YOUR_API_KEY. Hvis nøglen mangler eller er ugyldig, modtager du straks en 401-fejl.
Lav dit første kald for at teste forbindelsen. Request body skal inkludere modelnavnet og et messages-array.
Understøttede parametre og tilstande
Konfigurér genereringsadfærd ved hjælp af standardparametre. Du kan justere temperaturen for kreativitet eller top_p til nucleus-sampling. Brug stop-parameteren til at definere specifikke sekvenser, der afslutter genereringen.
Indstil seed for deterministiske output under fejlfinding. Presence- og frequency-penalties hjælper med at reducere gentagelse. Modellen understøtter op til 100.000 tokens i kontekstvinduet.
Maks. output er begrænset til 16.000 tokens pr. anmodning. Lad max_tokens være uindstillet for at bruge standardgrænsen på 2.048. Fejl og afvisninger forbruger ikke kredit.
Streaming og Token-forbrug
Aktivér streaming ved at indstille stream: true. API'en returnerer chunks via Server-Sent Events (SSE). Hver chunk indeholder delvist indhold og metadata.
Tokenforbrugsdetaljer vises i den sidste chunk. Dette giver dig mulighed for at spore omkostninger præcist i realtid. Den sidste chunk indeholder de fulde forbrugsstatistikker for anmodningen.
Håndter stream-lukning korrekt for at undgå ressource-lækager. Behandel altid den sidste chunk for at få nøjagtige faktureringsdata.
Function Calling (Tools)
Definer værktøjer i request-body'et. Angiv værktøjsnavne, beskrivelser og parametres skemaer. Modellen svarer med værktøjskald, når det er passende.
Brug tool_choice-parametret til at tvinge eller tillade specifikke adfærdsmønstre. Du kan indstille det til auto, required eller specifikke værktøjs-IDs.
Behandle værktuetskald i din applikationslogik. Send værktugets output tilbage til modellen for at fortsætte samtalen. Dette muliggør komplekse multi-trin workflows uden ekstern parsing.
JSON-tilstand og begrænsninger
Tving struktureret output ved at indstille response_format til json_object. Modellen returnerer JSON uden markdown-kodeblokke.
Denne tilstand er ideel til at parse data til applikationer. Sørg for, at dit schema er klart for at forbedre nøjagtigheden. Ugyldige JSON-strukturer kan forårsage parse-fejl i din klient.
Kombinér JSON-tilstand med temperaturkontroller for konsistent formatering. Brug stopsekvenser til at forhindre efterfølgende tegn efter den lukende klamme.
Rate Limits og Kvoter
Hver API-nøgle er begrænset til 300 anmodninger i minuttet. Du kan køre op til 8 samtidige anmodninger på samme tid. Den maksimale størrelse for anmodningskroppen er 8 MB.
En 429-fejl indikerer, at du har overskredet hastighedsgrænsen. Vent før du prøver igen, eller reducer din konkurrens. Der findes én aktiv nøgle pr. konto; generering af en ny nøgle erstatter den gamle.
Overvåg din brug via den sidste streaming-chunk eller svarheaders. Fejl som 402 (manglende kredit) eller 401 (ugyldigt nøgle) er gratis og tælles ikke med i din kvota.
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)