Whisperパイプラインのクイックスタート
標準的なOpenAI互換チャット補完APIを使用して、音声や画像パイプラインに無検閲テキストモデルを統合します。このガイドでは、リクエストの送信、ストリーミングの処理、後処理タスク用のコンテキストウィンドウの管理に関する重要な手順を解説します。
前提条件
開始する前に、有効なアカウントとAPI キーを準備してください。API キーを取得ページで、メールアドレスとパスワードのみを使用してサインアップしてください。キーは直ちに発行されます。7日間有効な無料トライアルクレジット$0.50を受け取れます。クレジットカードは不要です。本番環境では、暗号通貨(USDTまたはUSDC)で$10からチャージしてください。料金体系はシンプルです:入力トークン1Mあたり$0.25、出力トークン1Mあたり$1.00です。クレジットは期限切れになりません。
Base URL: https://api.whisperapis.com/v1。このエンドポイントは、すべてのOpenAI互換クライアントと互換性があります。Base URLの設定と、認証ヘッダーへのAPIキーの提供のみが必要です。基本的なHTTPリクエストには特別なSDKは必要ありません。
クライアントの初期化
ほとんどの開発者は公式のOpenAI SDKまたは互換ライブラリを使用します。クライアントを初期化する際は、Base URLを当社のものに向けてください。これにより、すべてのリクエストがOpenAIのサーバーではなく、当社の無検閲モデルにルーティングされます。モデルIDは常にuncensoredです。
環境変数OPENAI_API_KEYがダッシュボードからのキーに設定されていることを確認してください。異なる言語やライブラリを使用している場合は、カスタムBase URLをサポートしているか確認してください。SDKはJSONシリアライゼーションとヘッダーの注入を処理するため、パイプラインスクリプトの定型コードを削減できます。
チャット補完のリクエスト送信
パイプラインの出力を洗練させるために、標準的なチャット補完リクエストを送信します。例えば、音声文字起こしから構造化されたJSONを抽出したり、コンテンツフィルタなしで画像のキャプションを生成したりします。
エンドポイントはPOST /v1/chat/completionsです。モデルID、メッセージ配列、および無検閲の動作を定義するためのシステムプロンプト(オプション)を含めてください。
curl https://api.whisperapis.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Write a blunt product review of a cheap VPN."}]
}'当社のモデルは高コンテキストデータをよく処理し、合計で最大100,000トークンをサポートします。これは、単一のパスで長い文字起こしや詳細な画像記述を処理するのに理想的です。
ストリーミングレスポンス
リアルタイムのポストプロセスやインタラクティブなパイプラインには、ストリーミングを有効にしてください。リクエストでstreamパラメータをtrueに設定してください。APIは単一のJSONオブジェクトの代わりにServer-Sent Events (SSE)を返します。
到着するたびにdeltaフィールドを解析します。これにより、詳細なスクリプトの生成やノイズの多いOCR結果からの長いテキストブロックの抽出など、大きな出力に対する知覚されるレイテンシが削減されます。ストリーミング形式は標準的なOpenAI SDKのストリーミングハンドラと互換性があります。
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)クライアントが部分的なチャンクを正しく処理することを確認してください。ストリームがfinish_reasonがstopまたはlengthで終了した時点で、デルタを累積して完全なテキストレスポンスを再構築してください。
ツール呼び出しサポート
当社の無検閲モデルは関数呼び出しをサポートしており、パイプライン用の構造化出力を定義できます。tools配列にJSONスキーマ定義を含めてツールを定義してください。
モデルはレスポンスにツール呼び出しを返し、これを実行して会話のコンテキストを更新できます。これは、音声文字起こしから日付、名前、座標などの特定のデータポイントを構造化されていないテキストから抽出する場合に有用です。
from openai import OpenAI
client = OpenAI(base_url="https://api.whisperapis.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)ツール呼び出しを後続のメッセージでAPIに渡してください。モデルは結果に基づいて出力を洗練します。これにより、チャットインターフェースから離れることなく複雑なマルチステップ推論が可能になります。誤ったJSONレスポンスを避けるために、スキーマを厳密に保ってください。
制限、エラー、コンテキスト
中断を避けるために使用状況を監視してください。APIはキーごとに1分あたり300リクエストの制限を適用します。これを超えると、429のレート制限エラーが発生します。クライアントで指数関数的バックオフを実装してください。
一般的なエラー:
401: 無効または期限切れのAPIキー。ダッシュボードからキーを再生成してください。402: クレジット不足。処理を続行するにはアカウントにチャージしてください。429: レート制限超過。リクエスト頻度を減らすか、タスクをバッチ処理してください。
コンテキストウィンドウ:モデルは、プロンプトとcompletionを合わせて100,000トークンまでサポートします。入力がこれを超える場合は、古いメッセージを切り捨てるかデータを分割してください。リクエストボディは8 MBに制限されています。信頼性の高いパフォーマンスを得るために、ペイロードがこれらの制約内に収まることを確認してください。
Node.js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.whisperapis.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);API 仕様
購入前に確認できるよう、API の実際の制限と機能をすべてまとめました。
| 項目 | 内容 |
|---|---|
| 形式 | OpenAI 互換:どの OpenAI SDK でも base URL とキーを変えるだけで動作 |
| モデル ID | uncensored |
| エンドポイント | POST /v1/chat/completions · GET /v1/models |
| 認証 | Authorization: Bearer YOUR_KEY |
| Base URL | https://api.whisperapis.com/v1 |
| 最大出力 | 100,000 トークンのウィンドウの残りまで。max_tokens は任意(個別の上限なし) |
| ストリーミング | 対応 — SSE、最後のチャンクにトークン使用量 |
| JSON モード | response_format: {"type": "json_object"} |
| パラメータ | temperature、top_p、stop、seed、presence_penalty、frequency_penalty |
| 関数呼び出し | 対応 — tools、tool_choice。応答に tool_calls(ストリーミングでも)、結果は role: tool で返送 |
| コンテキスト長 | 100,000 トークン(入力+出力) |
| リクエストサイズ | 最大 8 MB |
| レート制限 | キーごとに毎分 300 リクエスト |
| 同時実行 | キーごとに同時 8 リクエストまで |
| レスポンスヘッダー | X-Request-Id、X-Balance-USD、X-RateLimit-Limit-Requests、X-RateLimit-Limit-Concurrency |
| チャージ | USDT(TRC20)または USDC(Base)、$10〜$500 の任意の整数額 |
| ボーナス | $50 以上で +5%、$100 以上で +10% |
| 課金 | 前払いクレジットから実使用量で課金。エラーと拒否は無料 |
| 無料トライアル | $0.50、7 日間、カード不要 · トライアルキー: 同時2件、毎分60件。初回チャージ後に上限が8件・300件へ拡大 |
| 有効期限 | 購入クレジットは失効なし、サブスクなし |
| 料金 | 入力 100 万トークン $0.25 · 出力 100 万トークン $1.00 |
| キー | アカウントごとに有効なキーは 1 つ。新しいキーで旧キーは無効 |
| ログイン | Google またはメール+パスワード |
| コンテンツ | 成人向けコンテンツ可。未成年者を含む性的コンテンツは拒否 |
エラーコード
エラーは固定の type を持つ JSON で返ります。失敗・拒否されたリクエストは課金されません。
| コード | タイプ | 意味 |
|---|---|---|
400 | bad_request | JSON 不正、メッセージ空、パラメータ誤り、またはコンテキスト超過 |
401 | missing_key · invalid_key · key_revoked | キーなし・誤り・新しいキーに置換済み |
402 | no_credit | 残高ゼロ — チャージすれば即再開 |
403 | content_blocked | 未成年者を含む性的コンテンツ — 拒否、課金なし |
404 | not_found | 不明なエンドポイント |
413 | request_too_large | 本文が 8 MB 超 |
429 | rate_limited · concurrency | 毎分 300 回または同時 8 件を超過 — 待って再試行 |
503 | upstream_busy | モデル混雑 — 数秒後に再試行 |
質問と回答
コンテキストウィンドウのサイズは?
モデルは100,000トークンのコンテキストウィンドウをサポートしており、これにはプロンプトとcompletionの両方が含まれます。これにより、単一のリクエストで大規模なトランスクリプトや詳細な記述を処理できます。
このAPIは画像やオーディオを生成しますか?
いいえ。これはテキスト専用のチャット補完APIです。音声認識や画像生成などの他のモダリティからのテキスト出力を後処理するために設計されています。音声、画像、または動画は生成しません。
ストリーミングエラーをどう処理すればよいですか?
ストリーミングレスポンスはSSEイベントを返します。エラーが発生した場合、ストリームは通常、最終チャンクのerrorフィールドにエラーメッセージを含めて終了します。クライアントが接続の切断を適切に処理し、必要に応じて再試行することを確認してください。
キーはフォーム 1 つで手に入ります
アカウントを作成し、キーをコピーし、Base URLを変更します。これがセットアップのすべてです。