意図的に分岐する箇所も含め、OpenAI 互換性レイヤーのすべてのエンドポイント、パラメーター、エッジ ケースを詳しく調べます。
多くのゲートウェイは、OpenAI 互換性を主張しながら、依存する表面積の半分を静かに削除します。これはまさに私たちが実装するもの、拡張するもの、そして意図的に分岐する場所です。
完全にサポート
- /v1/chat/completions:ストリーミング、tools、tool_choice、構造化出力に対応
- /v1/embeddings:バッチ処理に対応
- /v1/images/generations および画像編集
- /v1/audio/transcriptions、音声翻訳および音声合成
- /v1/models:プロバイダーを明示した ID に対応
1 行で切り替え
from openai import OpenAI
client = OpenAI(
base_url="https://api.starsg.ai/v1",
api_key=STARSG_API_KEY,
)
分岐点
3 つの意図的な違い。まず、モデル ID はプロバイダーによって修飾されているため、同じ名前が 2 つの意味をもつことはありません。 2 番目に、レート制限ヘッダーは、上流ベンダーの制限ではなく、プールされたゲートウェイ制限を報告します。 3 番目に、実際に提供されたモデル、キャッシュ ステータス、フェイルオーバーが発生したかどうかを含むすべての応答で追加のアンプリンク ブロックを返します。
フィールドの意味を黙って変更するようなことは一切行いません。拡張子は、途中で extra_body に入り、出口で名前空間ブロックに入ります。
サポートされていないパラメータは無視されず、400 で拒否されます。 logit_bias をサイレントにドロップすると、品質低下のデバッグを 1 週間続けることになります。