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

# モデル仕様

> Provider、AIModelEntity、モデルタイプ、設定方法、パラメータルール、認証情報スキーマなど、Dify モデルプラグインを定義するエンティティのリファレンス

> このドキュメントは AI によって自動翻訳されています。不正確な部分がある場合は、[英語版](/en/develop-plugin/features-and-specs/plugin-types/model-designing-rules) を参照してください。

モデルプラグインは 2 つのエンティティで自身を記述します。認証を処理しサポートするモデルを列挙する [Provider](#provider) と、モデルごとにそのタイプ、機能、パラメータを宣言する [AIModelEntity](#aimodelentity) です。

<Note>
  以下のすべてのエンティティは、`dify_plugin.entities.model` モジュールの `Pydantic BaseModel` サブクラスです。
</Note>

## 簡易判断ガイド

<CardGroup cols={2}>
  <Card title="認証のみ：事前定義モデル" icon="key">
    ユーザーが API キーを貼り付けると、用意したモデル一覧をすべて利用できます。`configurate_methods: [predefined-model]` を設定し、各モデルの AIModelEntity を YAML で定義します。
  </Card>

  <Card title="ユーザー指定モデル" icon="user-pen">
    ユーザーが独自のモデル名とベース URL（OpenAI 互換エンドポイント、カスタムデプロイなど）を設定します。`configurate_methods: [customizable-model]` を使用し、[カスタマイズ可能モデル](/ja/develop-plugin/features-and-specs/advanced-development/customizable-model) を参照してください。
  </Card>

  <Card title="混在" icon="layer-group">
    組み込みのカタログに加えて、ユーザーが追加するカスタムモデルにも対応します。両方の `configurate_methods` の値を組み合わせます。
  </Card>

  <Card title="チュートリアル" icon="route">
    エンドツーエンドの例については、[新しいモデルプロバイダーの作成](/ja/develop-plugin/dev-guides-and-walkthroughs/creating-new-model-provider) を参照してください。
  </Card>
</CardGroup>

## Provider

<ParamField path="provider" type="string">
  プロバイダー識別子。例：`openai`。
</ParamField>

<ParamField path="label" type="object">
  プロバイダーの表示名（i18n）。`en_US`（英語）と `zh_Hans`（中国語）をサポートします。

  <ParamField path="zh_Hans" type="string">
    中国語ラベル。設定されていない場合は `en_US` にフォールバックします。
  </ParamField>

  <ParamField path="en_US" type="string" required>
    英語ラベル
  </ParamField>
</ParamField>

<ParamField path="description" type="object">
  プロバイダーの説明（i18n）。

  <ParamField path="zh_Hans" type="string">
    中国語の説明。
  </ParamField>

  <ParamField path="en_US" type="string" required>
    英語の説明。
  </ParamField>
</ParamField>

<ParamField path="icon_small" type="object">
  プロバイダーの小アイコン。プロバイダー実装ディレクトリ下の `_assets` ディレクトリに保存します。

  <ParamField path="zh_Hans" type="string">
    中国語アイコン。
  </ParamField>

  <ParamField path="en_US" type="string" required>
    英語アイコン。
  </ParamField>
</ParamField>

<ParamField path="icon_large" type="object">
  プロバイダーの大アイコン。プロバイダー実装ディレクトリ下の `_assets` ディレクトリに保存します。

  <ParamField path="zh_Hans" type="string">
    中国語アイコン。
  </ParamField>

  <ParamField path="en_US" type="string" required>
    英語アイコン。
  </ParamField>
</ParamField>

<ParamField path="background" type="string">
  背景色の値。例：`#FFFFFF`。空の場合はフロントエンドのデフォルト色が使用されます。
</ParamField>

<ParamField path="help" type="object">
  ヘルプ情報。

  <ParamField path="title" type="object">
    ヘルプタイトル（i18n）。

    <ParamField path="zh_Hans" type="string">
      中国語タイトル。
    </ParamField>

    <ParamField path="en_US" type="string" required>
      英語タイトル。
    </ParamField>
  </ParamField>

  <ParamField path="url" type="object">
    ヘルプリンク（i18n）。

    <ParamField path="zh_Hans" type="string">
      中国語リンク。
    </ParamField>

    <ParamField path="en_US" type="string" required>
      英語リンク。
    </ParamField>
  </ParamField>
</ParamField>

<ParamField path="supported_model_types" type="array[ModelType]" required>
  サポートするモデルタイプ。
</ParamField>

<ParamField path="configurate_methods" type="array[ConfigurateMethod]" required>
  設定方法。
</ParamField>

<ParamField path="provider_credential_schema" type="ProviderCredentialSchema" required>
  プロバイダー認証情報の仕様。
</ParamField>

<ParamField path="model_credential_schema" type="ModelCredentialSchema">
  モデル認証情報の仕様。
</ParamField>

## AIModelEntity

<ParamField path="model" type="string" required>
  モデル識別子。例：`gpt-3.5-turbo`。
</ParamField>

<ParamField path="label" type="object">
  モデルの表示名（i18n）。`en_US`（英語）と `zh_Hans`（中国語）をサポートします。

  <ParamField path="zh_Hans" type="string">
    中国語ラベル。
  </ParamField>

  <ParamField path="en_US" type="string" required>
    英語ラベル。
  </ParamField>
</ParamField>

<ParamField path="model_type" type="ModelType" required>
  モデルタイプ。
</ParamField>

<ParamField path="features" type="array[ModelFeature]">
  サポートする機能。
</ParamField>

<ParamField path="model_properties" type="object" required>
  モデルプロパティ。

  <ParamField path="mode" type="LLMMode">
    モード（モデルタイプ `llm`）。
  </ParamField>

  <ParamField path="context_size" type="integer">
    コンテキストサイズ（モデルタイプ `llm` および `text-embedding`）。
  </ParamField>

  <ParamField path="max_chunks" type="integer">
    最大チャンク数（モデルタイプ `text-embedding` および `moderation`）。
  </ParamField>

  <ParamField path="file_upload_limit" type="integer">
    最大ファイルアップロードサイズ（単位：MB、モデルタイプ `speech2text`）。
  </ParamField>

  <ParamField path="supported_file_extensions" type="string">
    サポートするファイル拡張子。例：`mp3,mp4`（モデルタイプ `speech2text`）。
  </ParamField>

  <ParamField path="default_voice" type="string">
    デフォルト音声。`alloy`、`echo`、`fable`、`onyx`、`nova`、`shimmer` のいずれか（モデルタイプ `tts`）。
  </ParamField>

  <ParamField path="voices" type="array">
    利用可能な音声（モデルタイプ `tts`）。

    <ParamField path="mode" type="string">
      音声モデル。
    </ParamField>

    <ParamField path="name" type="string">
      音声モデルの表示名。
    </ParamField>

    <ParamField path="language" type="string">
      音声モデルがサポートする言語。
    </ParamField>
  </ParamField>

  <ParamField path="word_limit" type="integer">
    1 回の変換あたりの単語数の上限。デフォルトでは段落単位で分割します（モデルタイプ `tts`）。
  </ParamField>

  <ParamField path="audio_type" type="string">
    サポートするオーディオファイル拡張子。例：`mp3,wav`（モデルタイプ `tts`）。
  </ParamField>

  <ParamField path="max_workers" type="integer">
    テキストからオーディオへの変換の同時タスク数（モデルタイプ `tts`）。
  </ParamField>

  <ParamField path="max_characters_per_chunk" type="integer">
    チャンクあたりの最大文字数（モデルタイプ `moderation`）。
  </ParamField>
</ParamField>

<ParamField path="parameter_rules" type="array[ParameterRule]">
  モデル呼び出しパラメータのルール。
</ParamField>

<ParamField path="pricing" type="PriceConfig">
  価格情報。
</ParamField>

<ParamField path="deprecated" type="boolean">
  モデルが非推奨かどうか。非推奨のモデルはモデル一覧に表示されなくなりますが、既存の設定は引き続き動作します。デフォルトは `False` です。
</ParamField>

## ModelType

<ParamField path="llm" type="string">
  テキスト生成モデル。
</ParamField>

<ParamField path="text-embedding" type="string">
  テキスト埋め込みモデル。
</ParamField>

<ParamField path="rerank" type="string">
  リランクモデル。
</ParamField>

<ParamField path="speech2text" type="string">
  音声からテキスト。
</ParamField>

<ParamField path="tts" type="string">
  テキストから音声。
</ParamField>

<ParamField path="moderation" type="string">
  コンテンツモデレーション。
</ParamField>

## ConfigurateMethod

<ParamField path="predefined-model" type="string">
  事前定義モデル。ユーザーは統一されたプロバイダー認証情報を一度設定するだけで、そのプロバイダー下のすべての事前定義モデルを使用できます。
</ParamField>

<ParamField path="customizable-model" type="string">
  カスタマイズ可能モデル。ユーザーはモデルごとに認証情報の設定を追加します。
</ParamField>

<ParamField path="fetch-from-remote" type="string">
  リモートから取得。`predefined-model` と同様に統一されたプロバイダー認証情報のみが必要ですが、モデル一覧はその認証情報を使用してプロバイダーから取得されます。
</ParamField>

## ModelFeature

<ParamField path="agent-thought" type="string">
  Agent 推論。一般的に 70B を超えるモデルは思考連鎖（chain-of-thought）の能力を備えています。
</ParamField>

<ParamField path="vision" type="string">
  ビジョン（画像理解）。
</ParamField>

<ParamField path="tool-call" type="string">
  ツール呼び出し。
</ParamField>

<ParamField path="multi-tool-call" type="string">
  複数ツール呼び出し。
</ParamField>

<ParamField path="stream-tool-call" type="string">
  ストリーミングツール呼び出し。
</ParamField>

## FetchFrom

<ParamField path="predefined-model" type="string">
  事前定義モデル。
</ParamField>

<ParamField path="fetch-from-remote" type="string">
  リモートモデル。
</ParamField>

## LLMMode

<ParamField path="completion" type="string">
  テキスト補完。
</ParamField>

<ParamField path="chat" type="string">
  チャット。
</ParamField>

## ParameterRule

<ParamField path="name" type="string" required>
  モデル呼び出しで使用される実際のパラメータ名。
</ParamField>

<ParamField path="use_template" type="string">
  使用するテンプレート。
</ParamField>

5 つのパラメータテンプレートが事前定義されています。

* `temperature`
* `top_p`
* `frequency_penalty`
* `presence_penalty`
* `max_tokens`

これらの名前のいずれかを `use_template` に設定すると、`entities.defaults.PARAMETER_RULE_TEMPLATE` のデフォルト設定を継承します。その場合に必要なのは `name` と `use_template` のみです。追加で設定したパラメータは、テンプレートのデフォルト値を上書きします。`openai/llm/gpt-3.5-turbo.yaml` と [新しいモデルプロバイダーの作成](/ja/develop-plugin/dev-guides-and-walkthroughs/creating-new-model-provider) の例を参照してください。

<ParamField path="label" type="object">
  ラベル（i18n）。

  <ParamField path="zh_Hans" type="string">
    中国語ラベル。
  </ParamField>

  <ParamField path="en_US" type="string" required>
    英語ラベル。
  </ParamField>
</ParamField>

<ParamField path="type" type="string">
  パラメータタイプ。

  <ParamField path="int" type="string">
    整数。
  </ParamField>

  <ParamField path="float" type="string">
    浮動小数点。
  </ParamField>

  <ParamField path="string" type="string">
    文字列。
  </ParamField>

  <ParamField path="boolean" type="string">
    ブール値。
  </ParamField>
</ParamField>

<ParamField path="help" type="object">
  ヘルプ情報（i18n）。

  <ParamField path="zh_Hans" type="string">
    中国語ヘルプテキスト。
  </ParamField>

  <ParamField path="en_US" type="string" required>
    英語ヘルプテキスト。
  </ParamField>
</ParamField>

<ParamField path="required" type="boolean">
  パラメータが必須かどうか。デフォルトは `False` です。
</ParamField>

<ParamField path="default" type="int/float/string/boolean">
  デフォルト値。
</ParamField>

<ParamField path="min" type="int/float">
  最小値。数値タイプのみ。
</ParamField>

<ParamField path="max" type="int/float">
  最大値。数値タイプのみ。
</ParamField>

<ParamField path="precision" type="integer">
  保持する小数桁数。数値タイプのみ。
</ParamField>

<ParamField path="options" type="array[string]">
  ドロップダウンのオプション値。`type` が `string` の場合のみ適用されます。設定されていないか null の場合、値は制限されません。
</ParamField>

## PriceConfig

<ParamField path="input" type="float">
  入力（プロンプト）の単価。
</ParamField>

<ParamField path="output" type="float">
  出力（返されるコンテンツ）の単価。
</ParamField>

<ParamField path="unit" type="float">
  価格の単位。例えば 100 万トークンあたりの価格設定の場合、単価に対応する単位トークン数は `0.000001` です。
</ParamField>

<ParamField path="currency" type="string">
  通貨単位。
</ParamField>

## ProviderCredentialSchema

<ParamField path="credential_form_schemas" type="array[CredentialFormSchema]" required>
  認証情報フォームの仕様。
</ParamField>

## ModelCredentialSchema

<ParamField path="model" type="object" required>
  モデル識別子。デフォルトの変数名は `model` です。

  <ParamField path="label" type="object" required>
    モデルフォーム項目の表示名。

    <ParamField path="en_US" type="string" required>
      英語。
    </ParamField>

    <ParamField path="zh_Hans" type="string">
      中国語。
    </ParamField>
  </ParamField>

  <ParamField path="placeholder" type="object" required>
    モデルフォーム項目のプレースホルダーテキスト。

    <ParamField path="en_US" type="string" required>
      英語。
    </ParamField>

    <ParamField path="zh_Hans" type="string">
      中国語。
    </ParamField>
  </ParamField>
</ParamField>

<ParamField path="credential_form_schemas" type="array[CredentialFormSchema]" required>
  認証情報フォームの仕様。
</ParamField>

## CredentialFormSchema

<ParamField path="variable" type="string" required>
  フォーム項目の変数名。
</ParamField>

<ParamField path="label" type="object" required>
  フォーム項目のラベル。

  <ParamField path="en_US" type="string" required>
    英語。
  </ParamField>

  <ParamField path="zh_Hans" type="string">
    中国語。
  </ParamField>
</ParamField>

<ParamField path="type" type="FormType" required>
  フォーム項目のタイプ。
</ParamField>

<ParamField path="required" type="boolean">
  フォーム項目が必須かどうか。
</ParamField>

<ParamField path="default" type="string">
  デフォルト値。
</ParamField>

<ParamField path="options" type="array[FormOption]">
  ドロップダウンの内容。`select` および `radio` タイプに固有です。
</ParamField>

<ParamField path="placeholder" type="object">
  フォーム項目のプレースホルダー。`text-input` タイプに固有です。

  <ParamField path="en_US" type="string" required>
    英語。
  </ParamField>

  <ParamField path="zh_Hans" type="string">
    中国語。
  </ParamField>
</ParamField>

<ParamField path="max_length" type="integer">
  最大入力長。`text-input` タイプに固有です。`0` は制限なしを意味します。
</ParamField>

<ParamField path="show_on" type="array[FormShowOnObject]">
  他のフォーム項目の値が指定した条件を満たす場合にのみこの項目を表示します。空の場合は常に表示します。
</ParamField>

### FormType

<ParamField path="text-input" type="string">
  テキスト入力コンポーネント。
</ParamField>

<ParamField path="secret-input" type="string">
  パスワード入力コンポーネント。
</ParamField>

<ParamField path="select" type="string">
  単一選択ドロップダウン。
</ParamField>

<ParamField path="radio" type="string">
  ラジオコンポーネント。
</ParamField>

<ParamField path="switch" type="string">
  スイッチコンポーネント。`true` と `false` のみサポートします。
</ParamField>

### FormOption

<ParamField path="label" type="object" required>
  ラベル。

  <ParamField path="en_US" type="string" required>
    英語。
  </ParamField>

  <ParamField path="zh_Hans" type="string">
    中国語。
  </ParamField>
</ParamField>

<ParamField path="value" type="string" required>
  ドロップダウンのオプション値。
</ParamField>

<ParamField path="show_on" type="array[FormShowOnObject]">
  他のフォーム項目の値が指定した条件を満たす場合にのみこのオプションを表示します。空の場合は常に表示します。
</ParamField>

### FormShowOnObject

<ParamField path="variable" type="string" required>
  他のフォーム項目の変数名。
</ParamField>

<ParamField path="value" type="string" required>
  他のフォーム項目の変数値。
</ParamField>

## 関連リソース

* [モデルアーキテクチャの詳細](/ja/develop-plugin/features-and-specs/plugin-types/model-schema)：モデルプラグインのアーキテクチャ仕様
* [新しいモデルをすばやく統合する](/ja/develop-plugin/dev-guides-and-walkthroughs/creating-new-model-provider)：これらのルールを適用して新しいモデルを追加する
* [一般仕様](/ja/develop-plugin/features-and-specs/plugin-types/general-specifications)：プラグインマニフェストの設定
* [新しいモデルプロバイダーを作成する](/ja/develop-plugin/dev-guides-and-walkthroughs/creating-new-model-provider)：新しいモデルプロバイダープラグインを開発する
