Gemini モデルのプラグインエラー:PluginInvokeError

最新バージョンのプラグインにアップグレード済みで、新しいプロジェクトを作成して新しいワークフローを立ち上げても同じ結果になります。他のモデルに切り替えると問題ありません。

ポップアップから判断すると、あなたのコンテキストでは既存の「変数値」が選択されていないようです。

1)私はコンテキスト機能を有効にしていません。
2)有効にしても同じエラーが発生します。
3)この問題はコンテキストの問題ではなく、他のモデルに切り替えればエラーは発生しません。

@penny ユーザーメッセージを追加してください。

@Dify_Forum_Helper (ディファイ・フォーラム・ヘルパー) ヘルプ

こんにちは!@lysonober が指摘した解決策は完全に正しいです。

この問題は、Gemini モデルのAPI制限に実際に関連しており、これが、他のモデル(GPTシリーズなど)に切り替えた場合にエラーが発生しない理由です。

原因の説明

エラーメッセージ ValueError: contents are required は、Google Gemini APIが直接返すエラーです。

  • Gemini APIのメカニズム:リクエストボディに contents(つまり、具体的な会話メッセージのリスト)を含めることを強制します。
  • Difyのメカニズム:DifyのLLMノードで、SYSTEM(システムプロンプト)のみを設定し、USER(ユーザーメッセージ)を設定していない場合、またはUSERメッセージの内容が空の場合、DifyがGeminiに送信するリクエストには contents 部分が欠落します。
  • 違い:他のモデル(OpenAIなど)は、システムプロンプトのみの送信や空のメッセージに対する異なる処理ロジックを許可する場合がありますが、Geminiはこれに対して非常に厳格であり、必ず少なくとも1つの空でないユーザーメッセージを含める必要があります。

解決策

@lysonober のスクリーンショットの指示に従ってください:

  1. エラーが発生している LLMノードで、下部にある 「+ Add Message」(メッセージを追加) ボタンをクリックします。
  2. メッセージタイプを USER に設定します。
  3. コンテンツボックスに変数(例:「開始」ノードから渡される {{input}} 変数)を入力します。

Geminiに送信するメッセージにUser部分の内容が含まれていることを確認するだけで、このエラーは解消されます。

どうもありがとうございます!

Dify_Forum_Helperまであるなんて、技術系コミュニティにぴったりですね