より安価なAPI(UberLLM)でOpenAI Python SDKとLangChainを使用
OpenAI(...) または ChatOpenAI(...) で base_url="https://api.uberllm.dev/v1" と api_key を UberLLM のキーに設定し、任意の UberLLM model id を渡してください。Chat、streaming、tool calls、JSON output は引き続き機能し、他の code は変更されません。
手順 (OpenAI Python SDK)
- あなたのキーページでキーを作成し、クレジットを追加してください。
- 環境変数として保存します:
export UBERLLM_API_KEY=ull_your_key
- クライアントをUberLLMに向けます:
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.uberllm.dev/v1",
api_key=os.environ["UBERLLM_API_KEY"],
)
resp = client.chat.completions.create(
model="deepseek/deepseek-v4.1-flash",
messages=[{"role": "user", "content": "Give me three names for a coffee shop."}],
)
print(resp.choices[0].message.content)
変更点はこれだけです。client.chat.completions.createは、stream=True、tools、response_format、temperature、max_tokensとともに以前と同じように動作します。async client (AsyncOpenAI) も同じ2つの引数を取ります。
コードに触れずに
OpenAI SDKは2つの環境変数も読み込むため、引数なしでOpenAI()を呼び出すスクリプトは、編集せずに移動できます:
export OPENAI_BASE_URL=https://api.uberllm.dev/v1
export OPENAI_API_KEY=ull_your_key
python your_script.py
ただし、model=文字列をdeepseek/deepseek-v4.1-flashのようなUberLLM IDに変更する必要があります。
ステップ (LangChain)
pip install langchain-openai
import os
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
model="deepseek/deepseek-v4.1-flash",
base_url="https://api.uberllm.dev/v1",
api_key=os.environ["UBERLLM_API_KEY"],
)
print(llm.invoke("Say hello in one sentence.").content)
Chains、エージェント、bind_tools および .stream() はそのまま機能します。環境変数に頼るのではなく、コード内でbase_urlを渡してください。引数が常に優先されるため、マシン上の誤ったOPENAI_API_BASEが他の場所に呼び出しを送信することはありません。
LangChain.js も同じ考え方です:
import { ChatOpenAI } from "@langchain/openai";
const llm = new ChatOpenAI({
model: "deepseek/deepseek-v4.1-flash",
apiKey: process.env.UBERLLM_API_KEY,
configuration: { baseURL: "https://api.uberllm.dev/v1" },
});
各ジョブに安価なモデルを選びましょう
すべてのモデルに1つのキーを使う利点は、簡単な作業に対して最先端の価格を支払うのをやめられることです。一般的な使い分けは次のとおりです。
- 高度な推論や顧客対応の回答:
deepseek/deepseek-v4.1-flashのようなトップモデル。 - 一括要約、タグ付け、抽出:
google/gemma-3-27b-it、または以下のバッチテーブルにある別のモデル。多くの場合、tokenあたり50~100倍安価です。
モデルを切り替えるには、model=文字列だけを変更します。
提供していないもの
UberLLMは、chat completions (/v1/chat/completions)、Responses API (client.responses.create, streamingとtool callsを含む)、およびAnthropic messages routeを提供します。呼び出し間で状態を保持しないため、previous_response_idの代わりにinputで会話全体を送信してください (Responses API reference)。embeddingsやAssistants APIは提供していません。これらの呼び出しは現在のプロバイダーで引き続き行ってください。
トラブルシューティング
openai.AuthenticationError(401): キーが間違っているか、空です。len(os.environ["UBERLLM_API_KEY"])を出力してください。キーはull_と 43 文字で構成されます。openai.NotFoundError(404) on/responsesor/embeddings: これらのルートはここには存在しません。上記を参照してください。model_not_found:gpt-4oのような OpenAI スタイルの ID には、前にメーカー名が必要です:openai/gpt-4o。openai.RateLimitError(429): キーの1分あたりの制限(デフォルトでは 300)。キーのページで引き上げるか、バックオフ付きのリトライを追加してください。- 402
insufficient_credits: クレジットページ でチャージしてください。