認証とベースURLの設定
APIキーにより、チャット完了エンドポイントに即座にアクセスできます。ダッシュボードでGoogleまたはメール経由でキーを生成し、環境変数に貼り付けてください。ベースURLは https://api.cheapaiapikeys.com/v1 標準的なOpenAI SDKクライアントと互換性があります。
- 設定
OPENAI_API_KEY生成された文字列に追加します。 - オーバーライド
base_url当社のホストサーバーを指すようにします。 - 接続を確認するために呼び出す
GET /v1/models利用可能なモデルを一覧表示します。
curl https://api.cheapaiapikeys.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "List three common regex patterns for validating email addresses"}]
}'
最初のチャット完了リクエストを送信
標準のチャット完了構造を使用してテキスト入力を受け取り、生成されたテキストを受信します。単一の無制限モデルは、法的な成人向けまたは論争的なトピックに対して拒否することなくリクエストを処理します。パラメータを調整できます temperature および top_p ランダム性を制御します。
from openai import OpenAI
client = OpenAI(base_url="https://api.cheapaiapikeys.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)
ストリーミングを有効化し、SSEイベントを処理
設定することでリアルタイムトークン配信を有効にします stream: true リクエスト内。サーバーは逐次解析する必要があるServer-Sent Events (SSE) を返します。トークン使用詳細はストリームの最終チャンクに表示されます。このアプローチは、長い応答の知覚されるレイテンシを削減します。
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.cheapaiapikeys.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);
関数呼び出しとJSONモードを使用する
構造化出力または外部関数の実行を有効にするために、リクエストペイロードにツールを定義します。 response_format: {type: "json_object"} 厳格なJSON準拠を強制します。モデルは tool_choice 呼び出す関数の正確な制御用。これにより、アプリケーションロジックのための信頼性の高い解析が保証されます。
トークン制限と価格体系を理解する
料金は透明で、入力トークン100万トークンあたり$0.15、出力トークン100万トークンあたり$0.50です。エラーと拒否はクレジットを消費しません。コンテキストウィンドウは合計100,000トークンをサポートします。制限を超えるリクエストは429レート制限エラーを返します。ボディエラーを避けるために、ペイロードを8 MB未満に保ってください。
エラーとエッジケースの処理
よくあるエラーには、無効なキーによる401とクレジット不足による402が含まれます。429ステータスは、1分あたり300リクエストを超えたことを示します。レート制限後に再試行する場合は指数関数的バックオフを使用してください。 error objectはJSONレスポンスに含まれます。具体的な詳細はここにあります。返金は行われませんので、使用状況を注意深く監視してください。
ストリーミング
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)