関連概念:開始する前に、モデルプラグインのドキュメントを読んで、モデルプラグインの基本概念と構造を理解することをお勧めします。この迅速な統合方法は、以下の場合に適しています:
- 新しいモデルが、Difyが既にプラグインでサポートしているプロバイダー(OpenAI、Google Gemini、Anthropic Claudeなど)に属している場合。
- 新しいモデルが、同じシリーズの他のモデルと同じAPI認証および基本的な呼び出しロジックを使用している場合。
- 主な違いが、モデルID、コンテキスト長、最大トークン数、価格設定などの設定パラメーターにある場合。
- 基本的なGit操作(Fork、Clone、Pull Request)に慣れていること。
- GitHubアカウント。
- Difyプラグイン開発ツールキットをインストールし、設定済みであること(開発ツールの初期化を参照)。
-
公式プラグインリポジトリをフォーク&クローン:
- Dify公式プラグインリポジトリ
https://github.com/langgenius/dify-official-pluginsにアクセスします。 - 「Fork」ボタンをクリックして、リポジトリを自分のGitHubアカウントにフォークします。
- Gitを使用して、フォークしたリポジトリをローカルコンピュータにクローンします。
- Dify公式プラグインリポジトリ
-
モデル設定ファイルを見つけてコピー:
- ローカルリポジトリで、
models/ディレクトリに移動し、モデルを追加したいプロバイダーのフォルダ(例:vertex_ai)を見つけます。 - そのプロバイダーに対応するモデルタイプのサブディレクトリ(通常はテキスト生成モデルの場合
models/llm/)に入ります。 - そのディレクトリ内で、追加したい新しいモデルに最も似ている既存モデルのYAML設定ファイル(例:
gemini-1.0-pro-001.yaml)を見つけます。 - このYAMLファイルをコピーし、新しいモデルタイプを明確に識別できる名前に変更します(例:
gemini-1.5-pro-latest.yaml)。
- ローカルリポジトリで、
-
モデル設定の変更 (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)を更新します。
- (参考) モデルYAMLファイルの各フィールドの詳細な仕様については、モデル設計ルール および モデルスキーマ定義 を参照してください。
パラメータ 既存モデルの可能性 (例) 新しい Gemini 1.5 Pro (例) 説明 modelgemini-1.0-pro-001gemini-1.5-pro-latest必須 公式モデルIDに変更 label: en_USGemini 1.0 Pro Gemini 1.5 Pro 必須 ユーザーに表示されるラベルに変更 context_size30720 1048576 必須 公式ドキュメントに基づいて変更 max_tokens(下)2048 8192 必須 公式ドキュメントに基づいてデフォルト/最大値を変更 - 先ほど名前を変更したYAMLファイル(例:
-
プロバイダーマニフェストのバージョンを更新:
- そのモデルプロバイダーのルートディレクトリ(例:
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という名前のプラグインパッケージファイルが生成されます。 - Difyインスタンス(ローカルデプロイまたはクラウドバージョンのいずれか)にログインします。
- Difyページ最上部のナビゲーションバー右側にある 「プラグイン」 メニュー項目をクリックします。
- プラグインページで、「プラグインをインストール」 ボタンをクリックします。
- 「ローカルプラグイン」 タブを選択します。
- アップロードエリアをクリックし、先ほどローカルで生成した
<provider_name>.difypkgファイルを選択またはドラッグアンドドロップしてアップロードします。 - プラグインのインストールまたは更新が完了するのを待ちます。
- インストールが成功したら、通常、「設定」->「モデルプロバイダー」に移動して対応するプロバイダーを見つけ、API認証情報(以前に設定していない場合)を設定する必要があります。
- 新しいDifyアプリケーションを作成するか、既存のアプリケーションを編集し、「プロンプトエンジニアリング」->「モデル」設定で、新しく追加したモデルを選択してみてください。簡単な会話や呼び出しテストを行い、正常に動作し、期待される結果が返されることを確認します。
-
コントリビューションを提出:
- ローカルテストで問題がなければ、変更(新しいモデルYAMLファイルと更新された
manifest.yaml)をGitでコミット(commit)し、フォークしたGitHubリポジトリにプッシュ(push)します。 - GitHub上で、
langgenius/dify-official-pluginsのメインリポジトリに対してプルリクエスト(PR)を作成します。PRの説明には、どのモデルを追加したかを簡潔に説明し、そのモデルの公式ドキュメントへのリンクを添付して、レビュー担当者がパラメータを確認しやすくします。
- ローカルテストで問題がなければ、変更(新しいモデルYAMLファイルと更新された
それで、次は? PRがレビューされマージされると、あなたの貢献はDify公式プラグインの一部となり、すべてのDifyユーザーがこの新しいモデルを簡単に利用できるようになります! この迅速な統合方法は、Difyが新しいモデルをサポートするための最速の方法です。もちろん、将来このモデルがより複雑な機能(例えば、画像入力、関数呼び出しなど)をサポートする必要がある場合、経験豊富な開発者がプラグインをコードレベルで更新する必要があるかもしれません。しかし、あなたが今完了したこのステップは、既に非常に価値のある貢献です! さらに探求する:
- モデルスキーマ定義 (モデルYAMLファイルの詳細なルールを理解する)
- モデル設計ルール (モデルパラメータ設計の仕様を理解する)
- 一般仕様定義 (
manifest.yamlの役割を理解する) - 新しいモデルプロバイダーの作成 (新しいモデルプロバイダーの追加方法を理解する)
- Difyマーケットプレイスへの公開 (プラグインの公開方法を学ぶ)
- Dify公式プラグインリポジトリ (他のプラグインの例を見る)
このページを編集する | 問題を報告する