本書では、Difyモデルプラグイン開発のコアコンセプトと構造を詳細に定義します。これには、モデルプロバイダー(Provider)、AIモデルエンティティ(AIModelEntity)、モデルタイプ(ModelType)、設定方法(ConfigurateMethod)、モデル特性(ModelFeature)、パラメータルール(ParameterRule)、価格設定(PriceConfig)、およびさまざまな認証情報スキーマの詳細なデータ構造仕様が含まれます。
以下のすべてのエンティティは
Pydantic BaseModel
に基づいており、entities
モジュールに対応するエンティティがあります。
provider
(string) プロバイダー識別子、例:openai
label
(object) プロバイダー表示名、i18n、en_US
英語、zh_Hans
中国語の2言語設定可能
zh_Hans
(string) [optional] 中国語ラベル名、zh_Hans
を設定しない場合はデフォルトで en_US
が使用されます。en_US
(string) 英語ラベル名description
(object) [optional] プロバイダー説明、i18n
zh_Hans
(string) [optional] 中国語説明en_US
(string) 英語説明icon_small
(string) [optional] プロバイダー小アイコン、対応するプロバイダー実装ディレクトリ下の _assets
ディレクトリに保存、中英ポリシーは label
と同様
zh_Hans
(string) [optional] 中国語アイコンen_US
(string) 英語アイコンicon_large
(string) [optional] プロバイダー大アイコン、対応するプロバイダー実装ディレクトリ下の _assets
ディレクトリに保存、中英ポリシーは label
と同様
zh_Hans
(string) [optional] 中国語アイコンen_US
(string) 英語アイコンbackground
(string) [optional] 背景色カラーコード、例:#FFFFFF、空の場合はフロントエンドのデフォルトカラー値が表示されます。help
(object) [optional] ヘルプ情報
title
(object) ヘルプタイトル、i18n
zh_Hans
(string) [optional] 中国語タイトルen_US
(string) 英語タイトルurl
(object) ヘルプリンク、i18n
zh_Hans
(string) [optional] 中国語リンクen_US
(string) 英語リンクsupported_model_types
(array[ModelType]) サポートされるモデルタイプconfigurate_methods
(array[ConfigurateMethod]) 設定方法provider_credential_schema
([ProviderCredentialSchema]) プロバイダー認証情報スキーマmodel_credential_schema
([ModelCredentialSchema]) モデル認証情報スキーマmodel
(string) モデル識別子、例:gpt-3.5-turbo
label
(object) [optional] モデル表示名、i18n、en_US
英語、zh_Hans
中国語の2言語設定可能
zh_Hans
(string) [optional] 中国語ラベル名en_US
(string) 英語ラベル名model_type
(ModelType) モデルタイプfeatures
(array[ModelFeature]) [optional] サポート機能リストmodel_properties
(object) モデルプロパティ
mode
(LLMMode) モード (モデルタイプ llm
で利用可能)context_size
(int) コンテキストサイズ (モデルタイプ llm
text-embedding
で利用可能)max_chunks
(int) 最大チャンク数 (モデルタイプ text-embedding moderation
で利用可能)file_upload_limit
(int) ファイル最大アップロード制限、単位:MB。(モデルタイプ speech2text
で利用可能)supported_file_extensions
(string) サポートされるファイル拡張子、例:mp3,mp4(モデルタイプ speech2text
で利用可能)default_voice
(string) デフォルトボイス、必須:alloy,echo,fable,onyx,nova,shimmer(モデルタイプ tts
で利用可能)voices
(list) 選択可能なボイスリスト。
mode
(string) ボイスモデル。(モデルタイプ tts
で利用可能)name
(string) ボイスモデル表示名。(モデルタイプ tts
で利用可能)language
(string) ボイスモデルがサポートする言語。(モデルタイプ tts
で利用可能)word_limit
(int) 1回の変換文字数制限、デフォルトは段落ごとに分割(モデルタイプ tts
で利用可能)audio_type
(string) サポートされる音声ファイル拡張子、例:mp3,wav(モデルタイプ tts
で利用可能)max_workers
(int) サポートされるテキスト音声変換の同時実行タスク数(モデルタイプ tts
で利用可能)max_characters_per_chunk
(int) 各チャンクの最大文字数 (モデルタイプ moderation
で利用可能)parameter_rules
(array[ParameterRule]) [optional] モデル呼び出しパラメータールールpricing
([PriceConfig]) [optional] 価格情報deprecated
(bool) 非推奨かどうか。非推奨の場合、モデルリストには表示されなくなりますが、既に設定されているものは引き続き使用可能です。デフォルトは False。llm
テキスト生成モデルtext-embedding
テキスト埋め込みモデルrerank
Rerank モデルspeech2text
音声テキスト変換tts
テキスト音声合成moderation
モデレーションpredefined-model
事前定義モデルユーザーは統一されたプロバイダー認証情報を設定するだけで、プロバイダー下の事前定義モデルを使用できることを示します。
customizable-model
カスタマイズ可能モデルユーザーは各モデルの認証情報設定を新たに追加する必要があります。
fetch-from-remote
リモートから取得predefined-model
の設定方法と同様に、統一されたプロバイダー認証情報を設定するだけで、モデルは認証情報を通じてプロバイダーから取得されます。
agent-thought
エージェント思考、通常70Bを超えると思考連鎖能力があります。vision
ビジョン、すなわち画像理解。tool-call
ツール呼び出しmulti-tool-call
マルチツール呼び出しstream-tool-call
ストリーミングツール呼び出しpredefined-model
事前定義モデルfetch-from-remote
リモートモデルcompletion
テキスト補完chat
対話name
(string) モデル呼び出し時の実際のパラメータ名use_template
(string) [optional] テンプレートを使用テンプレートの具体的な使用方法については、新しいモデルプロバイダーの作成の例を参照してください。
デフォルトで5種類の変数コンテンツ設定テンプレートがプリセットされています:
temperature
top_p
frequency_penalty
presence_penalty
max_tokens
use_template
に直接テンプレート変数名を設定すると、entities.defaults.PARAMETER_RULE_TEMPLATE
のデフォルト設定が使用され、name
と use_template
以外のすべてのパラメータを設定する必要はありません。追加の設定パラメータが設定された場合、デフォルト設定が上書きされます。openai/llm/gpt-3.5-turbo.yaml
を参照してください。
label
(object) [optional] ラベル、i18nzh_Hans
(string) [optional] 中国語ラベル名en_US
(string) 英語ラベル名type
(string) [optional] パラメータタイプ
int
整数float
浮動小数点数string
文字列boolean
ブール型help
(string) [optional] ヘルプ情報zh_Hans
(string) [optional] 中国語ヘルプ情報en_US
(string) 英語ヘルプ情報required
(bool) 必須項目かどうか、デフォルトは False。default
(int/float/string/bool) [optional] デフォルト値min
(int/float) [optional] 最小値、数値タイプのみ適用max
(int/float) [optional] 最大値、数値タイプのみ適用precision
(int) [optional] 精度、小数点以下の保持桁数、数値タイプのみ適用options
(array[string]) [optional] ドロップダウン選択肢の値、type
が string
の場合にのみ適用、設定しない場合または null の場合は選択肢の値を制限しませんinput
(float) 入力単価、すなわちプロンプト単価output
(float) 出力単価、すなわち返却コンテンツ単価unit
(float) 価格単位、例えば1Mトークンで計算する場合、単価に対応する単位トークン数は 0.000001
ですcurrency
(string) 通貨単位credential_form_schemas
(array[CredentialFormSchema]) 認証情報フォームスキーマmodel
(object) モデル識別子、変数名はデフォルトで model
label
(object) モデルフォーム項目表示名
en_US
(string) 英語zh_Hans
(string) [optional] 中国語placeholder
(object) モデルのプレースホルダーコンテンツ
en_US
(string) 英語zh_Hans
(string) [optional] 中国語credential_form_schemas
(array[CredentialFormSchema]) 認証情報フォームスキーマvariable
(string) フォーム項目変数名label
(object) フォーム項目ラベル名
en_US
(string) 英語zh_Hans
(string) [optional] 中国語type
(FormType) フォーム項目タイプrequired
(bool) 必須項目かどうかdefault
(string) デフォルト値options
(array[FormOption]) フォーム項目が select
または radio
の場合の専用プロパティ、ドロップダウン内容を定義placeholder
(object) フォーム項目が text-input
の場合の専用プロパティ、フォーム項目のプレースホルダー
en_US
(string) 英語zh_Hans
(string) [optional] 中国語max_length
(int) フォーム項目がtext-input
の場合の専用プロパティ、入力最大長を定義、0は無制限。show_on
(array[FormShowOnObject]) 他のフォーム項目の値が条件に一致する場合に表示、空の場合は常に表示。text-input
テキスト入力コンポーネントsecret-input
パスワード入力コンポーネントselect
単一選択ドロップダウンradio
ラジオコンポーネントswitch
スイッチコンポーネント、true
と false
のみをサポートlabel
(object) ラベル
en_US
(string) 英語zh_Hans
(string) [optional] 中国語value
(string) ドロップダウン選択肢の値show_on
(array[FormShowOnObject]) 他のフォーム項目の値が条件に一致する場合に表示、空の場合は常に表示。variable
(string) 他のフォーム項目変数名value
(string) 他のフォーム項目変数値