Responses API の接続設定を、通信前にチェック
base URL に /v1 を二回書いていないか。キーを URL
に入れてしまっていないか。 Responses Request Doctor
は、こうした設定を手元で確認する小さな Python
ツールです。既定では通信せず、API キーも読み取りません。
バージョン 0.1.1 をダウンロード(ZIP) · Python ソースのみ
Python 3.9 以降、追加パッケージ不要、MIT ライセンス。ZIP に日英の説明書とオフライン出力例を含みます。 Elysia API の運営者が公開しています。Elysia は個人運営の第三者 AI API 中継サービスです。
まずは、キーを用意せずに実行
ZIP を展開したフォルダーで次を実行します。Windows で
python が使えない場合は、py -3
に置き換えてください。
python request_doctor.py
python request_doctor.py --base-url https://example.com/v1 --model example-model --report offline-report.json
既定の出力です。この
PASS
は入力形式の確認結果です。モデルの存在、残高、利用権限や実際の接続成功は分かりません。
モード: offline
PASS: endpoint
PASS: model
通信・キーの読み取りは行っていません。これは接続成功の証明ではありません。
/v1/v1 を見つける例
python request_doctor.py --base-url https://example.com/v1/v1
モード: offline
FAIL: /v1 が重複しています。base URL を見直してください。
PASS: model
通信・キーの読み取りは行っていません。これは接続成功の証明ではありません。
ルート URL は
/v1/responses
に補います。/v1、/v1/responses、
/openai/v1 のようなプレフィックスを受け付けます。URL
内の認証情報、クエリー、フラグメント、
パスの曖昧な書き方は拒否します。各 SDK
がパスを補う方法まで検査するものではないため、クライアント側の設定も確認してください。
実際の接続は、明示したときに一回だけ
python request_doctor.py --live --report live-report.json
--live を付けると、既定では
https://api.elysia.earth/v1/responses に
gpt-6.1-terra を指定して一回送ります。他の Responses
互換サービスへ変更する場合は --base-url と
--model を指定します。利用前に送信先と現在の料金を確認してください。 呼び出しは利用残高を消費する場合があります。
キーは端末の非表示入力で受け取ります。コマンドの引数でキーを渡す機能はありません。
自動化する場合は専用環境変数
ELYSIA_REQUEST_DOCTOR_API_KEY を使えます。
テスト文は Reply with OK only. です。リクエストには
max_output_tokens: 64 を指定し、タイムアウトは 30 秒に設定しています。
パラメーターの扱いは接続先によって異なり、この指定だけでは実際の出力量や課金額の上限を保証できません。
自動リトライせず、リダイレクトも追いません。HTTPS を使い、HTTP
はループバック接続だけに限ります。
サービスやモデルがこの形式を受け付けない場合は失敗することがあります。
結果を相談するとき
--report FILE で保存する共有用 JSON には、入力した
URL、モデル名、キー、テスト文、応答本文を含めません。
検査項目と状態、HTTP ステータス、全体の所要時間、許可した token usage
の項目だけを使います。共有前に中身を確認してください。
429 は限流・配額・容量不足などの候補をまとめて表示します。分類だけで原因は断定できません。 タイムアウトの場合も処理や課金が発生した可能性があるため、再実行の前に利用履歴を確認してください。 計測する時間はリクエスト全体の所要時間です。TTFT や生成 TPS は測りません。
困ったときは401・404・429・タイムアウトの確認順序を参照できます。 Elysia への接続については接続相談へ。 キーや個人情報を送る必要はありません。
つながったあと、用途に合うかを確かめる
JSONの必須項目や合計、関数名と引数、短い日英翻訳を確認する オフライン用例集 0.1.0(ZIP・MIT)を用意しました。 この例集はPython 3.10以降の標準ライブラリだけで動き、通信もキーの読み取りも行いません。
python workload_proof.py
python -m unittest -v
ZIPを展開したディレクトリで実行します。同梱の応答と参考訳は人工的な例です。 2026-10-30に9組のローカルテストを確認しました。 この結果は、実際のAPIへの接続、モデルのツール対応、翻訳品質や料金を証明しません。 翻訳の意味や自然さは人による確認が必要です。 保存した応答を調べる手順はZIP内のREADME.ja.mdにあります。
TerraのJSON・ツール呼び出し・短い翻訳を、一例ずつ試した記録
2026-10-30、日本時間。Elysia運営側で、架空の旅行データと短い日本語を送りました。Elysiaは個人運営の第三者AI API中継サービスで、モデル提供元の公式サービスではありません。
使用先はElysiaのPOST /v1/responses、モデル指定はgpt-6.1-terra、通常料金、非ストリーミングです。並列実行も自動再試行もしていません。6リクエストすべてHTTP 200、応答のstatusはcompletedでした。応答のモデル名も同じでしたが、このラベルだけで実際の基盤モデルを独立に確認できるわけではありません。
| リクエスト | HTTP全体の秒数 | 入力tokens | 出力tokens | 消費quota | 当時の記帳額(円) |
|---|---|---|---|---|---|
travel-json | 5.016 | 419 | 165 | 124 | 0.006944 |
travel-tool-step1 | 3.454 | 347 | 42 | 56 | 0.003136 |
travel-tool-step2 | 4.172 | 679 | 165 | 150 | 0.008400 |
ja-en-01 | 2.282 | 69 | 31 | 22 | 0.001232 |
ja-en-02 | 4.672 | 64 | 19 | 16 | 0.000896 |
ja-en-03 | 3.094 | 69 | 31 | 22 | 0.001232 |
| 合計 | — | 1647 | 453 | 390 | 0.021840 |
合計は0.021840円でした。自分のAPIキーの利用ログで各リクエストに対応する消費quotaを照合し、500000 quotaを28円として換算しました。短い間隔で見た残高の差分を単発の料金として使ってはいません。この金額は当時のサービス内の記帳で、現在の見積価格や上流事業者への請求額ではありません。現金決済額も検証していません。
最初の5件のHTTPヘッダーは別ファイルでは残しておらず、照合に用いた識別子は実行器の記録です。6件目は保存ヘッダーと応答の指紋も照合しています。本ページでは識別子やヘッダー、利用ログそのものを公開していません。
返った内容で確認したこと
旅行JSONは必須項目と型、架空便と3件の活動、合計14500円が一致しました。ツールの例では、指定した架空の航空便照会関数が1回だけ返り、引数も一致。その実際のcall_idに架空の照会結果を戻すと、最終JSONが返りました。実際の航空会社や予約サービスには接続していません。
短い翻訳は、予約日時・番号、ファイルを削除しないという否定、会議を変更できるか尋ねる意図を確認しました。別のAIエージェントが原文と意味・語調を照合した結果です。人間の翻訳者による評価ではありません。
ja-en-01
ご予約は2026-11-15の14:30です。受付で確認番号TEST-204をお伝えください。
Your reservation is for 14:30 on 2026-11-15. Please provide confirmation number TEST-204 at reception.
ja-en-02
この操作ではファイルは削除されません。続行する前に、変更内容を確認してください。
This operation will not delete any files. Please review the changes before continuing.
ja-en-03
会議を10:00から10:30に変更できますか?難しければ、元の時間で大丈夫です。
Could we move the meeting from 10:00 to 10:30? If that’s difficult, the original time is fine.
測れていないこと
各条件1例の確認です。成功率やp95、他社との速度差、n8n/Difyのノード、ストリーミング、長期安定性は評価していません。時間は実行器の単調時計で測ったHTTP要求全体で、TTFTや生成TPSではありません。保存されたJSONだけで時計の測定過程まで独立に証明できるものでもありません。
途中で請求照会APIに429が返りました。実行器が各リクエスト前後に照会しすぎたため、6件目を送る前に止まりました。Retry-Afterに従って待ち、残り1件だけ送っています。モデル推論のエンドポイントで429が出た例ではありません。6件を休みなく連続測定した記録でもありません。
今回の応答にはreasoning出力がなく、その再送処理の実測にもなりません。出力token指定は送りましたが、応答のmax_output_tokensは6件ともnullでした。サーバーが上限を強制することや費用の硬い上限は確認できていません。短い合成入力の結果から、任意のschemaやツール、長文翻訳まで対応すると判断することはできません。
接続前のURL点検と、通信しないJSON・ツール検証の例集を見る。数値は公開用JSON摘要でも読めます。
本ページには2026-10-30の保存記録から整理した公開用の結果を掲載しています。文章と検証にはAIを使用しています。
0.1.1 は出力token指定と費用上限の説明を修正した版です。通信処理は変更していません。
公開時に確認したこと
python request_doctor.py --self-test
2026-10-30、通信しない自己テスト 10 項目が通過しました。URL の検査、共有情報の除外、模擬応答の分類、 一回だけ送る動作を確認しています。この版の公開準備では有料 API を実行していません。 現在のサービス可用性、n8n・Dify のノード、ツール呼び出し、ストリーミングの互換性は別の確認が必要です。
文書作成とコード検証に AI を使用しました。更新:2026-10-31。 最初のリクエストを自分で書く場合はPython 接続ガイドへ。