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

# 一般仕様

> この記事では、プラグイン開発における一般的な構造について簡単に紹介します。開発中は、全体的なアーキテクチャをより深く理解するために、[プラグイン開発の基本概念](/ja/develop-plugin/getting-started/getting-started-dify-plugin)と[開発者チートシート](/ja/develop-plugin/getting-started/cli)を併せて読むことを強くお勧めします。

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

### パス仕様

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/getting-started/cli) - プラグイン開発における一般的なコマンドと概念のクイックリファレンス
* [ツールプラグイン開発の詳細](/ja/develop-plugin/dev-guides-and-walkthroughs/tool-plugin) - プラグイン情報の定義方法とツールプラグイン開発プロセスの理解
* [モデル設計ルール](/ja/develop-plugin/features-and-specs/plugin-types/model-designing-rules) - モデル設定の標準の理解

***

[このページを編集](https://github.com/langgenius/dify-docs/edit/main/ja/develop-plugin/features-and-specs/plugin-types/general-specifications.mdx) | [問題を報告](https://github.com/langgenius/dify-docs/issues/new?template=docs.yml)
