HiAPI
ブログ

チュートリアル

HiAPI invalid_request:モデルインターフェースの誤用をどう修正するか?

モデル ID、サポートされるエントリポイント、リクエストボディを照合し、インターフェース・パラメータ・キーのエラーを区別します。読み取り専用の診断コード付き。

Oct 25, 2026
HiAPI invalid_request:モデルインターフェースの誤用をどう修正するか?

TL;DR

invalid_request はリクエスト系のエラーです。インターフェースの選択ミスは考えられる原因の一つであり、エラーメッセージと合わせてリクエストボディとモデル ID も確認する必要があります。まずモデルがサポートするエントリポイントを確認し、そのエントリポイントに従ってフィールドを組み立てます。

Python のサンプルを実行する前に、同じ Python 環境で python -m pip install requests を実行してください。

3 つのエントリポイントの選び方

HiAPI でよく使われる 3 つの生成エントリポイントは以下のとおりです。個々のモデルがどのエントリポイントをサポートするかは、そのモデルページと公開モデルカタログで確認してください。

エントリポイント リクエストボディの要点 用途
/v1/tasks model + input 画像・動画・音声タスク
/v1/chat/completions model + messages チャットプロトコルをサポートするモデル
/v1/responses model + input Responses をサポートするモデル

supported_endpoint_types の task、openai、openai-response はそれぞれ上記 3 つのエントリポイントに対応します。カタログには他のプロトコルタイプが現れることもあります。一覧にないタイプに遭遇した場合は、そのモデルの接続ドキュメントを開いてください。

モデルがサポートするエントリポイントを読み取り専用で確認する

HIAPI_MODEL をモデルページ上の完全なモデル ID に設定し、以下のスクリプトを実行します。公開カタログを読み取るだけで、生成タスクは送信しません。

import os
import requests

model_id = os.environ["HIAPI_MODEL"]
response = requests.get("https://api.hiapi.ai/api/pricing", timeout=30)
response.raise_for_status()
models = response.json()["data"]
model = next((m for m in models if m.get("model_name") == model_id), None)
if model is None:
    raise SystemExit("Model not present in the public catalog; check its exact model ID")
print("model:", model["model_name"])
print("supported_endpoint_types:", model.get("supported_endpoint_types", []))

リクエストを修正する 4 つのステップ

  1. 実際にリクエストしたドメインとパスを確認し、Base URL に /v1 が重複して付加されていないことを確かめます。
  2. モデルページの完全な ID とサポートされるエントリポイントを照合します。表示名をそのまま API の model ID の代わりにすることはできません。
  3. リクエストボディも同期的に調整します。チャットの messages をそのままタスクインターフェースにコピーすることはできません。タスクのパラメータは input 内に配置する必要があります。
  4. 返された HTTP ステータスとエラーフィールドを再度読みます。それでも失敗する場合は、リクエスト ID、モデル ID、エントリポイントのパス、およびマスク処理済みのリクエストボディを保管します。

インターフェース・パラメータ・キーのエラーを区別する

症状 次のステップ
400、リクエストが不正というメッセージ インターフェース、JSON、必須フィールド、フィールド型を確認する
現在のプロトコルがサポートされていないことが明確に示される モデルがサポートを宣言しているエントリポイントを使用する
401、キーが無効または欠落 Bearer リクエストヘッダーと実行時の環境変数を確認する
タスクインターフェースが MODEL_UNAVAILABLE を返す モデル ID、利用可能状態、アカウントのアクセス権限を確認する

タスクインターフェースの拒否レスポンスにはトップレベルの error_code が含まれることがあります。他のエントリポイントでは error.code が使われる場合があります。単一のフィールドだけで全てのエラーを判断しないでください。

よくある質問

invalid_request は必ずインターフェースの選択ミスですか?

いいえ。リクエストフィールド、JSON、必須項目の欠落によってもリクエストが拒否されることがあります。まず message を読み、次にエントリポイントを確認してください。

URL を変更するだけで修正できますか?

対応するインターフェースに合わせてリクエストボディも調整する必要があります。messages とタスクインターフェースの input では構造が異なります。

モデルが公開カタログにない場合はどうすればよいですか?

完全な ID、モデルページ、アカウントの可視範囲を確認してください。名前が似ているモデルに自動的に置き換えないでください。

この確認コードはコンテンツを生成しますか?

いいえ。コードは公開カタログを読み取るだけです。実際に生成リクエストを送信したときに初めてタスクフローに入ります。

さらに調査を続ける

永続的なAIアーティファクトで開発を始める

APIキーを取得して、タスクベースの1つのAPIで画像・動画・音声モデルを呼び出せます。

APIドキュメントを読む