クライアント/pi
pi で Wokey API を使う
Wokey の API キーを取得し、pi の Base URL を Wokey に向けてから、curl リクエスト 1 回で接続を確認します。
更新日
API キーと Base URL を用意するlink
どのクライアントも、同じ Wokey API キーと同じ Base URL を使います。
Wokey の Base URL を使う
クライアントの Base URL にはゲートウェイのドメインを設定します。/v1 を付けるかどうかは以下の設定を参照してください。
クライアントを設定するlink
pi はカスタムプロバイダーを models.json から読み込みます。以下の設定では Claude モデルを Anthropic Messages で呼び出します。GPT、DeepSeek などのモデルには、api を openai-completions にし、baseUrl の末尾を /v1 にした 2 つ目のプロバイダーを追加してください。
- 1
API キーを export する
pi を起動するターミナルで export WOKEY_API_KEY="YOUR_API_KEY" を実行するか、~/.zshrc に追加します。
- 2
models.json を書く
以下の内容を ~/.pi/agent/models.json に保存します。ファイルにほかのプロバイダーが既にある場合は、providers の下に wokey のエントリだけを追加してください。
- 3
モデルを選ぶ
pi を起動して /model と入力し、wokey の下のモデルを選びます。
{
"providers": {
"wokey": {
"baseUrl": "https://api.wokey.ai",
"api": "anthropic-messages",
"apiKey": "$WOKEY_API_KEY",
"models": [
{ "id": "claude-opus-5-5", "reasoning": true, "input": ["text", "image"] }
]
}
}
}API 形式と Base URLlink
同じクライアントでも API 形式を切り替えると、Base URL の末尾に /v1 を付けるかどうかが変わることがあります。
| 形式 | Base URL | 用途 |
|---|---|---|
| Anthropic Messages | https://api.wokey.ai | Claude モデル |
| OpenAI Chat Completions | https://api.wokey.ai/v1 | DeepSeek、GLM、Kimi などのモデル |
| OpenAI Responses | https://api.wokey.ai/v1 | GPT モデル |
設定場所: ~/.pi/agent/models.json
curl で確認するlink
クライアントがエラーを出す場合は、まず curl で API キーと Base URL の問題ではないことを確認します。
pi はデフォルトで Anthropic Messages 形式を使います。このリクエストで 200 が返れば、API キーと Base URL は正しく設定されています。送信前に YOUR_API_KEY をご自身のキーに置き換えてください。
curl https://api.wokey.ai/v1/messages \
-H "x-api-key: YOUR_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-5",
"max_tokens": 1024,
"messages": [
{ "role": "user", "content": "Hello" }
]
}'エラーとトラブルシューティングlink
まず認証、残高、レート制限、モデルの利用可否、アップストリームのタイムアウトのどれかを切り分けます。
invalid api key
キーがない、入力ミスがある、削除されている、または Authorization と x-api-key ヘッダーの内容が食い違っています。
insufficient balance
アカウントの残高が不足しています。リクエストを続ける前にチャージしてください。
model_denylisted / account_restricted
違反が繰り返されたため、そのモデル、またはアカウントのすべてのモデルへの呼び出しが停止されています。「違反処理手数料と制限」を参照してください。
request_blocked
このリクエストはアップストリームに届く前にブロックされ、課金されていません。たとえば、モデルが直前に拒否したリクエストを変更せずに再送した場合や、停止中のエンドユーザー(X-End-User-Id)の場合です。エラーメッセージに何がブロックされたかが示されるので、その内容に沿ってリクエストを変更するか、時間をおいて再試行してください。ほかのリクエストには影響しません。
rate limited
リクエストの頻度が高すぎます。時間をおいて再試行するか、同時実行数を減らしてください。特定のモデル、または特定のエンドユーザー(X-End-User-Id)だけが 429 を返し続ける場合は、違反後の一時的な制限の可能性があります。
client disconnected
レスポンスの完了前にクライアントが接続を閉じました(コード downstream_aborted)。デフォルトでは無料です。過去 24 時間にアカウントのクライアント切断が 50 回以上あり、それがリクエストの 10% 以上を占めると、以降の切断されたリクエストはアップストリームが報告した使用量で課金されます。対象は、キャッシュの読み書きを含む処理済みの入力と、アップストリームが計上した場合に限り出力です。アップストリームが使用量を報告する前に切断された場合は無料のままです。課金が始まるとアカウントに通知され、切断率が通常に戻ると 1 時間以内に課金は自動的に停止します。よくある原因は、クライアントやプロキシのタイムアウトが短すぎることや、プログラムが完了前にリクエストをキャンセルしていることです。
upstream unavailable
アップストリームのモデルサービスが一時的に利用できません。モデルを切り替えるか、時間をおいて再試行してください。
upstream timeout
アップストリームのレスポンスがタイムアウトしました。コンテキストを短くするか、max_tokens を減らすか、再試行してください。
upstream overloaded
アップストリームのモデルが一時的に過負荷になっており、Wokey はほかの経路での再試行を済ませています(コード upstream_overloaded)。残高とは関係ありません。少し待ってから再試行するか、モデルを切り替えてください。
よくある質問link
- pi の baseUrl に /v1 は必要ですか?
- api フィールドによります。anthropic-messages の場合は /v1 なしの https://api.wokey.ai、openai-completions または openai-responses の場合は https://api.wokey.ai/v1 を指定してください。
- /model に Wokey のモデルが表示されないのはなぜですか?
- pi は API キーを解決できないとカスタムモデルを一覧に表示しません。apiKey が $WOKEY_API_KEY の場合は、pi を起動するのと同じターミナルで export WOKEY_API_KEY を実行し、models.json が有効な JSON かどうかを確認してください。/model は開くたびにこのファイルを読み直します。
- pi で Wokey のモデルに画像を送るには?
- pi のカスタムモデルは、デフォルトではテキスト入力のみを宣言します。画像に対応するモデルに "input": ["text", "image"] を追加して、画像入力を受け付けることを宣言してください。
- コンテキストウィンドウと最大出力を変更する必要はありますか?
- 指定しない場合、pi は contextWindow 128000、maxTokens 16384 とみなします。モデルのウィンドウがそれより大きい場合は、モデルエントリの contextWindow と maxTokens をモデルページの値に合わせて設定してください。
- API キーをファイルに書かずに済ませられますか?
- はい。apiKey には $NAME 形式の環境変数や、コマンドの出力からキーを読み取る !command 形式を指定できます。