mirror of
https://github.com/langgenius/dify-docs.git
synced 2026-03-27 13:28:32 +07:00
138 lines
13 KiB
Plaintext
138 lines
13 KiB
Plaintext
---
|
||
dimensions:
|
||
type:
|
||
primary: implementation
|
||
detail: basic
|
||
level: beginner
|
||
standard_title: Getting Started New Model
|
||
language: ja
|
||
title: 新しいモデルを迅速に統合する
|
||
description: このドキュメントでは、専門家でない開発者がDifyに新しいモデルを追加する方法を説明します。既存のモデルプロバイダーに設定ファイルを変更することで新しいモデルタイプを追加することに焦点を当てています。リポジトリのフォーク、モデル設定のコピーと変更、プロバイダーバージョンの更新、ローカルテスト、およびコントリビューションの提出までの完全なプロセスを含みます。
|
||
---
|
||
|
||
Difyのプラグイン開発の世界へようこそ!Difyの強力な機能は、コミュニティ貢献者の共同の努力なしにはありえません。たとえプロのプログラマーでなくても、AI技術に情熱を持ち、資料を調べる意欲があれば、Difyにより多くの、より新しいAIモデルをサポートするなど、Difyに貢献できると信じています。
|
||
|
||
この記事では、最も簡潔な方法で、最も一般的で簡単な貢献、つまりDifyが**既にサポートしている**モデルプロバイダーに、**新しいモデルタイプ**を追加する方法を説明します。この方法は通常、**設定ファイルの変更のみ**が必要で、コードを書く必要がないため、最初の貢献として非常に適しています!
|
||
|
||
> **関連概念**:開始する前に、[モデルプラグイン](/plugin_dev_ja/0131-model-plugin-introduction.ja)のドキュメントを読んで、モデルプラグインの基本概念と構造を理解することをお勧めします。
|
||
|
||
**この迅速な統合方法は、以下の場合に適しています:**
|
||
|
||
- 新しいモデルが、Difyが既にプラグインでサポートしているプロバイダー(OpenAI、Google Gemini、Anthropic Claudeなど)に属している場合。
|
||
- 新しいモデルが、同じシリーズの他のモデルと同じAPI認証および基本的な呼び出しロジックを使用している場合。
|
||
- 主な違いが、モデルID、コンテキスト長、最大トークン数、価格設定などの設定パラメーターにある場合。
|
||
|
||
_(追加する必要のあるモデルが新しいAPIロジックを必要とするか、特殊な機能をサポートする場合、Pythonコードの記述が必要になります。[新しいモデルプロバイダーの作成](/plugin_dev_ja/0222-creating-new-model-provider.ja) で詳細なガイドを参照してください。)_
|
||
|
||
**準備作業:**
|
||
|
||
- 基本的なGit操作(Fork、Clone、Pull Request)に慣れていること。
|
||
- GitHubアカウント。
|
||
- Difyプラグイン開発ツールキットをインストールし、設定済みであること([開発ツールの初期化](/plugin_dev_ja/0221-initialize-development-tools.ja)を参照)。
|
||
|
||
**操作手順:**
|
||
|
||
1. **公式プラグインリポジトリをフォーク&クローン:**
|
||
|
||
- Dify公式プラグインリポジトリ `https://github.com/langgenius/dify-official-plugins` にアクセスします。
|
||
- 「Fork」ボタンをクリックして、リポジトリを自分のGitHubアカウントにフォークします。
|
||
- Gitを使用して、フォークしたリポジトリをローカルコンピュータにクローンします。
|
||
|
||
2. **モデル設定ファイルを見つけてコピー:**
|
||
|
||
- ローカルリポジトリで、`models/` ディレクトリに移動し、モデルを追加したいプロバイダーのフォルダ(例:`vertex_ai`)を見つけます。
|
||
- そのプロバイダーに対応するモデルタイプのサブディレクトリ(通常はテキスト生成モデルの場合 `models/llm/`)に入ります。
|
||
- そのディレクトリ内で、追加したい新しいモデルに最も似ている既存モデルのYAML設定ファイル(例:`gemini-1.0-pro-001.yaml`)を見つけます。
|
||
- このYAMLファイルをコピーし、新しいモデルタイプを明確に識別できる名前に変更します(例:`gemini-1.5-pro-latest.yaml`)。
|
||
|
||
3. **モデル設定の変更 (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ファイルの各フィールドの詳細な仕様については、[モデル設計ルール](/plugin_dev_ja/0411-model-designing-rules.ja) および [モデルスキーマ定義](/plugin_dev_ja/0412-model-schema.ja) を参照してください。
|
||
|
||
**例 (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 | **必須** 公式ドキュメントに基づいてデフォルト/最大値を変更 |
|
||
|
||
4. **プロバイダーマニフェストのバージョンを更新:**
|
||
|
||
- そのモデルプロバイダーのルートディレクトリ(例:`models/vertex_ai/`)に戻ります。
|
||
- `manifest.yaml` ファイルを見つけて開きます。
|
||
- その中の `version` フィールドをマイナーバージョン番号でインクリメントします(例:`version: 0.0.8` -> `version: 0.0.9`)。これにより、Difyにこれが更新であることを伝えます。
|
||
|
||
5. **パッケージ化とローカルテスト:**
|
||
|
||
- ターミナル(コマンドラインツール)を開きます。
|
||
- **現在のディレクトリが `dify-official-plugins` リポジトリのルートディレクトリ**(つまり、`models`、`tools` などのフォルダが含まれるディレクトリ)であることを確認してください。
|
||
- パッケージ化コマンドを実行します:
|
||
|
||
```bash
|
||
# <provider_name> を実際のプロバイダーディレクトリ名(例: cohere や vertex_ai)に置き換えます
|
||
dify plugin package models/<provider_name>
|
||
```
|
||
|
||
- _成功すると、`plugin packaged successfully, output path: <provider_name>.difypkg` のようなメッセージが表示され、現在のプロジェクトのルートディレクトリに `<provider_name>.difypkg` という名前のプラグインパッケージファイルが生成されます。_
|
||
- Difyインスタンス(ローカルデプロイまたはクラウドバージョンのいずれか)にログインします。
|
||
- Difyページ最上部のナビゲーションバー右側にある **「プラグイン」** メニュー項目をクリックします。
|
||
- プラグインページで、**「プラグインをインストール」** ボタンをクリックします。
|
||
- **「ローカルプラグイン」** タブを選択します。
|
||
- アップロードエリアをクリックし、先ほどローカルで生成した `<provider_name>.difypkg` ファイルを選択またはドラッグアンドドロップしてアップロードします。
|
||
- プラグインのインストールまたは更新が完了するのを待ちます。
|
||
- インストールが成功したら、通常、「設定」->「モデルプロバイダー」に移動して対応するプロバイダーを見つけ、API認証情報(以前に設定していない場合)を設定する必要があります。
|
||
- 新しいDifyアプリケーションを作成するか、既存のアプリケーションを編集し、「プロンプトエンジニアリング」->「モデル」設定で、新しく追加したモデルを選択してみてください。簡単な会話や呼び出しテストを行い、正常に動作し、期待される結果が返されることを確認します。
|
||
|
||
6. **コントリビューションを提出:**
|
||
- ローカルテストで問題がなければ、変更(新しいモデルYAMLファイルと更新された `manifest.yaml`)をGitでコミット(commit)し、フォークしたGitHubリポジトリにプッシュ(push)します。
|
||
- GitHub上で、`langgenius/dify-official-plugins` のメインリポジトリに対してプルリクエスト(PR)を作成します。PRの説明には、どのモデルを追加したかを簡潔に説明し、そのモデルの公式ドキュメントへのリンクを添付して、レビュー担当者がパラメータを確認しやすくします。
|
||
|
||
---
|
||
|
||
**それで、次は?**
|
||
|
||
PRがレビューされマージされると、あなたの貢献はDify公式プラグインの一部となり、すべてのDifyユーザーがこの新しいモデルを簡単に利用できるようになります!
|
||
|
||
この迅速な統合方法は、Difyが新しいモデルをサポートするための最速の方法です。もちろん、将来このモデルがより複雑な機能(例えば、画像入力、関数呼び出しなど)をサポートする必要がある場合、経験豊富な開発者がプラグインをコードレベルで更新する必要があるかもしれません。しかし、あなたが今完了したこのステップは、既に非常に価値のある貢献です!
|
||
|
||
**さらに探求する:**
|
||
|
||
- [モデルスキーマ定義](/plugin_dev_ja/0412-model-schema.ja) (モデルYAMLファイルの詳細なルールを理解する)
|
||
- [モデル設計ルール](/plugin_dev_ja/0411-model-designing-rules.ja) (モデルパラメータ設計の仕様を理解する)
|
||
- [一般仕様定義](/plugin_dev_ja/0411-general-specifications.ja) (`manifest.yaml` の役割を理解する)
|
||
- [新しいモデルプロバイダーの作成](/plugin_dev_ja/0222-creating-new-model-provider.ja) (新しいモデルプロバイダーの追加方法を理解する)
|
||
- [Difyマーケットプレイスへの公開](/plugin_dev_ja/0322-release-to-dify-marketplace.ja) (プラグインの公開方法を学ぶ)
|
||
- [Dify公式プラグインリポジトリ](https://github.com/langgenius/dify-official-plugins) (他のプラグインの例を見る)
|
||
|
||
{/*
|
||
Contributing Section
|
||
DO NOT edit this section!
|
||
It will be automatically generated by the script.
|
||
*/}
|
||
|
||
<CardGroup cols="2">
|
||
<Card
|
||
title="このページを編集する"
|
||
icon="pen-to-square"
|
||
href="https://github.com/langgenius/dify-docs-mintlify/edit/main/plugin_dev_ja/0211-getting-started-new-model.ja.mdx"
|
||
>
|
||
直接貢献することでドキュメントの改善にご協力ください
|
||
</Card>
|
||
<Card
|
||
title="問題を報告する"
|
||
icon="github"
|
||
href="https://github.com/langgenius/dify-docs-mintlify/issues/new?title=ドキュメントの問題%3A%20getting-started-new-model&body=%23%23%20問題の説明%0A%3C%21--%20発見した問題について簡単に説明してください%20--%3E%0A%0A%23%23%20ページリンク%0Ahttps%3A%2F%2Fgithub.com%2Flanggenius%2Fdify-docs-mintlify%2Fblob%2Fmain%2Fplugin_dev_ja%2F0211-getting-started-new-model.ja.mdx%0A%0A%23%23%20提案される変更%0A%3C%21--%20特定の変更案がある場合は、ここで説明してください%20--%3E%0A%0A%3C%21--%20ドキュメントの品質向上にご協力いただきありがとうございます!%20--%3E"
|
||
>
|
||
エラーを見つけたり提案がありますか?お知らせください
|
||
</Card>
|
||
</CardGroup>
|