カスタムエンドポイント
カスタムエンドポイント機能を使うと、ローカルにデプロイした LLM 推論サービス(Ollama や LM Studio など)や、企業のプライベートデプロイ API を Elftia に接続できます。ほとんどのローカル推論フレームワークは OpenAI 互換 API を提供しているため、設定は簡単です。
使用する場面
- オープンソースモデル(Llama、Qwen、Mistral など)をローカルで実行し、完全にオフラインで使用したい
- 会社が社内ネットワークにプライベート LLM サービスをデプロイしている
- 公式 OpenAI API ではなく Azure OpenAI Service を使用している
- セルフホストの推論クラスター(vLLM や TGI など)に接続する必要がある
- LM Studio のグラフィカルなローカル推論環境を使用したい
Ollama
Ollama は最も人気のあるローカルモデルランナーで、さまざまなオープンソースモデルのワンクリックダウンロードと実行をサポートしています。
前提条件
- Ollama がインストール済み(download)
- 少なくとも 1 つのモデルをダウンロード済み(例:
ollama pull llama3.1)
手順
- Ollama が実行中であることを確認します
- Windows/macOS: インストール後、Ollama はデフォルトでバックグラウンドサービスとして実行されます
- Linux:
ollama serveを実行してサービスを開始します - デフォルトの待受アドレス:
http://localhost:11434
-
Elftia で Settings → Provider Management を開きます
-
デフォルトの Ollama プロバイダーを探します(存在しない場合は、Add Provider をクリック → Ollama プリセットを選択)
-
設定を確認します。
| フィールド | 値 |
|---|---|
| API Format | openai |
| Base URL | http://localhost:11434/v1 |
| API Key | (空のまま。Ollama はデフォルトで認証を必要としません) |
- ダウンロード済みのモデルを追加します。
- Add Model をクリックします
- Ollama に表示されるモデル名を入力します(
ollama listの出力と一致させます) - 例:
llama3.1、qwen2.5:14b、codellama:34b
-
Enabled トグルをオンにして保存します
-
これで Ollama モデルがチャット UI のモデル選択に表示されます
一般的な Ollama モデル
| モデル名 | パラメーター | 用途 | ダウンロードコマンド |
|---|---|---|---|
llama3.1 | 8B | 汎用チャット | ollama pull llama3.1 |
llama3.1:70b | 70B | 高品質チャット | ollama pull llama3.1:70b |
qwen2.5:14b | 14B | 中国語/英語チャット | ollama pull qwen2.5:14b |
codellama:34b | 34B | コード生成 | ollama pull codellama:34b |
deepseek-coder-v2 | 16B | コード支援 | ollama pull deepseek-coder-v2 |
mistral | 7B | 軽量チャット | ollama pull mistral |
llava | 7B | ビジョン理解 | ollama pull llava |
リモート Ollama
Ollama がローカルネットワーク上の別のマシンで実行されている場合:
- Ollama を実行しているマシンで、環境変数
OLLAMA_HOST=0.0.0.0:11434を設定します - Ollama サービスを再起動します
- Elftia で Base URL を
http://<remote-IP>:11434/v1に変更します
LM Studio
LM Studio は、ローカルモデルの管理と推論のためのグラフィカルインターフェイスを提供し、組み込みの OpenAI 互換 API サーバーを備えています。
前提条件
- LM Studio がインストール済み(download)
- 少なくとも 1 つのモデルをダウンロードして読み込み済み
手順
- LM Studio でローカルサーバーを開始します。
- LM Studio を開きます
- Local Server タブに切り替えます
- モデルを読み込みます
- Start Server をクリックします
- サーバーアドレスをメモします(デフォルト
http://localhost:1234)
-
Elftia で Settings → Provider Management を開きます
-
Add Provider をクリック → Custom Provider を選択します
-
設定を入力します。
| フィールド | 値 |
|---|---|
| Name | LM Studio |
| API Format | openai |
| Base URL | http://localhost:1234/v1/chat/completions |
| API Key | lm-studio(LM Studio はキーを検証しませんが、フィールドが必須の場合は任意の値を入力します) |
-
モデルを追加します。
- LM Studio で読み込まれているモデル名を入力します
- モデル名は LM Studio に表示されるモデル識別子と一致している必要があります
-
接続をテストし、有効化して保存します
vLLM / Text Generation Inference
vLLM と TGI は、本番環境のデプロイで広く使われている高性能 LLM 推論エンジンです。どちらも OpenAI 互換 API を提供しています。
vLLM 設定
-
vLLM サービスを開始します(例):
python -m vllm.entrypoints.openai.api_server \--model meta-llama/Llama-3.1-8B-Instruct \--port 8000 -
Elftia でカスタムプロバイダーを追加します。
| フィールド | 値 |
|---|---|
| Name | vLLM Local |
| API Format | openai |
| Base URL | http://localhost:8000/v1/chat/completions |
| API Key | (空のまま、または vLLM の --api-key 値を入力) |
- モデルを追加します。vLLM 起動時に指定した
--model名を使用します
TGI 設定
-
TGI サービスを起動した後、その OpenAI 互換エンドポイントを使用します
-
Elftia でカスタムプロバイダーを追加します。
| フィールド | 値 |
|---|---|
| Name | TGI |
| API Format | openai |
| Base URL | http://localhost:8080/v1/chat/completions |
| API Key | (空のまま、または対応する値を入力) |
Azure OpenAI
Azure OpenAI Service は OpenAI と同じモデルを使用しますが、それらを Azure プラットフォーム上でホストし、エンタープライズグレードの SLA とデータコンプライアンス保証を提供します。
前提条件
- Azure サブスクリプションと Azure OpenAI Service へのアクセス権
- Azure Portal で作成済みの Azure OpenAI リソース
- 少なくとも 1 つのモデルをデプロイ済み(デプロイ名付き)
手順
- Azure Portal から次の情報を取得します。
- Endpoint:
https://<resource-name>.openai.azure.com形式 - API Key: 「Keys and Endpoint」ページで確認可能
- Deployment name: 「Model Deployments」ページで確認可能
- API Version:
2024-08-01-previewを推奨
- Endpoint:
-
Elftia で Settings → Provider Management を開きます
-
Add Provider をクリック → Azure OpenAI プリセットを選択します
-
設定を入力します。
| フィールド | 値 | 例 |
|---|---|---|
| API Format | azure-openai | -- |
| Base URL | Azure エンドポイント | https://my-resource.openai.azure.com |
| API Key | Azure API key | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
| API Version | API バージョン番号 | 2024-08-01-preview |
-
モデルを追加します。
- モデル ID として Azure の deployment name を使用します(モデル名ではありません)
- たとえば
gpt-4oをmy-gpt4oとしてデプロイした場合は、モデル ID としてmy-gpt4oを入力します
-
接続をテストし、有効化して保存します
Azure と標準 OpenAI の違い
| 機能 | OpenAI | Azure OpenAI |
|---|---|---|
| Base URL | https://api.openai.com/v1/... | https://<resource>.openai.azure.com |
| 認証 | Authorization: Bearer sk-... | api-key: ... |
| モデル指定 | モデル名を使用(例: gpt-4o) | デプロイ名を使用 |
| API バージョン | 不要 | 必須(URL パラメーター) |
| API Format | openai | azure-openai |
設定リファレンス
次の設定項目はカスタムエンドポイントのシナリオに適用されます。
| 設定 | 型 | デフォルト | 説明 |
|---|---|---|---|
| Name | String | -- | カスタム表示名 |
| API Format | Enum | openai | ローカルサービスは通常 openai を使用し、Azure は azure-openai を使用します |
| Base URL | URL | -- | 推論サービスの API アドレス |
| API Key | String | (空) | ローカルサービスでは通常不要です。Azure では必須です |
| API Version | String | (空) | Azure OpenAI のみ必須です。例: 2024-08-01-preview |
| Model list | Array | (空) | サービスで利用可能なモデル名を手動で入力します |
| Transformer | Array | (空) | カスタムエンドポイントでは通常、追加のトランスフォーマーは不要です |
動作上の注意
ローカルサービスに関する特別な考慮事項
- API キー検証なし: ほとんどのローカルサービス(Ollama、LM Studio)は API キーを必要としません。Elftia の API キーフィールドが必須の場合は、任意のプレースホルダー値を入力してください
- ホットモデル読み込み: 一部のサービスは動的なモデル読み込みをサポートしています。サービスに新しいモデルを追加した後、Elftia で対応するモデル名を追加するだけです
- 同時実行制限: ローカルサービスは通常、一度に 1 件のリクエストしか処理しません。同時実行制限を 1 に設定してください
- 初回応答レイテンシ: ローカルモデルは GPU メモリに読み込むまで数秒必要な場合があります。最初のリクエストでは目立つ遅延が発生します
プロキシとネットワーク
- ローカルサービス(
localhost/127.0.0.1)はグローバルプロキシを経由しません - LAN サービスは、プロキシ設定によってはプロキシ除外リストに追加する必要があります
モデル機能
ローカルモデルの機能フラグ(ビジョン、関数呼び出しなど)は、Elftia で手動設定する必要があります。モデルがビジョンに対応していてもフラグが設定されていない場合、Elftia はそのモデルに画像を送信しません。
トラブルシューティング
| 問題 | 考えられる原因 | 解決策 |
|---|---|---|
| Connection refused | ローカルサービスが実行されていない | Ollama/LM Studio/vLLM が実行中であることを確認します |
| Connection timeout | ポートが間違っている、またはファイアウォールがブロックしている | ポート番号を確認し、ファイアウォールが接続を許可していることを確認します |
| Model not found | モデル名がサーバーと一致していない | ollama list またはサーバーのモデル一覧で名前を確認します |
| Ollama remote connection fails | Ollama はデフォルトで localhost のみを待ち受けます | OLLAMA_HOST=0.0.0.0:11434 を設定して再起動します |
| LM Studio returns empty response | モデルがメモリに読み込まれていない | モデルが読み込まれており、LM Studio で「Ready」と表示されていることを確認します |
| Azure returns 404 | デプロイ名が正しくない | モデル ID としてモデル名ではなくデプロイ名を使用していることを確認します |
| Azure returns 401 | API バージョンまたはキーが正しくない | API Version フィールドと API Key を確認します |
| Garbled characters in response | モデルがその言語をサポートしていない | 対象言語をサポートするモデル(例: Qwen、ChatGLM)に切り替えます |
| Insufficient GPU memory | モデルが大きすぎる | より小さい量子化バージョン(例: llama3.1:8b-q4_0)を選択します |
| Request hangs with no response | ローカルサービスがモデルを読み込み中 | モデルの読み込み完了を待ちます。最初のリクエストには 10-30 秒かかる場合があります |
関連ページ
- LLM Providers Overview - プロバイダーシステムと API 形式を理解する
- Adding a Provider - プロバイダー追加の完全ガイド
- API Key Pools - クラウドプロバイダー向けの複数キー管理
- Model Parameters - temperature などの生成パラメーターを調整する