開発解説

OpenAI互換APIとは?LM Studio・Ollama・llama.cppで違う部分を整理する

OpenAI互換APIとは? — LM Studio・Ollama・llama.cppで違う部分を整理する
目次

「OpenAI互換APIに対応」と書かれていても、OpenAI APIの全機能をまったく同じ挙動で使えるとは限らない。

互換APIの利点は、既存のOpenAI向けクライアントで接続先URLやモデルIDなどを変え、同じ形式の処理を再利用しやすくすることにある。

必要な機能が本当に対応しているかは、利用するAPIごとに確認する。

まずチャットAPIの接続先を確認する

LM Studio、Ollama、llama.cppはいずれも、OpenAI形式のチャットを利用できる構成がある。

ローカルで使う接続先の代表例は次のとおり。

LM Studio : http://localhost:1234/v1
Ollama    : http://localhost:11434/v1/
llama.cpp : http://localhost:8080/v1

チャット用の代表的な経路は次になる。

/v1/chat/completions

一回チャットできたことだけで、利用しているプログラムの全機能をそのまま移せるとは判断しない。

モデルIDの意味は実行環境ごとに違う

OpenAI形式ではモデルIDを指定するが、何を指定するかは実行環境ごとに異なる。

LM Studioでは、サーバーから見えているモデル一覧を確認するための経路がある。

/v1/models

OllamaではOllama側のモデル名を使う。

llama.cppでもモデル一覧を確認でき、起動時に別名を与える構成がある。

--alias

そのため、クラウド側で使っていたモデル名をローカルサーバーへ渡せば、自動的に対応モデルへ置き換わるわけではない。

対応しているAPIの範囲も同じではない

LM Studioの公式資料では、モデル一覧、応答生成、チャット、埋め込み、従来型の文章生成など複数のOpenAI互換経路が案内されている。代表的なパスは次のとおり。

/v1/models
/v1/responses
/v1/chat/completions
/v1/embeddings
/v1/completions

さらに、モデルの取得・読み込み・解放などを扱うLM Studio独自のAPIもある。

/api/v1/*

OllamaはOpenAI APIの一部との互換性を案内しており、それとは別にOllama独自のチャット、生成、埋め込み、モデル管理などのAPIを持つ。

llama.cppのサーバーにもOpenAI互換の複数の経路があるが、OpenAI仕様の全機能と完全に同一だとは前提にしない。

つまり、チャットが動くことと、接続先固有のすべての機能を同じコードで使えることは別だ。

ツール呼び出しは二段階で確認する

ツール呼び出しでは、少なくとも次を分ける。

  1. 実行環境がツール定義を受け取り、ツール呼び出しとして返せるか
  2. 使用するモデルがその形式を理解し、意図したツールと引数を出せるか

APIがツール呼び出しを扱えるだけで、モデルが毎回正しいツールを選ぶことや、外部操作が安全になることまで保証されない。

埋め込みは専用モデルと経路を確認する

三者とも埋め込みを扱う方法があるが、チャット用モデルを指定すれば必ず埋め込みを返せるとは限らない。

LM Studioで使われるOpenAI互換の経路は次のとおり。

/v1/embeddings

Ollamaには独自の埋め込み用経路がある。

/api/embed

llama.cppでも埋め込み用の経路を使える構成がある。使用モデルやプーリングなどの条件は別に確認する。

RAGへ接続するなら、チャットだけでなく、どの埋め込みAPIへ何のモデルを指定するかを別項目にする。

使うプログラムの必須機能から逆算する

接続先を先に決めるより、使いたいプログラムが何を必要としているか一覧にすると判断しやすい。

チャット
新しい応答用API
ストリーミング
ツール呼び出し
構造化出力
埋め込み
モデル一覧
認証
モデルの読み込み・解放を外部から操作する必要があるか

チャットとストリーミングだけが必要なら確認範囲は比較的小さい。新しい応答用API、ツール呼び出し、モデル管理などまで前提にするなら、「OpenAI互換」という一言だけでは判断できない。

三つの実行環境そのものを比較したい場合は、LM Studio・Ollama・llama.cppのOpenAI API比較も確認できる。

まとめ

  • OpenAI互換という表記はAPI全体が同一という意味ではなく、必要なAPIや項目が対応しているか個別に確認する
  • LM Studio・Ollama・llama.cppはいずれもOpenAI形式のチャットを扱えるが、モデル管理や独自APIは異なる
  • ツール呼び出しや埋め込みは、APIが存在することと使用モデルが適切に処理できることを分けて確認する
  • 利用するプログラムが必要とするAPI、ストリーミング、ツール、埋め込みなどを先に列挙して照合する

公式サイトで次に進む

この記事で明示的に扱うソフトだけを表示します。配布・手順は各公式ページで確認してください。

local-gen.jpがファイルを配布するものではなく、互換性を保証するものでもありません。

同じテーマから

この記事で扱ったデータ

モデル・GPU・実行ソフトの確認済みデータを、記事とは別に確かめられます。

サイト内検索