moduleを作成する必要があります。
現在サポートされているモデルタイプは以下の通りです:
LLMテキスト生成モデルtext_embeddingテキストEmbedding モデルrerankランク付けモデルspeech2text音声からテキストへの変換モデルTTSテキストから音声への変換モデルmoderation審査
Anthropicを例に挙げると、AnthropicはLLMのみをサポートしているため、model_providers.anthropicにllmという名前のmoduleを作成します。
事前に定義されたモデルについては、llm module の下に、モデル名をファイル名とするYAMLファイルを作成する必要があります、例えば、claude-2.1.yaml。
モデルのYAMLファイルのサンプル
model_providersディレクトリ内の他のサプライヤーの対応するモデル タイプ ディレクトリにあるYAML構成情報を参照することもできます。全てのYAMLルールについては、「Schema1」をご覧ください。
モデル呼び出しコードの実装
次に、llm module内に同名のPythonファイルllm.pyを作成し、コード実装を行います。
llm.py内にAnthropic LLMクラスを作成し、AnthropicLargeLanguageModel(任意な名前)という名前を付けます。このクラスは__base.large_language_model.LargeLanguageModel基底クラスを継承し、以下のメソッドを実装します:
-
LLM呼び出し
LLM呼び出しの中核メソッドを実装し、ストリーミングと同期返り値の両方をサポートするメソッドを実装します。
実装時には、同期返答とストリーミング返答を処理するために2つの関数を使用する必要があります。Pythonは
yieldキーワードを含む関数をジェネレータ関数として認識し、返されるデータタイプが固定されるため、同期返答とストリーミング返答を別々に実装する必要があります。以下のように(以下の例では簡略化されたパラメータを使用していますが、実際の実装では上記のパラメータリストに従う必要があります): -
事前計算入力トークン
モデルが事前計算トークンインターフェースを提供していない場合は、0を返しても構いません。
-
モデル認証情報検証
プロバイダーの認証情報検証と同様に、ここでは個別のモデルに対して検証を行います。
-
呼び出し異常エラーのマッピングテーブル
モデル呼び出し異常時に、Runtime指定の
InvokeErrorタイプにマッピングする必要があります。これにより、Difyは異なるエラーに対して異なる後続処理を行うことができます。 ランタイムエラー(Runtime Errors):InvokeConnectionError呼び出し接続エラーInvokeServerUnavailableError呼び出しサーバー利用不可エラーInvokeRateLimitError呼び出しレート制限エラーInvokeAuthorizationError認証エラーInvokeBadRequestError呼び出し不正リクエストエラー
Footnotes
-
プロバイダー
provider(string) プロバイダー識別子、例:openailabel(object) プロバイダー表示名、i18n対応、en_US英語、zh_Hans中国語の二つの言語を設定可能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ディレクトリに保存、中英同様のポリシーzh_Hans(string) [optional] 中国語アイコンen_US(string) 英語アイコン
icon_large(string) [optional] プロバイダー大アイコン、対応するプロバイダー実装ディレクトリ内の_assetsディレクトリに保存、中英同様のポリシー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) モデル認証情報スキーマ