Rychlý start: První požadavek
Začněte tím, že nasměrujete svého klienta na naši základní URL. Použijte https://api.grockapi.com/v1 a nastavte svůj API klíč v hlavičce. Identifikátor modelu je vždy uncensored. To funguje s jakýmkoli OpenAI-kompatibilním SDK.
Ověření vyžaduje platný Bearer token. Předložte jej jako Authorization: Bearer YOUR_API_KEY. Pokud chybí nebo je neplatný klíč, ihned obdržíte chybu 401.
Odešlete svůj první požadavek k otestování připojení. Tělo požadavku musí obsahovat název modelu a pole messages.
Podporované parametry a režimy
Nastavte chování generování pomocí standardních parametrů. Můžete upravit teplotu pro kreativitu nebo top_p pro nucleus sampling. Použijte parametr stop pro definování konkrétních sekvencí, které zastaví generování.
Nastavte seed pro deterministické výstupy při ladění. Penalty pro přítomnost a frekvenci pomáhají snížit opakování. Model podporuje až 100 000 tokenů v kontextovém okně.
Maximální výstup je omezen na 16 000 tokenů na požadavek. Nechte max_tokens nenastavené pro použití výchozího limitu 2 048. Chyby a odmítnutí nespotřebovávají kredit.
Streamování a využití tokenů
Povolte streamování nastavením stream: true. API vrací chunky prostřednictvím Server-Sent Events (SSE). Každý chunk obsahuje částečný obsah a metadata.
Podrobnosti o použití tokenů se objeví v posledním chunku. To vám umožňuje přesně sledovat náklady v reálném čase. Poslední chunk obsahuje kompletní statistiky použití pro požadavek.
Správně zpracujte ukončení proudu, abyste předešli únikům zdrojů. Vždy zpracujte poslední část, abyste získali přesná data o fakturaci.
Volání funkcí (Nástroje)
Definujte nástroje v těle žádosti. Uveďte názvy nástrojů, popisy a schémata parametrů. Model vrací volání nástrojů, když je to vhodné.
Použijte parametr tool_choice k vynucení nebo povolení specifických chování. Můžete nastavit hodnotu auto, required nebo specifické ID nástroje.
Zpracovávejte volání nástrojů ve vaší aplikační logice. Pošlete výstup nástroje zpět do modelu, abyste pokračovali v konverzaci. To umožňuje složité vícekrokové pracovní postupy bez externího parsování.
Režim JSON a omezení
Vynucení strukturovaného výstupu nastavením response_format na json_object. Model vrátí formát JSON bez obalovacích značek markdown.
Tento režim je ideální pro parsování dat do aplikací. Ujistěte se, že je vaše schéma jasné, abyste zlepšili přesnost. Neplatné struktury JSON mohou způsobit chyby parsování na straně klienta.
Kombinujte režim JSON s ovládáním teploty pro konzistentní formátování. Použijte sekvence stop k zabránění přilepených znaků po uzavírací složen závorce.
Limity rychlosti a kvóty
Každý API klíč je omezen na 300 požadavků za minutu. Můžete spustit až 8 souběžných požadavků. Maximální velikost těla požadavku je 8 MB.
Chyba 429 znamená, že jste překročili limit rychlosti. Počkejte před opakováním nebo snižte souběžnost. Pro účet existuje jeden aktivní klíč; vygenerování nového klíče nahradí ten starý.
Sledujte své využití prostřednictvím posledního streamovaného bloku nebo hlaviček odpovědi. Chyby jako 402 (nedostatek kreditu) nebo 401 (neplatný klíč) jsou zdarma a nezapočítávají se do vašeho kvótu.
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);Streamování
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)