作成者 Yeuoly、Allen このドキュメントでは、Difyプラグインのマニフェストファイルについて詳しく説明します。これは、プラグインの基本情報を定義するYAMLファイルです。ドキュメントには、完全なコード例と詳細な構造説明が含まれており、プラグインのバージョン、タイプ、作成者、名称、リソース使用、権限申請、機能定義、ランタイムなど、各方面の設定情報を網羅しています。
マニフェストは、yaml 仕様に準拠したファイルであり、プラグイン名、作成者、含まれるツール、モデルなどの情報を含む、プラグインの最も基本的な情報を定義します。プラグインの全体的なアーキテクチャについては、プラグイン開発の基本概念および開発者向けチートシートを参照してください。
このファイルの形式が間違っている場合、プラグインの解析とパッケージ化プロセスは失敗します。
以下は、マニフェストファイルの簡単な例です。各データの意味と役割については、後ほど説明します。他のプラグインのコードを参照する必要がある場合は、GitHub コードリポジトリを参照してください。
version
(version, 必須):プラグインのバージョンtype
(type, 必須):プラグインタイプ。現在は plugin
のみをサポートし、将来的には bundle
をサポート予定です。author
(string, 必須):作成者。Marketplace では組織名として定義されます。label
(label, 必須):多言語名称created_at
(RFC3339, 必須):作成日時。Marketplace では、作成日時が現在時刻を超えてはなりません。icon
(asset, 必須):アイコンのパスresource
(object):申請が必要なリソース
memory
(int64):最大メモリ使用量。主に SaaS 上の AWS Lambda リソース申請に関連し、単位はバイトです。permission
(object):権限申請
tool
(object):ツールを逆呼び出しする権限
enabled
(bool)model
(object):モデルを逆呼び出しする権限
enabled
(bool)llm
(bool)text_embedding
(bool)rerank
(bool)tts
(bool)speech2text
(bool)moderation
(bool)node
(object):ノードを逆呼び出しする権限
enabled
(bool)endpoint
(object):endpoint
の登録を許可する権限
enabled
(bool)app
(object):app
を逆呼び出しする権限
enabled
(bool)storage
(object):永続ストレージを申請する権限
enabled
(bool)size
(int64):許可される永続メモリの最大サイズ。単位はバイトです。plugins
(object, 必須):プラグインが拡張する具体的な機能の yaml
ファイルリスト。プラグインパッケージ内の絶対パスです。例えば、モデルを拡張する必要がある場合、openai.yaml
のようなファイルを定義し、そのファイルパスをここに記入します。そのパス上のファイルは実際に存在しなければならず、そうでなければパッケージ化は失敗します。
meta
(object)
version
(version, 必須):manifest
フォーマットバージョン。初期バージョンは 0.0.1
です。arch
(list[string], 必須):サポートされるアーキテクチャ。現在は amd64
、arm64
のみをサポートしています。runner
(object, 必須):ランタイム設定
language
(string):現在は python のみをサポートしています。version
(string):言語のバージョン。現在は 3.12
のみをサポートしています。entrypoint
(string):プログラムのエントリポイント。python では main
であるべきです。privacy
(string, オプション):オプション項目。プラグインのプライバシーポリシーファイルの相対パスまたは URL を指定します。例:"./privacy.md"
または "https://your-web/privacy"
。プラグインを Dify Marketplace に公開する予定がある場合、このフィールドは必須です。明確なユーザーデータの使用とプライバシーに関する声明を提供するために使用されます。詳細な記入ガイドラインについては、プラグインのプライバシーデータ保護ガイドラインを参照してください。