クイックスタート: 最初のリクエスト
ベースURLにクライアントをポイントします。 https://api.grockapi.com/v1 ヘッダーにAPIキーを設定します。モデル識別子は常に uncensoredこれは任意のOpenAI互換SDKと互換性があります。
認証には有効なBearerトークンが必要です。 Authorization: Bearer YOUR_API_KEY. キーが欠落しているか無効な場合、すぐに401エラーが発生します。
接続テストのために最初のAPI呼び出しを行ってください。リクエストボディにはモデル名とmessages配列を含める必要があります。
対応パラメータとモード
標準的なパラメータを使用して生成動作を設定します。創造性を高めるためにtemperatureを調整したり、nucleus samplingのためにtop_pを調整したりできます。stopパラメータを使用して、生成を停止する特定のシーケンスを定義します。
デバッグ中の決定論的な出力のためにseedを設定します。Presence penaltyとfrequency penaltyは反復を減らすのに役立ちます。モデルはコンテキストウィンドウで最大100,000トークンをサポートします。
最大出力は1リクエストあたり16,000トークンに制限されます。max_tokensを設定しない場合、デフォルトの出力制限は2,048になります。エラーや拒否はクレジットを消費しません。
ストリーミングとトークン使用量
streamをtrueに設定してストリーミングを有効にする stream: trueAPIはServer-Sent Events (SSE) 経由でチャンクを返します。各チャンクには部分的なコンテンツとメタデータが含まれます。
トークン使用の詳細は最終チャンクに表示されます。これにより、リアルタイムでコストを正確に追跡できます。最後のチャンクには、リクエストの完全な使用統計が含まれます。
リソースリークを避けるためにストリームの終了を適切に処理します。正確な課金データを得るために、最後のチャンクを必ず処理してください。
Function Calling (ツール)
リクエストボディにツールを定義します。ツール名、説明、パラメータスキーマを指定します。モデルは適切な場合にツール呼び出しを行います。
tool_choice パラメータを使用して特定の動作を強制または許可します。auto、required、または特定のツール ID に設定できます。
アプリケーションロジック内でツール呼び出しを処理します。会話を継続するためにツール出力をモデルに戻します。これにより、外部解析なしで複雑なマルチステップワークフローが実現します。
JSONモードと制約
response_formatを設定して構造化出力を強制 json_objectモデルはマークダウンコードブロックなしで有効なJSONを返します。
このモードはアプリケーションへのデータ解析に適しています。精度を向上させるためにスキーマを明確にしてください。無効なJSON構造はクライアント側の解析エラーを引き起こす可能性があります。
Temperature制御とJSONモードを組み合わせることで、一貫したフォーマティングを実現します。閉じ括弧の後の不要な文字の出力を防ぐためにストップシーケンスを使用します。
レート制限とクォータ
各APIキーは1分あたり300リクエストに制限されています。同時に最大8件のリクエストを並行して実行できます。リクエストボディの最大サイズは8 MBです。
429 エラーはレート制限を超えたことを示します。再試行する前に待機するか、並列度を減らしてください。アカウントごとにアクティブなキーは 1 つのみ存在し、新しいキーを生成すると古いキーが置き換えられます。
最終ストリーミングチャンクまたはレスポンスヘッダーを使用して使用状況を監視します。402(クレジットなし)や401(無効なキー)などのエラーは無料であり、クォータにはカウントされません。
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);ストリーミング
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)