Modelプラグインは、DifyプラットフォームがそのモデルプロバイダーのすべてのLLMを呼び出すことを可能にします。例えば、OpenAIモデルプラグインをインストールすると、DifyプラットフォームはOpenAIが提供するGPT-4GPT-4o-2024-05-13などのモデルを呼び出すことができます。

モデルプラグインの構造

モデルプラグイン開発プロセスで関連する可能性のある概念を理解しやすくするために、以下にモデルプラグイン内の構造の簡単な紹介を示します。

  • モデルプロバイダー:大規模モデルの開発会社。例:OpenAI、Anthropic、Googleなど。
  • モデルカテゴリ:モデルプロバイダーによって、大規模言語モデル(LLM)、テキスト埋め込みモデル(Text embedding)、音声テキスト変換(Speech2text)などのカテゴリが存在します。
  • 特定のモデルclaude-3-5-sonnetgpt-4-turboなど。

プラグインプロジェクト内のコード階層構造:

- モデルプロバイダー
    - モデルカテゴリ
        - 特定のモデル

Anthropicを例にとると、モデルプラグインのサンプル構造は次のようになります。

- Anthropic
    - llm
        claude-3-5-sonnet-20240620
        claude-3-haiku-20240307
        claude-3-opus-20240229
        claude-3-sonnet-20240229
        claude-instant-1.2
        claude-instant-1

OpenAIを例にとると、複数のモデルタイプをサポートしているため、複数のモデルカテゴリレイヤーが存在し、構造は次のようになります。

├── models
│   ├── llm
│   │   ├── chatgpt-4o-latest
│   │   ├── gpt-3.5-turbo
│   │   ├── gpt-4-0125-preview
│   │   ├── gpt-4-turbo
│   │   ├── gpt-4o
│   │   ├── llm
│   │   ├── o1-preview
│   │   └── text-davinci-003
│   ├── moderation
│   │   ├── moderation
│   │   └── text-moderation-stable
│   ├── speech2text
│   │   ├── speech2text
│   │   └── whisper-1
│   ├── text_embedding
│   │   ├── text-embedding-3-large
│   │   └── text_embedding
│   └── tts
│       ├── tts-1-hd
│       ├── tts-1
│       └── tts

モデル設定

モデルプラグインは、設定ファイルを通じてモデルの動作と属性を定義します。詳細なモデル設計ルールと設定フォーマットについては、モデル設計ルールドキュメントとモデルスキーマ仕様を参照してください。

さらに読む