事前定義されたモデルの追加
プロバイダー統合完了後、次にプロバイダーへのモデルの接続を行います。
まず、接続するモデルのタイプを決定し、対応するプロバイダーのディレクトリ内に対応するモデルタイプのmodule
を作成する必要があります。
現在サポートされているモデルタイプは以下の通りです:
LLM
テキスト生成モデルtext_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
呼び出し不正リクエストエラー
インターフェースメソッドの説明については:Interfacesをご覧ください。具体的な実装については:llm.pyを参照してください。
Footnotes
-
プロバイダー
provider
(string) プロバイダー識別子、例:openai
label
(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) モデル認証情報スキーマ
このページは役に立ちましたか?