[PR #1539] [MERGED] fix(gemini-config): deprecate multiple gemini models and refine thinking/response modality config #1943

Closed
opened 2026-02-16 11:15:39 -05:00 by yindo · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/langgenius/dify-official-plugins/pull/1539
Author: @QIN2DIM
Created: 8/20/2025
Status: Merged
Merged: 8/20/2025
Merged by: @crazywoola

Base: mainHead: fix-gemini-config-0821


📝 Commits (6)

  • 27f6cce fix(gemini-config): deprecate multiple gemini models and refine thinking/response modality config
  • 93bb524 fix(gemini): update gemini plugin version to 0.4.2
  • f02bdc0 fix(gemini): update response modalities enum usage in gemini config
  • 903abba fix(gemini): refactor chat parameter and tool calling configuration
  • 977157b fix(gemini): update gemini model configuration and validation
  • 15ef06e fix(gemini): correct mime type handling for markdown documents

📊 Changes

20 files changed (+133 additions, -52 deletions)

View changed files

📝 models/gemini/manifest.yaml (+1 -1)
📝 models/gemini/models/llm/gemini-1.5-flash-001.yaml (+1 -0)
📝 models/gemini/models/llm/gemini-1.5-flash-8b-exp-0827.yaml (+1 -0)
📝 models/gemini/models/llm/gemini-1.5-flash-8b-exp-0924.yaml (+1 -0)
📝 models/gemini/models/llm/gemini-1.5-flash-exp-0827.yaml (+1 -0)
📝 models/gemini/models/llm/gemini-1.5-flash-latest.yaml (+1 -0)
📝 models/gemini/models/llm/gemini-1.5-pro-001.yaml (+1 -0)
📝 models/gemini/models/llm/gemini-1.5-pro-exp-0801.yaml (+1 -0)
📝 models/gemini/models/llm/gemini-1.5-pro-exp-0827.yaml (+1 -0)
📝 models/gemini/models/llm/gemini-2.0-pro-exp-02-05.yaml (+1 -0)
📝 models/gemini/models/llm/gemini-2.0-pro-exp.yaml (+1 -0)
📝 models/gemini/models/llm/gemini-2.5-flash-preview-04-17.yaml (+1 -0)
📝 models/gemini/models/llm/gemini-2.5-pro-exp-03-25.yaml (+1 -0)
📝 models/gemini/models/llm/gemini-exp-1114.yaml (+1 -0)
📝 models/gemini/models/llm/gemini-exp-1121.yaml (+1 -0)
📝 models/gemini/models/llm/gemini-exp-1206.yaml (+1 -0)
📝 models/gemini/models/llm/learnlm-1.5-pro-experimental.yaml (+1 -0)
📝 models/gemini/models/llm/llm.py (+114 -46)
📝 models/gemini/provider/google.py (+1 -3)
📝 models/gemini/pyproject.toml (+1 -2)

📄 Description

Related Issues or Context

This PR improves the handling of Gemini model configurations and cleans up the model list.

Key Changes:

  • Deprecations:

    • Added deprecated: true to several experimental and legacy Gemini models in their YAML configs.
  • Refactoring ( GoogleLargeLanguageModel ):

    • Fix: Introduced a temporary blacklist to prevent errors when setting thinking_config on incompatible models (e.g., gemini-2.0-flash-preview-image-generation, nano-banana). This is a short-term fix.
    • Feature: Configured correct response modalities for models with mixed-mode outputs (image, audio).
    • Refactoring: Extracted chat parameter and tool calling logic into dedicated methods (_set_chat_parameters, _set_tool_calling) to improve code organization.
    • Goal: The overall refactor makes handling different model types more robust and centralized.
  • Configuration & Validation:

    • Improvement: Replaced the legacy credentials validation method with a direct API call using genai.Client for more reliable validation at no cost.
    • Update: Changed the default model used for validation from gemini-2.0-flash-lite to gemini-2.5-flash.
  • Bug Fixes:

    • Fix: Correctly set the mime type to text/markdown for Markdown (.md) document uploads, ensuring proper handling by the Gemini API.

This work addresses the following issues:

image

This PR contains Changes to Non-Plugin

  • Documentation
  • Other

This PR contains Changes to Non-LLM Models Plugin

  • I have Run Comprehensive Tests Relevant to My Changes

This PR contains Changes to LLM Models Plugin

  • My Changes Affect Message Flow Handling (System Messages and User→Assistant Turn-Taking)
  • My Changes Affect Tool Interaction Flow (Multi-Round Usage and Output Handling, for both Agent App and Agent Node)
  • My Changes Affect Multimodal Input Handling (Images, PDFs, Audio, Video, etc.)
  • My Changes Affect Multimodal Output Generation (Images, Audio, Video, etc.)
  • My Changes Affect Structured Output Format (JSON, XML, etc.)
  • My Changes Affect Token Consumption Metrics
  • My Changes Affect Other LLM Functionalities (Reasoning Process, Grounding, Prompt Caching, etc.)
  • Other Changes (Add New Models, Fix Model Parameters etc.)

Version Control (Any Changes to the Plugin Will Require Bumping the Version)

  • I have Bumped Up the Version in Manifest.yaml (Top-Level Version Field, Not in Meta Section)

Dify Plugin SDK Version

  • I have Ensured dify_plugin>=0.3.0,<0.5.0 is in requirements.txt (SDK docs)

Environment Verification (If Any Code Changes)

Local Deployment Environment

  • Dify Version is: , I have Tested My Changes on Local Deployment Dify with a Clean Environment That Matches the Production Configuration.

SaaS Environment

  • I have Tested My Changes on cloud.dify.ai with a Clean Environment That Matches the Production Configuration

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/langgenius/dify-official-plugins/pull/1539 **Author:** [@QIN2DIM](https://github.com/QIN2DIM) **Created:** 8/20/2025 **Status:** ✅ Merged **Merged:** 8/20/2025 **Merged by:** [@crazywoola](https://github.com/crazywoola) **Base:** `main` ← **Head:** `fix-gemini-config-0821` --- ### 📝 Commits (6) - [`27f6cce`](https://github.com/langgenius/dify-official-plugins/commit/27f6cce6f8d8832e58d847b6bfbfe909418ec090) fix(gemini-config): deprecate multiple gemini models and refine thinking/response modality config - [`93bb524`](https://github.com/langgenius/dify-official-plugins/commit/93bb52436b7d3abd6be3c0e7881a3081a091a5ce) fix(gemini): update gemini plugin version to 0.4.2 - [`f02bdc0`](https://github.com/langgenius/dify-official-plugins/commit/f02bdc0de86d02f02ea5045af32065a7a86db765) fix(gemini): update response modalities enum usage in gemini config - [`903abba`](https://github.com/langgenius/dify-official-plugins/commit/903abba3fb8047183107761d8c58a3499b14c955) fix(gemini): refactor chat parameter and tool calling configuration - [`977157b`](https://github.com/langgenius/dify-official-plugins/commit/977157bd201aebaac2479969a2a91f1c88929aac) fix(gemini): update gemini model configuration and validation - [`15ef06e`](https://github.com/langgenius/dify-official-plugins/commit/15ef06eeaa7f703bf57c2cc1d28fbb14c4fb4e8b) fix(gemini): correct mime type handling for markdown documents ### 📊 Changes **20 files changed** (+133 additions, -52 deletions) <details> <summary>View changed files</summary> 📝 `models/gemini/manifest.yaml` (+1 -1) 📝 `models/gemini/models/llm/gemini-1.5-flash-001.yaml` (+1 -0) 📝 `models/gemini/models/llm/gemini-1.5-flash-8b-exp-0827.yaml` (+1 -0) 📝 `models/gemini/models/llm/gemini-1.5-flash-8b-exp-0924.yaml` (+1 -0) 📝 `models/gemini/models/llm/gemini-1.5-flash-exp-0827.yaml` (+1 -0) 📝 `models/gemini/models/llm/gemini-1.5-flash-latest.yaml` (+1 -0) 📝 `models/gemini/models/llm/gemini-1.5-pro-001.yaml` (+1 -0) 📝 `models/gemini/models/llm/gemini-1.5-pro-exp-0801.yaml` (+1 -0) 📝 `models/gemini/models/llm/gemini-1.5-pro-exp-0827.yaml` (+1 -0) 📝 `models/gemini/models/llm/gemini-2.0-pro-exp-02-05.yaml` (+1 -0) 📝 `models/gemini/models/llm/gemini-2.0-pro-exp.yaml` (+1 -0) 📝 `models/gemini/models/llm/gemini-2.5-flash-preview-04-17.yaml` (+1 -0) 📝 `models/gemini/models/llm/gemini-2.5-pro-exp-03-25.yaml` (+1 -0) 📝 `models/gemini/models/llm/gemini-exp-1114.yaml` (+1 -0) 📝 `models/gemini/models/llm/gemini-exp-1121.yaml` (+1 -0) 📝 `models/gemini/models/llm/gemini-exp-1206.yaml` (+1 -0) 📝 `models/gemini/models/llm/learnlm-1.5-pro-experimental.yaml` (+1 -0) 📝 `models/gemini/models/llm/llm.py` (+114 -46) 📝 `models/gemini/provider/google.py` (+1 -3) 📝 `models/gemini/pyproject.toml` (+1 -2) </details> ### 📄 Description ## Related Issues or Context <!-- ⚠️ NOTE: This repository is for Dify Official Plugins only. For community contributions, please submit to https://github.com/langgenius/dify-plugins instead. - Link Related Issues if Applicable: #issue_number - Or Provide Context about Why this Change is Needed --> This PR improves the handling of Gemini model configurations and cleans up the model list. **Key Changes:** * **Deprecations:** * Added `deprecated: true` to several experimental and legacy Gemini models in their YAML configs. * **Refactoring ( `GoogleLargeLanguageModel` ):** * Fix: Introduced a temporary blacklist to prevent errors when setting `thinking_config` on incompatible models (e.g., `gemini-2.0-flash-preview-image-generation`, `nano-banana`). This is a short-term fix. * Feature: Configured correct response modalities for models with mixed-mode outputs (image, audio). * Refactoring: Extracted chat parameter and tool calling logic into dedicated methods (`_set_chat_parameters`, `_set_tool_calling`) to improve code organization. * Goal: The overall refactor makes handling different model types more robust and centralized. * **Configuration & Validation:** * Improvement: Replaced the legacy credentials validation method with a direct API call using `genai.Client` for more reliable validation at no cost. * Update: Changed the default model used for validation from `gemini-2.0-flash-lite` to `gemini-2.5-flash`. * **Bug Fixes:** * Fix: Correctly set the mime type to `text/markdown` for Markdown (`.md`) document uploads, ensuring proper handling by the Gemini API. This work addresses the following issues: - Fixed #1500 - Fixed #1456 - Fixed #1403 <img width="974" height="1641" alt="image" src="https://github.com/user-attachments/assets/892029d3-da71-4689-b597-f408606a843e" /> ## This PR contains Changes to *Non-Plugin* <!-- Put an `x` in all the boxes that apply by replacing [ ] with [x] For example: - [x] Documentation --> - [ ] Documentation - [ ] Other ## This PR contains Changes to *Non-LLM Models Plugin* - [x] I have Run Comprehensive Tests Relevant to My Changes <!-- 📷 Include Screenshots/Videos Demonstrating the Fix, New Feature, or the Behavior Before/After Breaking Changes. --> ## This PR contains Changes to *LLM Models Plugin* <!-- LLM Models Test Example: --> <!-- https://github.com/langgenius/dify-official-plugins/blob/main/.assets/test-examples/llm-plugin-tests/llm_test_example.md --> - [ ] My Changes Affect Message Flow Handling (System Messages and User→Assistant Turn-Taking) <!-- 📷 Include Screenshots/Videos Demonstrating the Fix, New Feature, or the Behavior Before/After Breaking Changes. --> - [ ] My Changes Affect Tool Interaction Flow (Multi-Round Usage and Output Handling, for both Agent App and Agent Node) <!-- 📷 Include Screenshots/Videos Demonstrating the Fix, New Feature, or the Behavior Before/After Breaking Changes. --> - [ ] My Changes Affect Multimodal Input Handling (Images, PDFs, Audio, Video, etc.) <!-- 📷 Include Screenshots/Videos Demonstrating the Fix, New Feature, or the Behavior Before/After Breaking Changes. --> - [x] My Changes Affect Multimodal Output Generation (Images, Audio, Video, etc.) <!-- 📷 Include Screenshots/Videos Demonstrating the Fix, New Feature, or the Behavior Before/After Breaking Changes. --> - [ ] My Changes Affect Structured Output Format (JSON, XML, etc.) <!-- 📷 Include Screenshots/Videos Demonstrating the Fix, New Feature, or the Behavior Before/After Breaking Changes. --> - [ ] My Changes Affect Token Consumption Metrics <!-- 📷 Include Screenshots/Videos Demonstrating the Fix, New Feature, or the Behavior Before/After Breaking Changes. --> - [ ] My Changes Affect Other LLM Functionalities (Reasoning Process, Grounding, Prompt Caching, etc.) <!-- 📷 Include Screenshots/Videos Demonstrating the Fix, New Feature, or the Behavior Before/After Breaking Changes. --> - [x] Other Changes (Add New Models, Fix Model Parameters etc.) <!-- 📷 Include Screenshots/Videos Demonstrating the Fix, New Feature, or the Behavior Before/After Breaking Changes. --> ## Version Control (Any Changes to the Plugin Will Require Bumping the Version) - [x] I have Bumped Up the Version in Manifest.yaml (Top-Level `Version` Field, Not in Meta Section) <!-- ⚠️ NOTE: Version Format: MAJOR.MINOR.PATCH - MAJOR (0.x.x): Reserved for Significant architectural changes or incompatible API modifications - MINOR (x.0.x): For New feature additions while maintaining backward compatibility - PATCH (x.x.0): For Backward-compatible bug fixes and minor improvements - Note: Each Version Component (MAJOR, MINOR, PATCH) Can Be 2 Digits, e.g., 10.11.22 --> ## Dify Plugin SDK Version - [x] I have Ensured `dify_plugin>=0.3.0,<0.5.0` is in requirements.txt ([SDK docs](https://github.com/langgenius/dify-plugin-sdks/blob/main/python/README.md)) ## Environment Verification (If Any Code Changes) <!-- ⚠️ NOTE: At Least One Environment Must Be Tested. --> ### Local Deployment Environment - [x] Dify Version is: <!-- Specify Your Version (e.g., 1.2.0) -->, I have Tested My Changes on Local Deployment Dify with a Clean Environment That Matches the Production Configuration. <!-- - Python Virtual Env Matching Manifest.yaml & requirements.txt - No Breaking Changes in Dify That May Affect the Testing Result --> ### SaaS Environment - [x] I have Tested My Changes on cloud.dify.ai with a Clean Environment That Matches the Production Configuration <!-- - Python Virtual Env Matching Manifest.yaml & requirements.txt --> --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
yindo added the pull-request label 2026-02-16 11:15:39 -05:00
yindo closed this issue 2026-02-16 11:15:39 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langgenius/dify-official-plugins#1943