事前定義されたモデルの追加
プロバイダー統合完了後、次にプロバイダーへのモデルの接続を行います。
まず、接続するモデルのタイプを決定し、対応するプロバイダーのディレクトリ内に対応するモデルタイプの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ルールについては、「」をご覧ください。
モデル呼び出しコードの実装
次に、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
呼び出し不正リクエストエラー
Last updated