> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fim.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# モデル管理

> 管理パネルでLLMプロバイダー、モデル、およびモデルグループを設定します。

FIM One は、LLM プロバイダーとモデルを管理するための機能豊富な管理 UI を提供します。このガイドでは、プロバイダーの追加、個別モデルの設定、高度な構造化出力設定の調整、およびワンクリック切り替え用のモデルグループへの整理方法について説明します。

ENV ベースの設定（管理 UI なし）については、[環境変数](/configuration/environment-variables)を参照してください。モデル選択の推奨事項については、[推奨モデル](/configuration/models)を参照してください。

## アーキテクチャ: プロバイダー、モデル、グループ

FIM One は LLM 設定を 3 つのレベルで整理します:

| レベル         | 表現するもの                                                                              | 例                                           |
| ----------- | ----------------------------------------------------------------------------------- | ------------------------------------------- |
| **プロバイダー**  | 共有認証情報のセット (API キー + ベース URL)。1 つのプロバイダーは多くのモデルをホストできます。                            | "My OpenAI Account"、"Company Bedrock Relay" |
| **モデル**     | プロバイダー下の個別モデル。独自の表示名、API モデル識別子、および詳細設定があります。                                       | "GPT-4o"、"Claude Sonnet 4.6"                |
| **モデルグループ** | ロール (General / Fast / Reasoning) にモデルを割り当てる名前付きプリセット。グループを有効化するとすべてのロールが一度に切り替わります。 | "Production (OpenAI)"、"Budget (DeepSeek)"   |

```
Provider: "My OpenAI Account"
  ├── Model: "GPT-4o"         (model_name: gpt-4o)
  ├── Model: "GPT-5 Nano"     (model_name: gpt-5-nano)
  └── Model: "o3"             (model_name: o3)

Provider: "Anthropic Direct"
  ├── Model: "Claude Sonnet"   (model_name: claude-sonnet-4-6)
  └── Model: "Claude Haiku"    (model_name: claude-haiku-4-5)

Group: "Production"
  ├── General → GPT-4o
  ├── Fast    → GPT-5 Nano
  └── Reasoning → o3
```

***

## プロバイダーの追加

<Steps>
  <Step title="モデルページを開く">
    **Admin**（サイドバー）に移動し、**Models** タブを選択します。
  </Step>

  <Step title="プロバイダーを追加をクリック">
    プロバイダーセクションの右上にある **Add Provider** ボタンをクリックします。
  </Step>

  <Step title="プリセットを選択するか、カスタムエンドポイントを使用">
    ダイアログには、一般的なプロバイダーのプリセットボタンが表示されます：**OpenAI**、**Anthropic (Claude)**、**Google Gemini**、**DeepSeek**、**Mistral AI**、および **OpenAI Compatible**（カスタムエンドポイント）。プリセットをクリックすると、プロバイダー名とベースURLが自動入力されます。

    プロバイダーがリストにない場合（例：サードパーティリレー、Ollama、またはその他のOpenAI互換エンドポイント）は、**OpenAI Compatible** を選択してください。
  </Step>

  <Step title="認証情報を入力">
    必須フィールドに入力します：

    * **Provider Name** -- わかりやすいラベル（例：「My OpenAI Account」）。これは参照用です。
    * **Base URL** -- APIエンドポイント。プリセットは自動的に入力されます。カスタムエンドポイントの場合は、完全なURL（例：Ollamaの場合は `http://localhost:11434/v1`）を入力します。
    * **API Key** -- プロバイダーのAPIキー。ローカルモデル（Ollama）の場合は、空でない任意の文字列（例：`ollama`）を入力します。
  </Step>

  <Step title="保存">
    **Create** をクリックします。プロバイダーがリストに表示され、その下にモデルを追加する準備ができます。
  </Step>
</Steps>

<Tip>
  同じサービスに対して複数のプロバイダーを作成できます。例えば、異なるAPIキーを持つ2つの「OpenAI」プロバイダー（別々の請求アカウント用）、または異なるベースURLを持つ「Anthropic (Direct)」と「Anthropic (via Bedrock)」などです。
</Tip>

***

## モデルの追加

<Steps>
  <Step title="プロバイダーを展開する">
    モデルページで、既存のプロバイダーの横にあるシェブロンをクリックして展開し、そのモデルを表示します。
  </Step>

  <Step title="モデルを追加をクリック">
    展開されたプロバイダーの下に表示される**モデルを追加**ボタンをクリックします。
  </Step>

  <Step title="モデルの詳細を入力">
    2つの必須フィールドに入力します:

    * **表示名** -- UI に表示される人間が読める名前 (例: "GPT-4o"、"Claude Sonnet")。任意の名前を付けることができます。
    * **モデル名 (API)** -- API に送信される正確なモデル識別子 (例: `gpt-4o`、`claude-sonnet-4-6`、`deepseek-chat`)。プロバイダーが期待する内容と一致する必要があります。
  </Step>

  <Step title="高度な設定を構成する (オプション)">
    **高度**トグルをクリックして、追加の設定を表示します: 最大出力トークン、コンテキストサイズ、温度、ネイティブ関数呼び出し、JSON モード。各設定の詳細については、下の[高度な設定](#advanced-settings)セクションを参照してください。
  </Step>

  <Step title="保存">
    **作成**をクリックします。モデルがそのプロバイダーの下に表示され、モデルグループへの割り当てに使用できるようになります。
  </Step>
</Steps>

***

## 高度な設定

各モデルには、FIM One が構造化出力抽出のためにプロバイダーの API とどのようにやり取りするかを制御する高度な設定があります。これらの設定は、モデル作成/編集ダイアログの **Advanced** トグルの下にあります。

### ネイティブ関数呼び出し

**設定名:** ネイティブ関数呼び出し (`tool_choice_enabled` として保存)

**デフォルト:** ON

FIM One が構造化出力抽出のために強制的な `tool_choice` を使用するかどうかを制御します。これは構造化出力の劣化チェーンのレベル 1 です -- モデルがサポートしている場合の最も信頼性の高い方法です。

**無効にする場合:**

* モデルが `"tool_choice 'specified' is incompatible with thinking enabled"` のようなエラーを返す場合 -- 常時オンの思考モデル (DeepSeek R1、Kimi K2.5) で一般的
* 構造化出力リクエストが一貫して遅い場合 (呼び出しごとに約 10 秒のペナルティがあり、その後 JSON Mode へのフォールバックが続く)

**無効にした場合の効果:** FIM One はレベル 1 (ネイティブ関数呼び出し) をスキップし、構造化出力のレベル 2 (JSON Mode) から開始します。ReAct エージェントのツール呼び出しは完全に影響を受けません -- `tool_choice="auto"` を使用し、この設定に関係なくすべてのモデルで機能します。

<Note>
  この設定は、構造化出力抽出に使用される**強制的な**ツール選択 (DAG プランニング、スキーマ注釈) にのみ影響します。ReAct エージェントには影響を**与えません**。ReAct エージェントは `tool_choice="auto"` を使用してツール呼び出しのタイミングを自由に決定します。
</Note>

技術的な詳細については、[LLM プロバイダー互換性 -- tool\_choice\_enabled](/architecture/llm-provider-guide#the-fix-tool_choice_enabled) を参照してください。

### JSON Mode

**Setting name:** JSON Mode (stored as `json_mode_enabled`)

**Default:** ON

Controls whether FIM One uses `response_format=json_object` for structured output. This is Level 2 in the degradation chain.

**When to disable:**

* Your provider rejects assistant message prefill -- primarily AWS Bedrock relays, which throw `"This model does not support assistant message prefill"`

**Effect when disabled:** FIM One skips Level 2 (JSON Mode) and falls to Level 3 (plain text extraction). Modern models produce valid JSON from prompt instructions alone, so there is typically no quality loss.

For technical details, see [LLM Provider Compatibility -- json\_mode\_enabled](/architecture/llm-provider-guide#the-fix-json_mode_enabled).

### Temperature

**デフォルト:** 0.7（未設定の場合、グローバル設定から継承）

モデル出力のランダム性を制御します。範囲：0（決定的）～2（高度に創造的）。

<Note>
  Anthropicモデルで推論/拡張思考が有効になっている場合、温度は自動的にシステムによって1.0に強制されます。手動で設定する必要はありません。
</Note>

### 最大出力トークン

モデルが単一の応答で生成できるトークンの最大数。システムデフォルト（64,000）を使用する場合は空白のままにします。VRAM が限定されたローカルモデルの場合は、これを明示的に低い値（例：8192）に設定します。

### コンテキストサイズ

モデルのコンテキストウィンドウサイズ（トークン単位）。システムデフォルト（128,000）を使用する場合は空白のままにしてください。ローカルモデルの場合、モデルと利用可能なメモリに応じて、通常4K～32Kの範囲でモデルの実際の機能に合わせて設定してください。

## 推奨設定

ほとんどのモデルはデフォルト設定（両方のトグルがON）で正しく動作します。エラーが発生した場合や不要なレイテンシーが生じた場合にのみ調整してください。

以下の表は、一般的なプロバイダーとモデルをカバーしています。データはUniAPI機能タグから取得され、**2026-03-22**時点でのランタイム動作に対して検証されています。モデル機能は頻繁に変更されます。エラーが発生した場合は、プロバイダーの最新ドキュメントを確認してください。

### クイックルール

* **Native FC ON** 関数呼び出しをサポートするモデル向け（ほとんどの最新モデル）
* **Native FC OFF** 強制的な `tool_choice` を拒否する思考常時オンモデル向け
* **JSON Mode ON** ほとんどのモデル向け（安全なデフォルト）
* **JSON Mode OFF** AWS Bedrockリレー向けのみ（プリフィル拒否）

### プロバイダー別設定マトリックス

**OpenAI**

| Model          | Role      | Context | Max Output | Native FC | JSON Mode | Notes                                                 |
| -------------- | --------- | ------- | ---------- | --------- | --------- | ----------------------------------------------------- |
| `gpt-5.4`      | General   | 1,050K  | 128K       | ON        | ON        | Function calling + structured output + reasoning      |
| `gpt-5.4-mini` | Fast      | 400K    | 128K       | ON        | ON        | Function calling + structured output + reasoning      |
| `o3-pro`       | Reasoning | 200K    | 100K       | ON        | ON        | Reasoning model; FC works with auto-disabled thinking |

**Anthropic (Claude)**

| Model               | Role      | Context | Max Output | Native FC | JSON Mode | Notes                                                       |
| ------------------- | --------- | ------- | ---------- | --------- | --------- | ----------------------------------------------------------- |
| `claude-sonnet-4-6` | General   | 1,000K  | 64K        | ON        | ON        | Function calling + reasoning; thinking auto-disabled for FC |
| `claude-haiku-4-5`  | Fast      | 200K    | 64K        | ON        | ON        | Function calling supported                                  |
| `claude-opus-4-6`   | Reasoning | 1,000K  | 128K       | ON        | ON        | Function calling + reasoning; thinking auto-disabled for FC |

**Google Gemini**

| Model                    | Role      | Context | Max Output | Native FC | JSON Mode | Notes                                                        |
| ------------------------ | --------- | ------- | ---------- | --------- | --------- | ------------------------------------------------------------ |
| `gemini-3.1-pro-preview` | General   | 1,048K  | 65K        | ON        | ON        | Latest preview; successor to deprecated gemini-3-pro-preview |
| `gemini-2.5-pro`         | Fast      | 1,048K  | 65K        | ON        | ON        | Stable GA; production-ready                                  |
| `gemini-3.1-pro-preview` | Reasoning | 1,048K  | 65K        | ON        | ON        | Thinking support with configurable thinking\_level           |

**DeepSeek**

| Model               | Role      | Context | Max Output | Native FC | JSON Mode | Notes                                                              |
| ------------------- | --------- | ------- | ---------- | --------- | --------- | ------------------------------------------------------------------ |
| `deepseek-chat`     | General   | 128K    | 8K         | ON        | ON        | V3.2 non-thinking mode; FC + JSON mode supported                   |
| `deepseek-chat`     | Fast      | 128K    | 8K         | ON        | ON        | Same model as General; only two official API model IDs exist       |
| `deepseek-reasoner` | Reasoning | 128K    | 64K        | **OFF**   | ON        | Thinking always-on; forced tool\_choice rejected; 64K includes CoT |

**xAI (Grok)**

| Model                         | Role      | Context | Max Output | Native FC | JSON Mode | Notes                                                                           |
| ----------------------------- | --------- | ------- | ---------- | --------- | --------- | ------------------------------------------------------------------------------- |
| `grok-4-1-fast-non-reasoning` | General   | 2,000K  | 30K        | ON        | ON        | Function calling + structured output                                            |
| `grok-3-mini-fast`            | Fast      | 131K    | 131K       | ON        | ON        | Function calling + structured output + reasoning; 131K is shared context budget |
| `grok-4-1-fast-reasoning`     | Reasoning | 2,000K  | 30K        | ON        | ON        | Function calling + structured output + reasoning                                |

**Qwen (Alibaba Cloud)**

| Model               | Role      | Context | Max Output | Native FC | JSON Mode | Notes                                                                  |
| ------------------- | --------- | ------- | ---------- | --------- | --------- | ---------------------------------------------------------------------- |
| `qwen3.5-plus`      | General   | 1,000K  | 64K        | ON        | ON        | Function calling + structured output                                   |
| `qwen-turbo-latest` | Fast      | 1,000K  | 16K        | ON        | ON        | FC likely supported (UniAPI tags incomplete)                           |
| `qwq-plus`          | Reasoning | 131K    | 16K        | ON        | ON        | Reasoning + function calling; thinking toggleable via enable\_thinking |

**Zhipu (GLM)**

| Model            | Role      | Context | Max Output | Native FC | JSON Mode | Notes                                                          |
| ---------------- | --------- | ------- | ---------- | --------- | --------- | -------------------------------------------------------------- |
| `glm-4.7`        | General   | 200K    | 65K        | **OFF**   | ON        | Forced tool\_choice not supported (`auto` only); strong coding |
| `glm-4.7-flashx` | Fast      | 200K    | 65K        | **OFF**   | ON        | Higher throughput variant; free `glm-4.7-flash` also available |
| `glm-5`          | Reasoning | 200K    | 65K        | **OFF**   | ON        | 745B MoE flagship; built-in reasoning (no API toggle)          |

**Moonshot (Kimi)**

| Model              | Role      | Context | Max Output | Native FC | JSON Mode | Notes                                                                   |
| ------------------ | --------- | ------- | ---------- | --------- | --------- | ----------------------------------------------------------------------- |
| `kimi-k2.5`        | General   | 262K    | 65K        | **OFF**   | ON        | FC works but forced tool\_choice rejected when thinking is on (default) |
| `kimi-k2`          | Fast      | 131K    | 32K        | ON        | ON        | Non-thinking; native FC works (verified in production)                  |
| `kimi-k2-thinking` | Reasoning | 131K    | --         | **OFF**   | ON        | Thinking always-on; forced tool\_choice rejected                        |

**MiniMax**

| Model                    | Role         | Context | Max Output | Native FC | JSON Mode | Notes                                                                  |
| ------------------------ | ------------ | ------- | ---------- | --------- | --------- | ---------------------------------------------------------------------- |
| `MiniMax-M2.7`           | General      | 205K    | 131K       | ON        | ON        | Latest (Mar 2026); function calling + structured output                |
| `MiniMax-M2.5`           | Fast         | 197K    | 65K        | ON        | ON        | Function calling + structured output; cheaper cache read (\$0.03/MTok) |
| `MiniMax-M2.7-highspeed` | Fast (speed) | 205K    | 131K       | ON        | ON        | 2x throughput (\~100 tok/s), 2x cost                                   |
| `MiniMax-M2.5-highspeed` | Fast (speed) | 197K    | 65K        | ON        | ON        | 2x throughput (\~100 tok/s), 2x cost                                   |

**ByteDance (Doubao)**

| Model                 | Role      | Context | Max Output | Native FC | JSON Mode | Notes                                                 |
| --------------------- | --------- | ------- | ---------- | --------- | --------- | ----------------------------------------------------- |
| `doubao-seed-2-0-pro` | General   | 256K    | 128K       | ON        | ON        | Function calling + structured output + reasoning      |
| `doubao-seed-1-6`     | Fast      | 256K    | 16K        | ON        | ON        | Function calling + structured output + reasoning      |
| `doubao-seed-1-6`     | Reasoning | 256K    | 16K        | ON        | ON        | Supports `reasoning_effort` (minimal/low/medium/high) |

**Meta (Llama)**

| Model           | Role    | Context | Max Output | Native FC | JSON Mode | Notes                                                                 |
| --------------- | ------- | ------- | ---------- | --------- | --------- | --------------------------------------------------------------------- |
| `llama-3.3-70b` | General | 131K    | 16K        | ON        | ON        | FC + JSON mode depend on hosting provider; max output varies (2K–16K) |

<Note>
  **Max Outputの「--」について** は、プロバイダーが制限を報告しなかったことを意味します。実際には、これらのモデルは通常4K～16Kの出力トークンをサポートしています。特定の値が必要な場合は、モデルの詳細設定で **Max Output Tokens** を明示的に設定してください。
</Note>

<Tip>
  **診断方法：** アプリケーションログで `structured_llm_call: native_fc call raised` 警告を確認してください。これらの警告の後に JSON Mode 抽出が成功している場合、そのモデルはネイティブ関数呼び出しの恩恵を受けていません。その場合、そのモデルの **Native Function Calling** を無効にして、無駄な API 呼び出しと構造化出力リクエストごとの約10秒のレイテンシペナルティを排除してください。
</Tip>

<Warning>
  モデルの機能はプロバイダーが API を更新するにつれて頻繁に変わります。上記の推奨事項は **2026-03-26** のデータ（UniAPI 機能タグ + 本番環境ランタイム検証）に基づいています。以前に機能していたモデルがエラーを返し始めた場合は、プロバイダーの変更ログで破壊的な変更を確認してください。
</Warning>

## モデルグループ

モデルグループを使用すると、モデルを特定のロールに割り当て、1回のクリックで設定を切り替えることができます。

### ロール

FIM One は 3 つのモデルロールを使用します。各ロールは実行パイプラインで異なる目的を果たします:

| ロール           | 用途                                                        | 推奨事項                                                                       |
| ------------- | --------------------------------------------------------- | -------------------------------------------------------------------------- |
| **General**   | 計画、分析、ReAct エージェント、DAG ステップ実行（デフォルト）                      | 最も高性能なモデル（例: `gpt-4o`、`claude-sonnet-4-6`）                                 |
| **Fast**      | `model_hint="fast"` DAG ステップ、コンテキスト圧縮、履歴要約                | 速度とコストに最適化（例: `gpt-5-nano`、`deepseek-chat`）。割り当てられていない場合は General にフォールバック |
| **Reasoning** | `model_hint="reasoning"` DAG ステップ、ドメイン段階的 ReAct（法律/医療/金融） | 強力な推論モデル（例: `o3`、`deepseek-reasoner`）。割り当てられていない場合は General にフォールバック       |

### モデルグループの作成

<Steps>
  <Step title="グループセクションを開く">
    **Admin > Models** ページで、**Model Groups** セクションまでスクロールします。
  </Step>

  <Step title="グループを追加をクリック">
    **Add Group** ボタンをクリックします。
  </Step>

  <Step title="グループに名前を付ける">
    わかりやすい名前を入力します（例：「Production (OpenAI)」、「Budget (DeepSeek)」、「Local Dev」）。
  </Step>

  <Step title="ロールにモデルを割り当てる">
    各ロール（General、Fast、Reasoning）について、ドロップダウンからモデルを選択します。ドロップダウンには、アクティブなプロバイダーからのすべてのアクティブなモデルが表示され、プロバイダー名でグループ化されています。ロールを未割り当てのままにすることができます。その場合、General モデルにフォールバックします（General も未割り当ての場合は、ENV で設定されたモデルにフォールバックします）。
  </Step>

  <Step title="保存">
    **Create** をクリックします。グループがアクティベーション可能な状態になります。
  </Step>
</Steps>

### グループの有効化

モデルグループを有効化するには、モデルページのドロップダウンまたは有効化コントロールを使用します。一度に1つのグループのみをアクティブにできます。グループを有効化すると、そのモデル割り当てがすべての新しい会話に直ちに適用されます。

現在のグループを無効化する（ENV設定されたモデルにフォールバック）には、無効化オプションを選択します。

<Warning>
  アクティブなモデルグループを切り替えると、システム全体の**すべての新しい会話**に影響します。進行中の既存の会話は、開始時にアクティブだったモデルを使用し続けます。
</Warning>

***

## ドメイン対応モデルエスカレーション

オートルーターが専門ドメイン — **法律**、**医療**、または**金融** — を検出すると、システムは通常のロール割り当てを超えてモデル選択を自動的にエスカレートします：

* **ReAct モード:** 一般モデルは**推論モデル**（`registry.get_by_role("reasoning")`）に置き換えられます。これは、モデルグループの推論スロットが DAG `model_hint="reasoning"` ステップだけでなく、ドメイン固有の ReAct タスクのエスカレーションターゲットとしても機能することを意味します。
* **DAG モード:** ドメインコンテキストはプランナープロンプトに注入され、専門家の精度が必要なステップに `model_hint="reasoning"` を割り当てるようガイドします。

このエスカレーションは自動的に行われ、アクティブなモデルグループに推論モデルが割り当てられている（または `REASONING_LLM_MODEL` 環境変数経由で）以外の設定は不要です。

**関連する環境変数:**

| 変数                                  | デフォルト  | 説明                                                                                 |
| ----------------------------------- | ------ | ---------------------------------------------------------------------------------- |
| `DAG_CITATION_VERIFICATION`         | `true` | 法律/医療/金融コンテンツのステップ後引用検証を有効にします。正規表現を使用して引用を抽出し、LLM判定を使用して精度を検証します。                 |
| `DAG_STRUCTURED_CONTEXT_MULTIPLIER` | `3.0`  | DAG 依存関係コンテキストの構造化コンテンツ（引用、テーブル、コードブロック）の切り詰め予算乗数。値が高いほど、ステップ間でより多くの構造化データが保持されます。 |

<Tip>
  ワークロードが法律、医療、または金融クエリを含む場合は、推論モデルが強力な推論者（例：`o3`、`claude-opus-4-6`、`deepseek-reasoner`）であることを確認してください。自動エスカレーションはこのスロットがドメイン重要な精度要件を処理できるモデルで満たされていることに依存しています。
</Tip>

## ENV フォールバック

アクティブな管理者設定モデルグループがない場合、FIM One は ENV ベースの設定にフォールバックします:

| ロール       | ENV 変数                                       |
| --------- | -------------------------------------------- |
| General   | `LLM_MODEL`                                  |
| Fast      | `FAST_LLM_MODEL` (`LLM_MODEL` にフォールバック)      |
| Reasoning | `REASONING_LLM_MODEL` (`LLM_MODEL` にフォールバック) |

管理者設定モデルは常に ENV 変数よりも優先されます。システムヘルスチェックは両方のソースを考慮します -- アクティブなモデルグループまたは有効な ENV 変数のいずれかが設定されている限り、LLM サブシステムは正常と報告されます。

完全な ENV リファレンスについては、[環境変数](/configuration/environment-variables#llm-required)を参照してください。

## エクスポートとインポート

モデルページでは、プロバイダーとモデルの設定全体（プロバイダー、モデル、グループ）をJSONファイルとしてエクスポートし、別のインスタンスにインポートできます。これは以下の場合に便利です：

* 開発環境、ステージング環境、本番環境間での設定の移行
* チームメンバーと既知の良好なモデル設定を共有する
* 変更を加える前に設定をバックアップする

<Warning>
  エクスポートされた設定には、APIキーは**含まれません**。インポート後、各プロバイダーを編集して適切なAPIキーを入力する必要があります。
</Warning>
