メインコンテンツまでスキップ

LLMプロバイダー概要

Elftia の LLM プロバイダーシステムを使用すると、複数の大規模言語モデルサービスに接続し、統合 API 抽象化を通じてプロバイダー間をシームレスに切り替えることができます。基盤となる API フォーマットの違いを意識する必要はありません。

こんな場面で使う

  • 新しい LLM サービス(OpenAI、Anthropic、DeepSeek など)に接続したい
  • 同一アプリ内で複数プロバイダーのモデルを使い分けたい
  • ローカルにデプロイしたモデル(Ollama や LM Studio など)に接続したい
  • API キープールによる高可用性・負荷分散を実現したい

基本概念

プロバイダー

プロバイダーとは、LLM API サービスの設定単位です。各プロバイダーには次の主要情報が含まれます。

概念説明
名前プロバイダーの表示名OpenAI、DeepSeek、Zhipu GLM
API フォーマットプロバイダーが使用する API プロトコル形式openai、anthropic、google
ベース URLAPI リクエストのベースアドレスhttps://api.openai.com/v1/chat/completions
API キー認証資格情報sk-... または $OPENAI_API_KEY のような環境変数参照
モデルリストこのプロバイダーで利用可能なモデルgpt-4o、claude-sonnet-4-5、gemini-3-pro

API フォーマット

Elftia は 5 種類の API フォーマットをサポートしており、組み込みのフォーマット変換機構(Transformer)がリクエスト・レスポンスのフォーマット差異を自動的に吸収します。

API フォーマット説明利用プロバイダー
openaiOpenAI Chat Completions フォーマット(/v1/chat/completionsOpenAI、DeepSeek、Zhipu、Ollama、Groq、その他ほとんどのプロバイダー
anthropicAnthropic Messages フォーマット(/v1/messagesAnthropic 公式、MiniMax
googleGoogle Gemini フォーマットGoogle Gemini
azure-openaiAzure OpenAI フォーマット(OpenAI と同じ仕様、認証方式が異なる)Azure OpenAI Service
openai-responseOpenAI Responses API フォーマット(/v1/responsesOpenAI 新 Responses API

モデル

各プロバイダーには複数のモデルを設定できます。モデル設定には以下が含まれます。

  • モデル ID: API 呼び出し時に使用する識別子(例: gpt-4o
  • 表示名: UI に表示される名前(例: GPT-4o
  • カテゴリ: chat、reasoning、code、image など
  • 機能フラグ: ビジョン、ファンクション呼び出し、推論モード、Web 検索のサポート可否
  • コンテキスト長: モデルが受け付ける最大入力トークン数
  • 最大出力: 1 回のレスポンスで生成できる最大トークン数

API キー

API キーは、プロバイダーサービスにアクセスするための認証資格情報です。Elftia では次の 2 通りの設定方法をサポートしています。

  1. 直接入力: 設定 UI に API キーを直接貼り付ける
  2. 環境変数参照: 名前の前に $ を付けてシステム環境変数を参照する(例: $OPENAI_API_KEY)— アプリケーション設定にキーを保存したくない場合に便利

リクエスト処理フロー

ユーザーがメッセージを送信した後、Elftia は次のようにリクエストを処理します。

ユーザーがメッセージを送信
|
v
プロバイダーとモデルを選択
|
v
API キーを解決(直接値 / 環境変数 / キープール)
|
v
Transformer: 統合リクエストをターゲット API フォーマットに変換
| (openai / anthropic / google / ...)
v
プロバイダー API にリクエストを送信
|
v
Transformer: プロバイダーのレスポンスを統合フォーマットに変換
|
v
チャット UI にレスポンスをレンダリング

デフォルトプロバイダーリスト

Elftia には以下のプロバイダーテンプレートが同梱されており、初回起動時に自動的に作成されます(デフォルトは無効 — API キーを入力して有効化することで利用可能になります)。

プロバイダーAPI フォーマットベース URL特徴
DeepSeekopenaihttps://api.deepseek.com/v1優れたコスパ、推論モード対応
OpenRouteropenaihttps://openrouter.ai/api/v1200 以上のモデルを統一課金で集約
SiliconFlowopenaihttps://api.siliconflow.cn/v1中国向け高速アクセス、オープンソースモデルをホスト
OpenAIopenaihttps://api.openai.com/v1/chat/completionsGPT シリーズ、o シリーズ推論モデル
Anthropicanthropichttps://api.anthropic.com/v1/messagesClaude シリーズ、ネイティブ思考の連鎖
Google Geminigooglehttps://generativelanguage.googleapis.com/v1beta/models/超長コンテキスト(100 万トークン)
Zhipu GLMopenaihttps://api.z.ai/api/paas/v4GLM シリーズ、Coding Plan 対応
Moonshot (Kimi)openaihttps://api.moonshot.ai/v1Kimi K2.5、超長コンテキスト
Alibaba Cloud Bailianopenaihttps://dashscope.aliyuncs.com/compatible-mode/v1Qwen シリーズ、100 万トークン
Ollamaopenaihttp://localhost:11434/v1ローカルデプロイ、完全オフライン
Groqopenaihttps://api.groq.com/openai/v1超高速推論、低レイテンシ
Claude Codeanthropichttps://api.anthropic.com/v1/messagesClaude Agent SDK 統合

上記のデフォルト以外にも、Elftia では中国のクラウドプラットフォーム(Volcengine、Tencent Cloud Hunyuan、Baidu Qianfan、MiniMax、Kuaishou KwaiKAT、Moore Threads など)向けのプリセットテンプレートを提供しており、「プロバイダーを追加」ダイアログから利用できます。

設定リファレンス

設定デフォルト説明
プロバイダー名String(テンプレート名)表示名、カスタマイズ可能
API フォーマットEnumopenaiopenai / anthropic / google / azure-openai / openai-response
ベース URLURL(テンプレートにより異なる)API リクエストアドレス
API キーString(空)$ プレフィックスで環境変数参照が可能
モデルリストArray(テンプレートにより異なる)手動追加またはモデルディスカバリーで取得
有効Booleanfalseモデル選択リストにプロバイダーを表示するかどうか
TransformerObject(フォーマットにより異なる)リクエスト・レスポンスフォーマット変換の設定
デフォルトパラメーターObjecttemperature: 0.7プロバイダーレベルのデフォルト生成パラメーター
API タイムアウトミリ秒(グローバル設定)単一リクエストのタイムアウト
同時実行制限Number(プロバイダーにより異なる)Agent モードでの最大同時リクエスト数

動作の注意事項

プロバイダーの有効化・無効化

  • 無効化されたプロバイダーはモデル選択ドロップダウンに表示されません
  • プロバイダーを無効化しても設定は削除されず、再有効化時にすべての設定が保持されます
  • 現在のセッションが使用中のモデルのプロバイダーを無効化しても既存セッションには影響しませんが、新しいメッセージではそのモデルを使用できなくなります

モデルディスカバリー

一部のプロバイダーはモデルディスカバリーをサポートしています。Elftia がプロバイダーのモデルリスト API(例: /v1/models)を呼び出して利用可能なモデルを自動取得します。モデルディスカバリーをサポートするプロバイダーには OpenAI、Anthropic、Gemini、Zhipu などが含まれます。

環境変数 API キー

API キーが $ で始まる場合、Elftia は実行時にシステム環境変数から実際の値を読み取ります。例:

  • 設定値 $OPENAI_API_KEY → 実行時に process.env.OPENAI_API_KEY を読み取る
  • 環境変数が存在しない場合、リクエストは認証エラーで失敗します

フォーマット Transformer

Transformer は Elftia のマルチ API フォーマット対応を支えるコアメカニズムです。OpenAI 以外のフォーマットを使用するすべてのプロバイダーには対応する Transformer が割り当てられます。

プロバイダー種別Transformer目的
Anthropic 公式anthropicAnthropic Messages フォーマットを維持、思考の連鎖を処理
Google GeminigeminiGemini フォーマットにリクエストを変換
OpenAI Responsesopenai-response/v1/responses エンドポイントに適応
OpenRouteropenrouterプロバイダールーティング設定を処理
DeepSeekdeepseekDeepSeek 固有の推論フィールドを処理
GroqgroqGroq のパラメーター制約に適応

トラブルシューティング

問題考えられる原因解決策
モデル選択リストにプロバイダーが表示されないプロバイダーが無効化されているプロバイダー設定に移動してトグルを有効化する
リクエストが 401 エラーを返すAPI キーが無効または期限切れAPI キーを確認・更新し、十分なクォータがあるか確認する
リクエストが 403 エラーを返すAPI キーに権限がない選択したモデルへのアクセス権が API キーにあるか確認する
環境変数キーが無効環境変数名が間違っているか未設定システムで環境変数が設定されていることを確認し、Elftia を再起動する
リクエストがタイムアウトするネットワーク未接続またはプロバイダーサービス障害ネットワーク接続を確認し、ベース URL が正しいか検証してプロキシの使用を試みる
モデルリストが空プロバイダーがモデルディスカバリーに非対応、またはキーが無効モデルを手動で追加するか、API キーが正しいか確認する
レスポンスフォーマットが異常Transformer 設定の不一致API フォーマットの選択が正しいか確認し、特定の Transformer が必要かどうか確認する
中国プロバイダーへの接続が遅いネットワーク遅延正しい国内ベース URL を使用しているか確認し、プロキシ設定を見直す

関連ページ