> ## Documentation Index
> Fetch the complete documentation index at: https://dify-6c0370d8-docs-new-agent-experience.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 一般仕様

> I18nObject、ProviderConfig、ModelConfig、NodeResponse、ToolSelector など、プラグインタイプ間で共有される共通データ構造

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

このページでは、すべてのプラグインタイプに共通する構造を説明します。全体的なアーキテクチャを把握するには、[プラグイン開発の基本概念](/ja/develop-plugin/getting-started/getting-started-dify-plugin) および [開発者チートシート](/ja/develop-plugin/getting-started/cli) と併せてお読みください。

## パス仕様

Manifest やその他の YAML ファイルにおけるファイルパスは、ファイルの種類に応じて 2 つのルールに従います。

* 画像や動画などのマルチメディアファイル（例: プラグインの `icon`）は、プラグインのルートディレクトリ下にある `_assets` フォルダに配置します。
* `.py` や `.yaml` などの通常のテキストファイルは、プラグインプロジェクト内の絶対パスで参照します。

## 共通構造

一部のデータ構造は、ツール、モデル、Endpoints の間で共有されます。これらをここで定義します。

### I18nObject

`I18nObject` は [IETF BCP 47](https://tools.ietf.org/html/bcp47) 標準に準拠した国際化構造です。次の 4 つの言語をサポートします。

<ParamField path="en_US" type="string">
  英語（米国）。
</ParamField>

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

<ParamField path="ja_JP" type="string">
  日本語。
</ParamField>

<ParamField path="pt_BR" type="string">
  ポルトガル語（ブラジル）。
</ParamField>

### ProviderConfig

`ProviderConfig` は、`Tool` と `Endpoint` の両方で使用される共通のプロバイダーフォーム構造です。

<ParamField path="name" type="string">
  フォーム項目名。
</ParamField>

<ParamField path="label" type="I18nObject" required>
  表示ラベル。[IETF BCP 47](https://tools.ietf.org/html/bcp47) 標準に準拠します。
</ParamField>

<ParamField path="type" type="provider_config_type" required>
  フォームフィールドのタイプ。フィールドが UI でどのようにレンダリングされるかを決定します。
</ParamField>

<ParamField path="scope" type="provider_config_scope">
  オプションの範囲指定。`type` の値によって異なります。
</ParamField>

<ParamField path="required" type="boolean">
  フィールドを空にできないかどうか。
</ParamField>

<ParamField path="default" type="any">
  デフォルト値。`float`、`int`、`string` の基本型のみをサポートします。
</ParamField>

<ParamField path="options" type="array[provider_config_option]">
  利用可能なオプション。`type` が `select` の場合のみ使用します。
</ParamField>

<ParamField path="helper" type="object">
  ヘルプドキュメントのリンクラベル。[IETF BCP 47](https://tools.ietf.org/html/bcp47) に準拠します。
</ParamField>

<ParamField path="url" type="string">
  ヘルプドキュメントのリンク。
</ParamField>

<ParamField path="placeholder" type="object">
  複数言語のプレースホルダーテキスト。[IETF BCP 47](https://tools.ietf.org/html/bcp47) に準拠します。
</ParamField>

### ProviderConfigOption (object)

<ParamField path="value" type="string" required>
  オプションの値。
</ParamField>

<ParamField path="label" type="object" required>
  オプションの表示ラベル。[IETF BCP 47](https://tools.ietf.org/html/bcp47) に準拠します。
</ParamField>

### ProviderConfigType (string)

<ParamField path="secret-input" type="string">
  暗号化される設定情報。
</ParamField>

<ParamField path="text-input" type="string">
  プレーンテキスト入力フィールド。
</ParamField>

<ParamField path="select" type="string">
  ドロップダウン選択フィールド。
</ParamField>

<ParamField path="boolean" type="boolean">
  スイッチ/トグルコントロール。
</ParamField>

<ParamField path="model-selector" type="object">
  モデル設定セレクター。プロバイダー名、モデル名、モデルパラメータを含みます。
</ParamField>

<ParamField path="app-selector" type="object">
  アプリケーション ID セレクター。
</ParamField>

<ParamField path="tool-selector" type="object">
  ツール設定セレクター。ツールプロバイダー、名前、パラメータを含みます。
</ParamField>

<ParamField path="dataset-selector" type="string">
  データセットセレクター（TBD）。
</ParamField>

### ProviderConfigScope (string)

`type` が `model-selector` の場合：

<ParamField path="all" type="string">
  すべてのモデルタイプ。
</ParamField>

<ParamField path="llm" type="string">
  大規模言語モデルのみ。
</ParamField>

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

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

<ParamField path="tts" type="string">
  テキスト読み上げモデルのみ。
</ParamField>

<ParamField path="speech2text" type="string">
  音声テキスト変換モデルのみ。
</ParamField>

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

<ParamField path="vision" type="string">
  ビジョンモデルのみ。
</ParamField>

`type` が `app-selector` の場合：

<ParamField path="all" type="string">
  すべてのアプリケーションタイプ。
</ParamField>

<ParamField path="chat" type="string">
  チャットアプリケーションのみ。
</ParamField>

<ParamField path="workflow" type="string">
  ワークフローアプリケーションのみ。
</ParamField>

<ParamField path="completion" type="string">
  補完アプリケーションのみ。
</ParamField>

`type` が `tool-selector` の場合：

<ParamField path="all" type="string">
  すべてのツールタイプ。
</ParamField>

<ParamField path="plugin" type="string">
  プラグインツールのみ。
</ParamField>

<ParamField path="api" type="string">
  API ツールのみ。
</ParamField>

<ParamField path="workflow" type="string">
  ワークフローツールのみ。
</ParamField>

### ModelConfig

<ParamField path="provider" type="string">
  `plugin_id` を含むモデルプロバイダー名。`langgenius/openai/openai` の形式です。
</ParamField>

<ParamField path="model" type="string">
  特定のモデル名。
</ParamField>

<ParamField path="model_type" type="enum">
  モデルタイプの列挙。[モデル設計ルール](/ja/develop-plugin/features-and-specs/plugin-types/model-designing-rules#modeltype) を参照してください。
</ParamField>

### NodeResponse

<ParamField path="inputs" type="dict">
  最終的にノードに渡される変数。
</ParamField>

<ParamField path="outputs" type="dict">
  ノードの出力結果。
</ParamField>

<ParamField path="process_data" type="dict">
  ノードの実行中に生成されるデータ。
</ParamField>

### ToolSelector

<ParamField path="provider_id" type="string">
  ツールプロバイダー名。
</ParamField>

<ParamField path="tool_name" type="string">
  ツール名。
</ParamField>

<ParamField path="tool_description" type="string">
  ツールの説明。
</ParamField>

<ParamField path="tool_configuration" type="dict[string, any]">
  ツール設定情報。
</ParamField>

<ParamField path="tool_parameters" type="dict[string, dict]">
  LLM の推論が必要なパラメータ。

  <ParamField path="name" type="string">
    パラメータ名。
  </ParamField>

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

  <ParamField path="required" type="boolean">
    パラメータが必須かどうか。
  </ParamField>

  <ParamField path="description" type="string">
    パラメータの説明。
  </ParamField>

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

  <ParamField path="options" type="array[string]">
    パラメータで利用可能なオプション。
  </ParamField>
</ParamField>

## 関連リソース

* [プラグイン開発の基本概念](/ja/develop-plugin/getting-started/getting-started-dify-plugin)：Dify プラグイン開発の概要
* [開発者チートシート](/ja/develop-plugin/dev-guides-and-walkthroughs/cheatsheet)：よく使うコマンドと概念のクイックリファレンス
* [ツールプラグイン開発の詳細](/ja/develop-plugin/dev-guides-and-walkthroughs/tool-plugin)：プラグイン情報の定義方法とツールプラグイン開発プロセス
* [モデル設計ルール](/ja/develop-plugin/features-and-specs/plugin-types/model-designing-rules)：モデル設定の標準
