ブログに戻る
チュートリアル

OpenAI SDKをFastMetalに向ける — base_urlとapi_keyの2点だけ

FastMetal

すでに OpenAI SDK を使っているなら、FastMetal への切り替えで変えるのは2点だけです。リクエストの送信先を示す base_url と、認証に使う api_key を差し替えれば、既存のコードはそのまま動きます。FastMetal は OpenAI 互換の API を提供しているため、chat.completions.create などの呼び出し方やレスポンスの形は変わりません。1本のキーで複数モデルを呼び分けられ、料金は円建ての前払いです。

変更点は2つだけ

OpenAI 互換なので、SDK もコードの構造もそのまま使えます。差し替えるのは次の2か所です。

  • base_url(接続先)を https://api.fastmetal.ai/v1
  • api_key(認証キー)を FastMetal の API キーに

API キーはダッシュボードで発行できます。キーは1本で、呼び出すモデルは model パラメータの ID で切り替えます。base_url の末尾に /v1 を必ず付ける点だけ覚えておいてください。

Python の例

openai パッケージ(1.x 以降)でのサンプルです。pip install openai で導入できます。

from openai import OpenAI

client = OpenAI(
    base_url="https://api.fastmetal.ai/v1",
    api_key="sk-...",  # FastMetal の API キー
)

resp = client.chat.completions.create(
    model="anthropic-claude-haiku-4-5",
    messages=[
        {"role": "system", "content": "あなたは親切なアシスタントです。"},
        {"role": "user", "content": "こんにちは"},
    ],
)

print(resp.choices[0].message.content)

Node.js / TypeScript の例

npm install openai で導入します。Python と違い、キー名は baseURL(URL が大文字)になる点に注意してください。

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.fastmetal.ai/v1",
  apiKey: process.env.FASTMETAL_API_KEY,
});

const resp = await client.chat.completions.create({
  model: "anthropic-claude-sonnet-4-6",
  messages: [
    { role: "system", content: "あなたは親切なアシスタントです。" },
    { role: "user", content: "こんにちは" },
  ],
});

console.log(resp.choices[0].message.content);

環境変数で管理する

接続先とキーをコードに直接書きたくない場合は、環境変数を使えます。OpenAI SDK は OPENAI_BASE_URLOPENAI_API_KEY を自動で読み込むため、引数を渡さずに OpenAI() / new OpenAI() を呼ぶだけで済みます。

export OPENAI_BASE_URL="https://api.fastmetal.ai/v1"
export OPENAI_API_KEY="sk-..."

この方法なら、開発環境と本番環境で接続先を切り替えたり、キーをソースコードから分離したりするのが簡単になります。CI やコンテナの設定でも扱いやすく、おすすめです。

つまずきやすいポイント

切り替えで引っかかりやすいのは、ほぼ次の3つです。症状から原因を素早く特定してください。

症状原因対処
404 / Not Found が返るbase_url の末尾に /v1 が無い、または余分なパスが付いているhttps://api.fastmetal.ai/v1 を正確に指定する
モデルが見つからない旨のエラーmodel に OpenAI 用の名前(例: gpt-4o)を指定している対応モデルの FastMetal の ID(例: anthropic-claude-haiku-4-5)を指定する
一部のパラメータが効かない/エラーになるOpenAI 固有や特定プロバイダ向けのパラメータを送っている標準の messages temperature max_tokens 等を使い、非対応の項目は外す
401 / 認証エラーキーが OpenAI のもののまま、または未設定FastMetal のキーに差し替え、環境変数の読み込みを確認する

よくある質問

Q. 既存の OpenAI 向けコードはどこまで書き換えが必要ですか? A. 原則として base_urlbaseURL)と api_keyapiKey)の2点、そして model の指定だけです。リクエストの組み立てやレスポンスの読み取り方は変わりません。

Q. ストリーミングや関数呼び出し(tools)は使えますか? A. OpenAI 互換の標準的な機能はそのまま利用できます。stream=True でのストリーミングも、OpenAI と同じ書き方で動きます。

Q. 1本のキーで複数のモデルを使い分けられますか? A. はい。キーは1本のまま、model に指定する ID を変えるだけで、Claude 系や GLM 系など複数のモデルを呼び分けられます。利用できる ID は対応モデルで確認できます。

次のステップ

まずはダッシュボードでキーを発行し、上のサンプルを動かしてみてください。利用できるモデルの一覧は対応モデルに、認証やパラメータの詳細はドキュメントにまとまっています。既存の OpenAI SDK のコード資産をそのまま活かしながら、FastMetal の複数モデルを円建てで使えます。