コア仕様と機能
マニフェスト
作成者 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
のようなファイルを定義し、そのファイルパスをここに記入します。そのパス上のファイルは実際に存在しなければならず、そうでなければパッケージ化は失敗します。- 形式
- 制限
- ツールとモデルを同時に拡張することはできません
- 拡張機能がまったくない状態は許可されません。
- モデルと Endpoint を同時に拡張することはできません
- 現在、各タイプの拡張は最大1つのプロバイダーのみサポートしています
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 に公開する予定がある場合、このフィールドは必須です。明確なユーザーデータの使用とプライバシーに関する声明を提供するために使用されます。詳細な記入ガイドラインについては、プラグインのプライバシーデータ保護ガイドラインを参照してください。
関連リソース
- プラグイン開発の基本概念 - Difyプラグイン開発の全体像を理解する
- 新しいモデルを迅速に導入する - 既存のプロバイダーに新しいモデルを追加する方法を学ぶ
- 共通仕様定義 - プラグイン開発における共通構造を理解する
- リリース概要 - プラグインのリリースプロセスを学ぶ