新着どんなエージェントもUberLLMにつなぐだけ。1つのキーで全モデル、定価以下で。
UberLLM

OpenAI互換のAPI endpointとは何ですか?

OpenAI互換のAPI endpointとは、OpenAI APIと全く同じrequestおよびresponseの形式(同じ/v1/chat/completions schema、同じstreaming format、同じtool-call fields)に対応しているものです。そのため、公式のOpenAI SDKは、base URLとkeyを変更するだけで動作します。UberLLMはOpenAI互換(そして/v1/messagesではAnthropic互換)なので、切り替えはたった1行の変更で済みます。

簡潔な定義

endpoint が「OpenAI-compatible」であるとは、OpenAI API と同じ HTTP リクエストを受け付け、同じレスポンスの形を返す場合です。実際には、次のことを意味します:

  • POST /v1/chat/completions のリクエストボディ(model、messages、temperature、tools、stream、…)がそのまま受け付けられます;
  • レスポンスは同じ choices[].message オブジェクトで、同じ usage token 数です;
  • streaming は同じ server-sent-events の data: チャンクを使い、最後は [DONE] で終わります;
  • tool / function calling は同じ tool_calls フィールドを使います。

契約が一致しているので、公式の OpenAI SDK は — Python、JavaScript、その他のどの言語でも — base URL と API key だけを変更すれば、この endpoint に対して動作します。アプリケーションコードは違いを意識しません。

なぜ重要なのか

OpenAI互換性により、あるベンダーのAPIは事実上の標準となりました。互換性のあるendpointがあれば、すでに使用しているSDK、ツール、フレームワークの統合(LangChain、Vercel AI SDK、LlamaIndex、多数のagent framework)を維持したまま、それらの背後にあるものを変更できます。

それがUberLLMへの移行のすべてです。

from openai import OpenAI

client = OpenAI(
    base_url="https://api.uberllm.dev/v1",   # the only line that changes
    api_key="ull_your_key_here",
)

resp = client.chat.completions.create(
    model="deepseek/deepseek-v4-flash",
    messages=[{"role": "user", "content": "Hello!"}],
    stream=True,
)

サポートされているすべてのparametersについては、OpenAI SDK doc] を参照してください。

互換性 vs. 完全なドロップイン

「互換性」はスペクトラムです。リクエストの形式は受け入れるものの、ストリーミングに対応しなかったり、ツール呼び出しを無視したり、非標準の usage を返すエンドポイントには注意してください。UberLLM はストリーミング、ツール呼び出し、トークン使用量を含む chat-completions の契約を実装しており、さらに /v1/messages に Anthropic 互換のエンドポイントを公開しています。そのため、Anthropic SDK や Claude Code も変更なしで動作します — Anthropic SDK ドキュメント。

標準のendpointの裏側でUberLLMが提供するもの

endpointは標準的ですが、その背後のルーティングはそうではありません。指定されたモデルに対して、最も安価で健全な販売者にすべてのリクエストが送られ、出力前の失敗は次の販売者で再試行され、表示される価格(追加料金なし)がお客様が支払う価格となります。/modelsでモデルを、/llm-api-pricingでリアルタイム価格をご覧ください。

さらに読む

よくある質問

「OpenAI互換」とはどういう意味ですか?

つまり、このエンドポイントはOpenAI APIと同じリクエストを受け入れ、同じレスポンスを返します。具体的には、同じchat-completionsスキーマ、streaming形式、tool-callフィールドに対応しています。そのため、OpenAI SDKはbase URLとkeyを変更するだけで動作します。

OpenAI互換のendpointを使用するために、コードを変更する必要がありますか?

変更するのはbase_urlとapi_keyだけです。OpenAI SDKコードの他のすべて — messages、streaming、tools、usage — はそのままです。

UberLLMはAnthropic互換でもありますか?

はい。OpenAI互換のchat-completionsエンドポイントに加えて、UberLLMはAnthropic互換の/v1/messagesエンドポイントも公開しています。そのため、Anthropic SDKやClaude Codeは変更なしで動作します。