このドキュメントでは、専門家でない開発者がDifyに新しいモデルを追加する方法を説明します。既存のモデルプロバイダーに設定ファイルを変更することで新しいモデルタイプを追加することに焦点を当てています。リポジトリのフォーク、モデル設定のコピーと変更、プロバイダーバージョンの更新、ローカルテスト、およびコントリビューションの提出までの完全なプロセスを含みます。
Difyのプラグイン開発の世界へようこそ!Difyの強力な機能は、コミュニティ貢献者の共同の努力なしにはありえません。たとえプロのプログラマーでなくても、AI技術に情熱を持ち、資料を調べる意欲があれば、Difyにより多くの、より新しいAIモデルをサポートするなど、Difyに貢献できると信じています。
この記事では、最も簡潔な方法で、最も一般的で簡単な貢献、つまりDifyが既にサポートしているモデルプロバイダーに、新しいモデルタイプを追加する方法を説明します。この方法は通常、設定ファイルの変更のみが必要で、コードを書く必要がないため、最初の貢献として非常に適しています!
関連概念:開始する前に、モデルプラグインのドキュメントを読んで、モデルプラグインの基本概念と構造を理解することをお勧めします。
この迅速な統合方法は、以下の場合に適しています:
(追加する必要のあるモデルが新しいAPIロジックを必要とするか、特殊な機能をサポートする場合、Pythonコードの記述が必要になります。新しいモデルプロバイダーの作成 で詳細なガイドを参照してください。)
準備作業:
操作手順:
公式プラグインリポジトリをフォーク&クローン:
https://github.com/langgenius/dify-official-plugins
にアクセスします。モデル設定ファイルを見つけてコピー:
models/
ディレクトリに移動し、モデルを追加したいプロバイダーのフォルダ(例:vertex_ai
)を見つけます。models/llm/
)に入ります。gemini-1.0-pro-001.yaml
)を見つけます。gemini-1.5-pro-latest.yaml
)。モデル設定の変更 (YAML):
gemini-1.5-pro-latest.yaml
)を開きます。model
: 必須 新しいモデルタイプの公式API識別子に更新します。label
: 必須 Difyインターフェースでユーザーに表示されるモデル名に更新します(en_US
と zh_Hans
の両方の言語を提供することをお勧めします)。model_properties
: context_size
(コンテキストウィンドウサイズ)を更新します。parameter_rules
: モデルパラメータの制限、特に max_tokens
(最大出力トークン数)の default
、min
、max
値を確認して更新します。pricing
: モデルの入力(input
)と出力(output
)の価格設定、および単位(unit
、通常は百万トークンを表す 0.000001
)と通貨(currency
)を更新します。例 (Gemini 1.5 Pro の追加):
パラメータ | 既存モデルの可能性 (例) | 新しい Gemini 1.5 Pro (例) | 説明 |
---|---|---|---|
model | gemini-1.0-pro-001 | gemini-1.5-pro-latest | 必須 公式モデルIDに変更 |
label: en_US | Gemini 1.0 Pro | Gemini 1.5 Pro | 必須 ユーザーに表示されるラベルに変更 |
context_size | 30720 | 1048576 | 必須 公式ドキュメントに基づいて変更 |
max_tokens (下) | 2048 | 8192 | 必須 公式ドキュメントに基づいてデフォルト/最大値を変更 |
プロバイダーマニフェストのバージョンを更新:
models/vertex_ai/
)に戻ります。manifest.yaml
ファイルを見つけて開きます。version
フィールドをマイナーバージョン番号でインクリメントします(例:version: 0.0.8
-> version: 0.0.9
)。これにより、Difyにこれが更新であることを伝えます。パッケージ化とローカルテスト:
dify-official-plugins
リポジトリのルートディレクトリ(つまり、models
、tools
などのフォルダが含まれるディレクトリ)であることを確認してください。plugin packaged successfully, output path: <provider_name>.difypkg
のようなメッセージが表示され、現在のプロジェクトのルートディレクトリに <provider_name>.difypkg
という名前のプラグインパッケージファイルが生成されます。<provider_name>.difypkg
ファイルを選択またはドラッグアンドドロップしてアップロードします。コントリビューションを提出:
manifest.yaml
)をGitでコミット(commit)し、フォークしたGitHubリポジトリにプッシュ(push)します。langgenius/dify-official-plugins
のメインリポジトリに対してプルリクエスト(PR)を作成します。PRの説明には、どのモデルを追加したかを簡潔に説明し、そのモデルの公式ドキュメントへのリンクを添付して、レビュー担当者がパラメータを確認しやすくします。それで、次は?
PRがレビューされマージされると、あなたの貢献はDify公式プラグインの一部となり、すべてのDifyユーザーがこの新しいモデルを簡単に利用できるようになります!
この迅速な統合方法は、Difyが新しいモデルをサポートするための最速の方法です。もちろん、将来このモデルがより複雑な機能(例えば、画像入力、関数呼び出しなど)をサポートする必要がある場合、経験豊富な開発者がプラグインをコードレベルで更新する必要があるかもしれません。しかし、あなたが今完了したこのステップは、既に非常に価値のある貢献です!
さらに探求する:
manifest.yaml
の役割を理解する)