プロバイダーの追加
プロバイダーを追加すると、さまざまな LLM サービスを Elftia に接続し、チャット中にモデルを自由に切り替えられます。Elftia には、プリセットテンプレート、カスタム設定、インポート/エクスポートの 3 つの方法があります。
使用する場面
- Elftia を初めてセットアップしており、デフォルトプロバイダーを有効にするために API キーを設定する必要がある
- デフォルトリストに含まれていない LLM サービスに接続する必要がある
- 同じプロバイダーのインスタンスを複数追加したい(例: 異なるリージョンのエンドポイント)
- 別のデバイスから設定を移行している
方法 1: プリセットテンプレートから追加する
プリセットテンプレートには、プロバイダーの Base URL、デフォルトのモデルリスト、推奨設定が含まれています。API キーを入力するだけでセットアップを完了できます。
手順
- Settings → Provider Management を開きます
- Add Provider ボタンをクリックします
- プロバイダー一覧からプリセットテンプレートを選択します
- 表示された設定パネルで API Key を入力します
- キーの値を直接貼り付けます。例:
sk-xxxxxxxxxxxxxxxx - または環境変数を参照します。例:
$OPENAI_API_KEY
- キーの値を直接貼り付けます。例:
-
Test Connection をクリックして、キーが有効であることを確認します
- 成功: 緑色のメッセージ「Connection successful」が表示されます
- 失敗: エラーメッセージが表示されます(トラブルシューティングを参照)
-
Enabled トグルを有効にします
-
Save をクリックします
完了すると、そのプロバイダーのモデルがチャット UI のモデル選択ドロップダウンに表示されます。
プリセットテンプレート一覧
国際プロバイダー
| Preset ID | 名前 | API 形式 | Base URL | 特徴 |
|---|---|---|---|---|
openai | OpenAI | openai | https://api.openai.com/v1/chat/completions | GPT-4o/5、o1/o3 reasoning シリーズ、vision サポート |
anthropic | Anthropic | anthropic | https://api.anthropic.com/v1/messages | Claude Sonnet/Opus/Haiku 4.5、ネイティブな chain-of-thought |
gemini | Google Gemini | https://generativelanguage.googleapis.com/v1beta/models/ | 100 万トークンのコンテキスト、vision + reasoning | |
openai-response | OpenAI (Responses API) | openai-response | https://api.openai.com | GPT-5 シリーズ + o3/o4、新しい API |
azure-openai | Azure OpenAI | azure-openai | (カスタム) | エンタープライズ SLA。デプロイ名をモデルとして使用 |
openrouter | OpenRouter | openai | https://openrouter.ai/api/v1 | 1 つのキーで 200 以上のモデルを集約 |
groq | Groq | openai | https://api.groq.com/openai/v1 | 超高速推論エンジン |
ollama | Ollama | openai | http://localhost:11434/v1 | ローカルデプロイ、無料で利用可能 |
中国のクラウドプラットフォーム
| Preset ID | 名前 | API 形式 | Base URL | 特徴 |
|---|---|---|---|---|
zhipu | Zhipu GLM | openai | https://api.z.ai/api/paas/v4 | GLM-5/4.5/4.6V/4.7、Coding Plan |
volcengine | Volcengine (Ark) | openai | https://ark.cn-beijing.volces.com/api/v3 | Doubao Seed 2.0、インテリジェントルーティング、複数モデルの集約 |
kimi | Kimi (Moonshot) | openai | https://api.moonshot.ai/v1 | Kimi K2.5、256K コンテキスト |
dashscope | Alibaba Cloud Bailian | openai | https://dashscope.aliyuncs.com/compatible-mode/v1 | Qwen3 シリーズ、100 万トークン |
tencent | Tencent Cloud Hunyuan | openai | https://api.lkeap.cloud.tencent.com/v1 | Hunyuan 2.0、複数モデルの集約 |
minimax | MiniMax | anthropic | https://api.minimaxi.com/anthropic | M2.5/M2.1、Anthropic 形式 |
baidu | Baidu Qianfan | openai | https://qianfan.baidubce.com/v2 | ERNIE シリーズ、Coding Plan |
kuaishou | Kuaishou KwaiKAT | openai | https://wanqing.streamlakeapi.com/api/gateway/v1 | KAT-Coder、コーディング向けに最適化 |
mthreads | Moore Threads | openai | (設定が必要) | 国産チップ Coding Plan |
方法 2: カスタム OpenAI 互換プロバイダー
使用している LLM サービスが OpenAI 互換 API を提供している場合(ほとんどのサービスが該当します)、カスタムプロバイダーとして追加できます。
手順
- Settings → Provider Management を開きます
- Add Provider をクリックし、Custom Provider を選択します
- 基本情報を入力します:
| フィールド | 必須 | 説明 | 例 |
|---|---|---|---|
| 名前 | はい | 表示名 | My Local LLM |
| API 形式 | はい | プロトコル形式を選択 | openai(最も一般的) |
| Base URL | はい | API アドレス | http://localhost:8080/v1/chat/completions |
| API Key | いいえ | 認証キー | sk-...(ローカルサービスでは空のままにできます) |
- モデルを追加します:
- Add Model をクリックします
- モデル ID(API 呼び出し時に使用する名前。例:
llama-3.1-70b)を入力します - 表示名を入力します
- モデル機能フラグ(vision、function calling、reasoning など)を設定します
-
(任意)Transformer を設定します:
- 対象サービスの API が標準の OpenAI 形式と異なる場合は、適切な transformer を追加します
- 一般的な選択肢:
deepseek(DeepSeek 互換サービス向け)、groq(Groq 互換サービス向け)
-
Test Connection をクリックして設定を検証します
-
Enabled トグルを有効にして保存します
モデル検出
一部のプロバイダーは、/v1/models エンドポイントによる自動モデル検出をサポートしています:
- プロバイダー設定で Model Discovery Endpoint(例:
https://api.example.com/v1/models)を入力します - Discover Models ボタンをクリックします
- Elftia がエンドポイントを呼び出してモデルリストを取得します
- 返された結果から追加したいモデルを選択します
方法 3: インポート / エクスポート
設定をエクスポートする
- Settings → Provider Management を開きます
- エクスポートしたいプロバイダーを選択します
- Export ボタンをクリックします
- 設定が JSON ファイルとして保存されます
設定をインポートする
- Settings → Provider Management を開きます
- Import ボタンをクリックします
- 以前にエクスポートした JSON ファイルを選択します
- インポートされたプロバイダー情報を確認します
- API キーを入力します(セキュリティ上の理由により、エクスポートされたファイルには API キーは含まれません)
- 保存して有効化します
環境変数の API キー
API キーの管理には環境変数を使用する方法を推奨します。特に次のような場合に有効です:
- アプリケーションデータベースにキーを平文で保存したくない
- 複数のデバイス間で設定ファイルを共有し、それぞれ異なるキーを使用する
- Elftia を CI/CD や自動化シナリオで使用する
設定方法
API キー入力フィールドに、先頭に $ を付けた環境変数名を入力します:
| 入力値 | 実行時に解決される値 |
|---|---|
$OPENAI_API_KEY | process.env.OPENAI_API_KEY の値 |
$ANTHROPIC_API_KEY | process.env.ANTHROPIC_API_KEY の値 |
$MY_CUSTOM_KEY | process.env.MY_CUSTOM_KEY の値 |
注: 対応する環境変数が設定されていない場合、API リクエストは認証エラーで失敗します。環境変数を変更した後は、新しい値を反映するために Elftia を再起動する必要があります。
設定リファレンス
| 設定 | 型 | デフォルト | 説明 |
|---|---|---|---|
| 名前 | String | (テンプレート名) | プロバイダーの表示名 |
| API 形式 | Enum | openai | openai / anthropic / google / azure-openai / openai-response |
| Base URL | URL | (テンプレートにより異なる) | API リクエストアドレス。http:// または https:// で始まる必要があります |
| API Key | String | (空) | $ プレフィックスによる環境変数参照をサポート |
| モデルリスト | Array | (テンプレートにより異なる) | 追加、削除、またはモデル検出による取得が可能 |
| モデル検出エンドポイント | URL | (任意) | /v1/models などのエンドポイントを呼び出し、モデルリストを自動取得します |
| Enabled | Boolean | false | 新しく追加されたプロバイダーはデフォルトで無効です |
| Transformer | Array | (形式により異なる) | リクエスト/レスポンス形式の transformer チェーン |
| Icon | String | (テンプレートにより異なる) | プロバイダーアイコン識別子 |
| Website link | URL | (任意) | プロバイダーの Web サイト。ドキュメントリンクに使用されます |
| Notes | String | (空) | 自由形式のメモ |
| API Version | String | (Azure のみ) | Azure OpenAI の API バージョン番号 |
| Concurrency limit | Number | (プロバイダーにより異なる) | Agent モードでの最大同時リクエスト数 |
| Is official | Boolean | false | プロバイダーを公式の Anthropic プロバイダーとしてマークします(chain-of-thought 署名の処理に影響します) |
動作に関する注意
プリセットテンプレートとカスタムプロバイダーの違い
| 機能 | プリセットテンプレート | カスタムプロバイダー |
|---|---|---|
| Base URL | 自動入力 | 手動入力が必要 |
| モデルリスト | 事前設定済み | 手動追加が必要 |
| Transformer | 自動設定 | 任意 |
| モデル検出 | 一部でサポート | エンドポイントを手動設定する必要あり |
| Coding Plan | 一部でサポート | サポートなし |
| 検索連携 | 事前設定済み | 手動設定が必要 |
プロバイダー ID の一意性
各プロバイダーには一意の ID があります。同じプリセットテンプレートから複数のインスタンスを追加する場合、Elftia は ID にサフィックスを自動的に追加して一意性を確保します。
追加後の初期状態
新しく追加されたプロバイダーはデフォルトで 無効 です。チャットでそのプロバイダーのモデルを使用する前に、次の操作が必要です:
- 有効な API キーを入力する
- 接続テストに成功する
- トグルを手動で有効にする
Troubleshooting
| 問題 | 考えられる原因 | 解決策 |
|---|---|---|
| 接続テストが 401 を返す | API キーが無効または期限切れ | プロバイダーの Web サイトでキーを再生成します |
| 接続テストが 403 を返す | キーに権限がない | キーが対象モデルへアクセスできることを確認します |
| 接続テストがタイムアウトする | ネットワーク接続がない、または Base URL が誤っている | ネットワーク接続と URL の綴りを確認します |
$ENV_VAR キーが無効 | 環境変数が設定されていない | システムで環境変数を設定し、Elftia を再起動します |
| モデル検出が空のリストを返す | エンドポイントが誤っている、またはキーに権限がない | モデル検出エンドポイント URL を確認し、キーに list-models 権限があることを確認します |
| 保存が無効な URL エラーで失敗する | Base URL の形式が正しくない | http:// または https:// で始まっていることを確認します |
| カスタムプロバイダーのリクエストが失敗する | Transformer 設定の不一致 | API 形式の選択が正しいことを確認するか、対応する transformer の追加を試します |
| Azure OpenAI 接続が失敗する | API バージョンまたはデプロイ名が誤っている | API Version フィールドが入力されていることを確認します(例: 2024-08-01-preview)。モデル名にはデプロイ名を使用します |
| MiniMax リクエスト形式エラー | anthropic 形式を使用していない | MiniMax は Anthropic API 形式を使用します。anthropic を選択し、anthropic transformer を設定します |
関連ページ
- LLM Providers Overview - プロバイダーシステム全体のアーキテクチャ
- API Key Pools - 1 つのプロバイダーに複数の API キーを設定する
- Custom Endpoints - Ollama や LM Studio などのローカルサービスへ接続するための詳細ガイド
- Model Parameters - temperature や max_tokens などの生成パラメーターを設定する