手短な回答
毎月大量の画像を生成しており、APIレスポンスのレイテンシを360ms未満に抑えたい場合、別のルートに切り替えても得られる改善は限定的である可能性があります。代替ノードの多くは海外でホストされており、追加のネットワークレイテンシが発生することがあるためです。 クライアント側で最適化を行い、デフォルトのアドレスを維持してください:http://に切り替える必要はありません: http/httpsは暗号化を制御するものであり、HTTP/1.1とHTTP/2はそれとは別の問題です。httpとHTTP/1.1は同じですか?を参照してください。
クライアントの最適化
- プロトコルバージョンの確認: Python(requests、httpx、OpenAI SDK)はデフォルトで HTTP/1.1 を使用するため、変更は不要です。Go、Java、OkHttp、および Node 26 以降の組み込み fetch はデフォルトで HTTP/2 になります。高い同時実行数での画像アップロードでは、HTTP/2 がすべてのリクエストを 1 つの接続にまとめるため、これらのクライアントでは https アドレスを維持したまま、コード側で HTTP/1.1 を強制してください。
- リクエストごとに新しい接続が作成されるのを防ぐため、コネクションプーリングと Keep-Alive を有効にしてください
- 500ms の合計タイムアウトを使用するのではなく、通常の画像生成時間をカバーできるように読み取りタイムアウトを長く設定してください
- 一時的なネットワーク障害に対しては、バックオフを設けて回数を限定してリトライしてください
500ms は画像の完了を保証する時間ではなく、ネットワークオーバーヘッドやタスク送信の目標値として扱ってください。 実際のレイテンシーは、クライアントの所在地、ISP のルーティング、同時実行数、選択した画像モデル、およびアップストリームの処理にも依存します。本番環境と同等の同時実行数でテストを実施し、ロールアウト前に P95 および P99 のレイテンシーを評価してください。
推奨されるトラブルシューティング手順
1
プロトコルバージョンの確認
curl -s -o /dev/null -w "%{http_version}\n" https://api.apiyi.com/v1/models -H "Authorization: Bearer YOUR_API_KEY" を実行するか、クライアントのドキュメントを確認して、HTTP/1.1 または HTTP/2 のどちらを使用しているかを確認します。2
必要に応じてHTTP/2を無効化
HTTP/2 がデフォルトとなっているクライアント(Go、Java など)のみこの手順が必要です。クライアントで HTTP/1.1 を強制し、接続の再利用を有効にします。Go プログラムの場合は、環境変数
GODEBUG=http2client=0 を設定するだけで対応できます。3
タイムアウトとリトライの調整
接続タイムアウトと読み取りタイムアウトを個別に設定します。読み取りタイムアウトは、通常の画像処理時間を考慮した長さに設定する必要があります。
4
同時実行数テストの実施
本番環境と同等の同時実行数でテストを行い、P50、P95、P99 レイテンシと失敗率を監視します。
ポート16888のプレーンテキストエンドポイントについて
http://api.apiyi.com:16888 は、https と同じリクエストパスを持つ、公式に提供されているプレーンテキストエンドポイントです。画像生成が高速化されるわけではありません。すでに HTTP/1.1 を使用しているクライアントにとっては、1回の TLS ハンドシェイクが削減されるだけです。HTTPS ハンドシェイク自体が失敗した場合の一時的な回避策として、または信頼できる内部ネットワークや専用線内でのみ使用してください。