[PR #2374] [MERGED] feat(openai_api_compatible): support reasoning_effort #2427

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

📋 Pull Request Information

Original PR: https://github.com/langgenius/dify-official-plugins/pull/2374
Author: @utsumi-fj
Created: 1/7/2026
Status: Merged
Merged: 1/7/2026
Merged by: @crazywoola

Base: mainHead: openai_api_compatible_reasoning_effort


📝 Commits (1)

  • 7f8e4b8 feat(openai_api_compatible): support reasoning_effort

📊 Changes

2 files changed (+26 additions, -2 deletions)

View changed files

📝 models/openai_api_compatible/manifest.yaml (+1 -1)
📝 models/openai_api_compatible/models/llm/llm.py (+25 -1)

📄 Description

Related Issues or Context

Add support for configuring reasoning_effort for LLMs that support thinking mode.

This option is available when:

  1. In the model settings, Thinking Mode Support is set to Only Thinking Mode or Both Modes, and
  2. If Both Modes is selected, the LLM node setting Thinking mode is enabled.

When enabled, Reasoning effort can be set to low, medium, or high (aligned with the options used by openai/gpt-oss-20b and openai/gpt-oss-120b).

Depending on the configuration, the following fields are added to the request:

  1. "reasoning_effort": "<value>"
  2. "chat_template_kwargs": {"reasoning_effort": "<value>"}

The field 1. is compatible with OpenAI's Chat Completions API: https://platform.openai.com/docs/api-reference/chat/create#chat_create-reasoning_effort .
The field 2. is required for some OpenAI-compatible runtimes (e.g., llama.cpp-hosted models) that read reasoning-related options from template kwargs, and can be treated as an OpenAI-compatible extension.

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.)
reasoning_effort_en reasoning_effort_cn
  • 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.6.0 is in requirements.txt (SDK docs)

Environment Verification (If Any Code Changes)

Local Deployment Environment

  • Dify Version is: 1.11.1, I have Tested My Changes on Local Deployment Dify 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/2374 **Author:** [@utsumi-fj](https://github.com/utsumi-fj) **Created:** 1/7/2026 **Status:** ✅ Merged **Merged:** 1/7/2026 **Merged by:** [@crazywoola](https://github.com/crazywoola) **Base:** `main` ← **Head:** `openai_api_compatible_reasoning_effort` --- ### 📝 Commits (1) - [`7f8e4b8`](https://github.com/langgenius/dify-official-plugins/commit/7f8e4b8e75d91b18c4fedaca83e07a9ecaebf4ba) feat(openai_api_compatible): support reasoning_effort ### 📊 Changes **2 files changed** (+26 additions, -2 deletions) <details> <summary>View changed files</summary> 📝 `models/openai_api_compatible/manifest.yaml` (+1 -1) 📝 `models/openai_api_compatible/models/llm/llm.py` (+25 -1) </details> ### 📄 Description ## Related Issues or Context Add support for configuring `reasoning_effort` for LLMs that support thinking mode. This option is available when: 1. In the model settings, `Thinking Mode Support` is set to `Only Thinking Mode` or `Both Modes`, and 2. If `Both Modes` is selected, the LLM node setting `Thinking mode` is enabled. When enabled, `Reasoning effort` can be set to `low`, `medium`, or `high` (aligned with the options used by openai/gpt-oss-20b and openai/gpt-oss-120b). Depending on the configuration, the following fields are added to the request: 1. `"reasoning_effort": "<value>"` 2. `"chat_template_kwargs": {"reasoning_effort": "<value>"}` The field 1. is compatible with OpenAI's Chat Completions API: https://platform.openai.com/docs/api-reference/chat/create#chat_create-reasoning_effort . The field 2. is required for some OpenAI-compatible runtimes (e.g., llama.cpp-hosted models) that read reasoning-related options from template kwargs, and can be treated as an OpenAI-compatible extension. ## 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. --> - [ ] 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. --> - [x] 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. --> <img width="1464" height="911" alt="reasoning_effort_en" src="https://github.com/user-attachments/assets/963ff529-d4f2-4530-b670-dd0f207d5253" /> <img width="1467" height="901" alt="reasoning_effort_cn" src="https://github.com/user-attachments/assets/c7c79e12-465b-4170-901a-35d9dcda0efb" /> - [ ] 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.6.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: 1.11.1, 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 --> --- <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:16:57 -05:00
yindo closed this issue 2026-02-16 11:16:57 -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#2427