APIクイックスタート:クライアントを当社の無制限モデルに接続
このクイックスタートでは、OpenAI互換クライアントを当社のUncensoredテキストモデルに接続する方法を示します。ベースURL、モデルID、APIキーの3つが必要です。
認証とベースURL
すべてのリクエストは https://doesgrokhaveanapi.com/v1 およびキーを Authorization ヘッダーをベアラートークンとして使用します。APIキーの取得ページからキーをコピーしてください。サインアップ時に一度表示され、いつでも置き換え可能です。
簡潔に:既存のクライアントを移行する際に変更される値はベースURLとキーの2つだけです。
curl https://api.doesgrokhaveanapi.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "What is the current API endpoint for the model?"}]
}'
Chat Completionsエンドポイント
送信 POST /v1/chat/completions メッセージのリストと共に使用します。レスポンスはOpenAIチャット完了レスポンスと同じ形状であるため、既存のパーサーはそのまま動作します。
- ロールを使用する
userプロンプト用およびsystem手順に従ってください。 - からの回答を読む
choices[0].message.content. - トークン数は以下で返されます。
usage、これが課金の対象となります。
from openai import OpenAI
client = OpenAI(base_url="https://api.doesgrokhaveanapi.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)
対応モデル: 'uncensored'
モデルフィールドを以下に設定 uncensored。これはサービス上の唯一のモデルIDであるため、選択の余地はありません。 GET /v1/models 返すことで、キーが機能することを確認する簡単な方法になります。
モデルは当社の独自サーバー上で実行されるオープンウェイトモデルです。合法的な大人向け、フィクション、または論争的なリクエストに対して拒否しません。唯一のハード制限は未成年者を含む性的コンテンツです。
ストリーミングと関数呼び出し
追加 stream: true サーバー送信イベントとしてトークンを受け取ります。最後のチャンクには使用状況の数字が含まれるため、追加の呼び出しなしでリクエストごとのコストをログに記録できます。
Function Callingは標準的な tools および tool_choice フィールド。各関数をJSONスキーマで定義し、 tool_calls レスポンスの配列に保持します。
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)
パラメータ: Temperature, Top P, Stop
サポートされているサンプリングパラメータは以下の通りです。 temperature, top_p, stop, seed, presence_penalty および frequency_penalty。コードや抽出には低いtemperatureを、フィクションには高いtemperatureを使用してください。
設定しない場合 max_tokens、デフォルトの出力制限は2,048トークンです。1リクエストあたりのハード制限は16,000トークンです。
JSONモードとレスポンス形式
設定 response_format に { 'type': 'json_object' } 機械可読な出力が必要な場合。プロンプトでJSONをリクエストしてください。モデルは指示とフォーマットの両方を従います。
- システムメッセージで必要なフィールドを記述してください。
- 例は短く、2〜3つのキーにしてください。
- 保存する前にコード内で結果を検証してください。
レートリミットとエラー処理
各キーは1分あたり300リクエスト、同時に8リクエストを送信できます。本文が8 MBを超えるリクエストは拒否されます。401はキーが間違っていることを、402はクレジットが枯渇したことを、429はレート制限に達したことを意味します:待機し、バックオフで再試行してください。
エラーと拒否には課金されません。長いスレッドでは100,000トークンのコンテキストウィンドウに注意してください:プロンプトと completion の合計がカウントされます。
Node.js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.doesgrokhaveanapi.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);よくある質問
どのベースURLを使用すべきですか?
ベースURLとして https://doesgrokhaveanapi.com/v1 を使用します。ベースURLとキーを変更するだけで、OpenAI互換のSDKはこれを受け入れ、コード内の他の変更は不要です。
どのモデルIDを送信すべきですか?
無制限を送信。これはサービス上の唯一のモデルです。GET /v1/modelsを呼び出してIDを確認し、より大きなジョブを実行する前にキーが有効であることを確認してください。
なぜリクエストが402を返すのですか?
402レスポンスは、アカウントのプリペイドクレジットが枯渇したことを意味します。TRC20上のUSDTまたはBase上のUSDCで最低$20からチャージし、次のリクエストが正常に処理されます。失敗したリクエストは課金されません。
API キーはあと一歩です
登録、トークンをコピー、エンドポイントを更新。これだけですべてのプロセスが完了します。