このドキュメントでは、モデルプロバイダープラグインを作成する方法について詳しく説明します。プロジェクトの初期化、モデル設定方法(事前定義モデルとカスタムモデル)の選択、プロバイダー設定YAMLファイルの作成、およびプロバイダーコードの作成の完全なプロセスが含まれます。
dify
にリネームし、/usr/local/bin
パスにコピーした場合、次のコマンドを実行して新しいプラグインプロジェクトを作成できます:
LLM
タイプのプラグインテンプレートを選択します。
predefined-model
事前定義済みモデル
一般的な大規模モデルタイプで、統一されたプロバイダーの認証情報を設定するだけで、プロバイダー下の事前定義済みモデルを使用できます。例えば、OpenAI
モデルプロバイダーは gpt-3.5-turbo-0125
や gpt-4o-2024-05-13
などの一連の事前定義済みモデルを提供しています。詳細な開発手順については、事前定義済みモデルの統合を参照してください。
customizable-model
カスタムモデル
各モデルの認証情報設定を手動で追加する必要があります。例えば Xinference
は、LLMとText Embeddingの両方をサポートしていますが、各モデルには一意の model_uid があります。両方を同時に統合したい場合は、各モデルに model_uid を設定する必要があります。詳細な開発手順については、カスタムモデルの統合を参照してください。
predefined-model
+ customizable-model
または predefined-model
などをサポートする場合、プロバイダーの統一された認証情報を設定することで、事前定義済みモデルとリモートから取得したモデルを使用できます。新しいモデルを追加した場合は、これに加えてカスタムモデルを使用できます。
/providers
パスに設定ファイルを自動的に生成します。
以下は、Anthropic
モデル設定ファイル anthropic.yaml
のサンプルコードです:
OpenAI
がファインチューニングモデルを提供する場合、model_credential_schema
フィールドを追加する必要があります。
以下は OpenAI
ファミリーモデルのサンプルコードです:
/providers
フォルダに同名の Python ファイルを作成します。例えば anthropic.py
とし、__base.provider.Provider
基本クラスを継承する class
を実装します。例えば AnthropicProvider
です。
以下は Anthropic
のサンプルコードです:
__base.model_provider.ModelProvider
基本クラスを継承し、validate_provider_credentials
プロバイダー統一認証情報検証メソッドを実装するだけで済みます。
validate_provider_credentials
の実装を一旦プレースホルダとして残しておき、モデル認証情報検証メソッドの実装後に直接再利用することも可能です。
Xinference
のようなカスタムモデルプロバイダーの場合、完全な実装手順をスキップできます。XinferenceProvider
という名前の空のクラスを作成し、その中に空の validate_provider_credentials
メソッドを実装するだけです。
詳細説明:
• XinferenceProvider
は、カスタムモデルプロバイダーを識別するためのプレースホルダクラスです。
• validate_provider_credentials
メソッドは実際には呼び出されませんが、存在する必要があります。これは、その親クラスが抽象クラスであり、すべてのサブクラスにこのメソッドの実装を要求するためです。空の実装を提供することで、抽象メソッドが未実装であることによるインスタンス化エラーを回避できます。