[PR #10835] feat: support json schema for gemini models #26958

Closed
opened 2026-02-21 20:40:35 -05:00 by yindo · 0 comments
Owner

Original Pull Request: https://github.com/langgenius/dify/pull/10835

State: closed
Merged: Yes


Summary

Tip

Close issue syntax: Fixes #<issue number> or Resolves #<issue number>, see documentation for more details.

Change List

  1. add json_schema for gemini models, offical doc
  2. remove the response_format, which is conflict with json_schema
  3. use max_output_tokens instead of max_tokens_to_sample
  4. remove GEMINI_BLOCK_MODE_PROMPT and logger, seems not used in any place
  5. deprecated gemini-1.0-pro and gemini-1.0-pro-vision

Screenshots

3f8fecb87df16d1f155bb225588da58

test schema:

{  
        "type": "object",  
        "properties": {  
            "location": {  
                "type": "string",  
                "description": "The location to get the weather for"  
            },  
            "unit": {  
                "type": "string",  
                "description": "The unit to return the temperature in",  
                "enum": ["F", "C"]  
            }  
        },  
        "required": ["location", "unit"]  
}

Checklist

Important

Please review the checklist below before submitting your pull request.

  • This change requires a documentation update, included: Dify Document
  • I understand that this PR may be closed in case there was no previous discussion or issues. (This doesn't apply to typos!)
  • I've added a test for each change that was introduced, and I tried as much as possible to make a single atomic change.
  • I've updated the documentation accordingly.
  • I ran dev/reformat(backend) and cd web && npx lint-staged(frontend) to appease the lint gods
**Original Pull Request:** https://github.com/langgenius/dify/pull/10835 **State:** closed **Merged:** Yes --- # Summary > [!Tip] > Close issue syntax: `Fixes #<issue number>` or `Resolves #<issue number>`, see [documentation](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword) for more details. ## Change List 1. add json_schema for gemini models, offical [doc](https://ai.google.dev/gemini-api/docs/structured-output?authuser=1&lang=python) 2. remove the `response_format`, which is conflict with `json_schema` 3. use `max_output_tokens` instead of `max_tokens_to_sample` 4. remove `GEMINI_BLOCK_MODE_PROMPT` and `logger`, seems not used in any place 5. deprecated gemini-1.0-pro and gemini-1.0-pro-vision # Screenshots <img width="605" alt="3f8fecb87df16d1f155bb225588da58" src="https://github.com/user-attachments/assets/2571e0af-a143-4dfb-8979-75c5c1c12883"> test schema: ``` { "type": "object", "properties": { "location": { "type": "string", "description": "The location to get the weather for" }, "unit": { "type": "string", "description": "The unit to return the temperature in", "enum": ["F", "C"] } }, "required": ["location", "unit"] } ``` # Checklist > [!IMPORTANT] > Please review the checklist below before submitting your pull request. - [ ] This change requires a documentation update, included: [Dify Document](https://github.com/langgenius/dify-docs) - [x] I understand that this PR may be closed in case there was no previous discussion or issues. (This doesn't apply to typos!) - [x] I've added a test for each change that was introduced, and I tried as much as possible to make a single atomic change. - [x] I've updated the documentation accordingly. - [x] I ran `dev/reformat`(backend) and `cd web && npx lint-staged`(frontend) to appease the lint gods
yindo added the pull-request label 2026-02-21 20:40:35 -05:00
yindo closed this issue 2026-02-21 20:40:35 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langgenius/dify#26958