[GH-ISSUE #21893] feat: Thinking mode toggle for Qwen3.5 series #58271

Closed
opened 2026-05-05 22:44:12 -05:00 by GiteaMirror · 49 comments
Owner

Originally created by @krpr on GitHub (Feb 26, 2026).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/21893

Check Existing Issues

  • I have searched for all existing open AND closed issues and discussions for similar requests. I have found none that is comparable to my request.

Verify Feature Scope

  • I have read through and understood the scope definition for feature requests in the Issues section. I believe my feature request meets the definition and belongs in the Issues section instead of the Discussions.

Problem Description

Qwen released their new gen model series Qwen3.5, which support use args "chat_template_kwargs": {"enable_thinking": false} to switch thinking model in single model.

Desired Solution you'd like

Will open-webui have a plan to support this kind of model with a toggle button in chat UI?
Now I use some tricks to switch thinking/non-thing modes.
The single model which can be toggled with args may become a new standard for other models.

Alternatives Considered

No response

Additional Context

No response

Originally created by @krpr on GitHub (Feb 26, 2026). Original GitHub issue: https://github.com/open-webui/open-webui/issues/21893 ### Check Existing Issues - [x] I have searched for all existing **open AND closed** issues and discussions for similar requests. I have found none that is comparable to my request. ### Verify Feature Scope - [x] I have read through and understood the scope definition for feature requests in the Issues section. I believe my feature request meets the definition and belongs in the Issues section instead of the Discussions. ### Problem Description Qwen released their new gen model series Qwen3.5, which support use args ```"chat_template_kwargs": {"enable_thinking": false}``` to switch thinking model in single model. ### Desired Solution you'd like Will open-webui have a plan to support this kind of model with a toggle button in chat UI? Now I use some tricks to switch thinking/non-thing modes. The single model which can be toggled with args may become a new standard for other models. ### Alternatives Considered _No response_ ### Additional Context _No response_
Author
Owner

@Classic298 commented on GitHub (Feb 26, 2026):

Search for duplicates there's been 5 exactly the same questions in the last few days

Also you can build it yourself using a toggle filter plugin

<!-- gh-comment-id:3964648755 --> @Classic298 commented on GitHub (Feb 26, 2026): Search for duplicates there's been 5 exactly the same questions in the last few days Also you can build it yourself using a toggle filter plugin
Author
Owner

@gaby commented on GitHub (Mar 7, 2026):

@Classic298 The problem is, those are not applied when using the API. They only get applied when using the Web UI.

I ran into this same problem while using Minimax-M2.5 and Kimi-K2.5. All these new models rely on chat_template_kwargs.

<!-- gh-comment-id:4015314506 --> @gaby commented on GitHub (Mar 7, 2026): @Classic298 The problem is, those are not applied when using the API. They only get applied when using the Web UI. I ran into this same problem while using Minimax-M2.5 and Kimi-K2.5. All these new models rely on `chat_template_kwargs`.
Author
Owner

@Classic298 commented on GitHub (Mar 7, 2026):

@gaby i don't understand. Inlet() part of filter IS applied when going via Api.

Also when going via api wouldn't it be better to have 1 model without thinking and the other model with thinking? Would be much easier than having to specify thinking Parameter at request time all of the time

<!-- gh-comment-id:4016065828 --> @Classic298 commented on GitHub (Mar 7, 2026): @gaby i don't understand. Inlet() part of filter IS applied when going via Api. Also when going via api wouldn't it be better to have 1 model without thinking and the other model with thinking? Would be much easier than having to specify thinking Parameter at request time all of the time
Author
Owner

@gaby commented on GitHub (Mar 7, 2026):

@Classic298 Maybe it was fixed, it didn't used to be applied during API calls.

Yes our plan is to have the base model then add a workspace model with reasoning tweaked.

<!-- gh-comment-id:4016679848 --> @gaby commented on GitHub (Mar 7, 2026): @Classic298 Maybe it was fixed, it didn't used to be applied during API calls. Yes our plan is to have the base model then add a workspace model with reasoning tweaked.
Author
Owner

@Classic298 commented on GitHub (Mar 7, 2026):

Inlet() is always applied outlet() is not

but for a thinking filter you only need inlet anyways

<!-- gh-comment-id:4016686679 --> @Classic298 commented on GitHub (Mar 7, 2026): Inlet() is always applied outlet() is not but for a thinking filter you only need inlet anyways
Author
Owner

@rickross commented on GitHub (Mar 8, 2026):

Also when going via api wouldn't it be better to have 1 model without thinking and the other model with thinking? Would be much easier than having to specify thinking Parameter at request time all of the time

Nothing would be easier than a simple toggle in the prompt box to turn it on or off. It should be an option. Switching models is way more heavyweight than just toggling a switch.

<!-- gh-comment-id:4020175500 --> @rickross commented on GitHub (Mar 8, 2026): > Also when going via api wouldn't it be better to have 1 model without thinking and the other model with thinking? Would be much easier than having to specify thinking Parameter at request time all of the time Nothing would be easier than a simple toggle in the prompt box to turn it on or off. It should be an option. Switching models is way more heavyweight than just toggling a switch.
Author
Owner

@rickross commented on GitHub (Mar 8, 2026):

Search for duplicates there's been 5 exactly the same questions in the last few days

In fact, I did search, and every answer is so complicated. It's totally unclear what to do? Why isn't there just a simple way to add either a correct version of this chat_template_kwargs or to toggle enable_thinking on and off? Learning to write a plugin for the OpenWebUI framework is way harder than adjusting/editing something in the prompt template, but there's no clear way to do that.

And if the question has come up five times in the last few days, isn't that a pretty serious clue that it's something that needs to be addressed?

<!-- gh-comment-id:4020179173 --> @rickross commented on GitHub (Mar 8, 2026): > Search for duplicates there's been 5 exactly the same questions in the last few days In fact, I did search, and every answer is so complicated. It's totally unclear what to do? Why isn't there just a simple way to add either a correct version of this chat_template_kwargs or to toggle enable_thinking on and off? Learning to write a plugin for the OpenWebUI framework is way harder than adjusting/editing something in the prompt template, but there's no clear way to do that. And if the question has come up five times in the last few days, isn't that a pretty serious clue that it's something that needs to be addressed?
Author
Owner

@gaby commented on GitHub (Mar 8, 2026):

I agree with @rickross I've been using Open-WebUI for over a year and still don't know what to do exactly.

This should be an extra field in the UI config for the model.

<!-- gh-comment-id:4020183428 --> @gaby commented on GitHub (Mar 8, 2026): I agree with @rickross I've been using Open-WebUI for over a year and still don't know what to do exactly. This should be an extra field in the UI config for the model.
Author
Owner

@Classic298 commented on GitHub (Mar 8, 2026):

@rickross as i said above, use a filter

a filter allows exactly this

a simple toggle in the prompt box to turn it on or off

<!-- gh-comment-id:4020185946 --> @Classic298 commented on GitHub (Mar 8, 2026): @rickross as i said above, use a filter a filter allows exactly this > a simple toggle in the prompt box to turn it on or off
Author
Owner

@Classic298 commented on GitHub (Mar 8, 2026):

Why isn't there just a simple way to add either a correct version of this chat_template_kwargs or to toggle enable_thinking on and off?

There is. It's called filter

<!-- gh-comment-id:4020186289 --> @Classic298 commented on GitHub (Mar 8, 2026): > Why isn't there just a simple way to add either a correct version of this chat_template_kwargs or to toggle enable_thinking on and off? There is. It's called filter
Author
Owner

@Classic298 commented on GitHub (Mar 8, 2026):

Learning to write a plugin for the OpenWebUI framework is way harder than adjusting/editing something in the prompt template, but there's no clear way to do that.

Give the AI the filter docs and build one yourself, it's a single prompt. You dont need to learn anything
It's a 20 lines filter (at max)

Alternatively: search on openwebui.com there are some thinking filters like this already

<!-- gh-comment-id:4020187033 --> @Classic298 commented on GitHub (Mar 8, 2026): > Learning to write a plugin for the OpenWebUI framework is way harder than adjusting/editing something in the prompt template, but there's no clear way to do that. Give the AI the filter docs and build one yourself, it's a single prompt. You dont need to learn anything It's a 20 lines filter (at max) Alternatively: search on openwebui.com there are some thinking filters like this already
Author
Owner

@Classic298 commented on GitHub (Mar 8, 2026):

And if the question has come up five times in the last few days, isn't that a pretty serious clue that it's something that needs to be addressed?

No because a builtin toggle directly from Open WebUI makes no sense here!

Different inference providers require different thinking parameters, name their body parameters differently - different models have different thinking options

This is something the plugin system was LITERALLY made for and the toggle filters were literally created for (even the example in the docs is for a thinking toggle filter example)

<!-- gh-comment-id:4020189811 --> @Classic298 commented on GitHub (Mar 8, 2026): > And if the question has come up five times in the last few days, isn't that a pretty serious clue that it's something that needs to be addressed? No because a builtin toggle directly from Open WebUI makes no sense here! **Different inference providers require different thinking parameters, name their body parameters differently - different models have different thinking options** This is something the plugin system was LITERALLY made for and the toggle filters were literally created for (even the example in the docs is for a thinking toggle filter example)
Author
Owner

@rickross commented on GitHub (Mar 8, 2026):

Give the AI the filter docs and build one yourself, it's a single prompt. You dont need to learn anything It's a 20 lines filter (at max)

Alternatively: search on openwebui.com there are some thinking filters like this already

Look, I downloaded a Docker image to run OpenWebUI. I didn't clone the Git repo, and I don't want to learn to be an OpenWebUI developer. I'm just a user asking a reasonable question. And apparently there are several others who have the same problem. So why not just be responsive to users and make it easy? What's the upside of insisting that everybody has to learn to write filters?

<!-- gh-comment-id:4020192166 --> @rickross commented on GitHub (Mar 8, 2026): > Give the AI the filter docs and build one yourself, it's a single prompt. You dont need to learn anything It's a 20 lines filter (at max) > > Alternatively: search on openwebui.com there are some thinking filters like this already Look, I downloaded a Docker image to run OpenWebUI. I didn't clone the Git repo, and I don't want to learn to be an OpenWebUI developer. I'm just a user asking a reasonable question. And apparently there are several others who have the same problem. So why not just be responsive to users and make it easy? What's the upside of insisting that everybody has to learn to write filters?
Author
Owner

@Classic298 commented on GitHub (Mar 8, 2026):

@rickross you dont need to clone the git repo to develop a filter.

its a single prompt

Look, i will even do it for you............................... give me 10 minutes......................................

<!-- gh-comment-id:4020194209 --> @Classic298 commented on GitHub (Mar 8, 2026): @rickross you dont need to clone the git repo to develop a filter. its a single prompt Look, i will even do it for you............................... give me 10 minutes......................................
Author
Owner

@Classic298 commented on GitHub (Mar 8, 2026):

well no i won't do it for you

i found this in the community

https://openwebui.com/posts/thinking_toggle_one_click_reasoning_control_for_ll_bb3f66ad

use this

<!-- gh-comment-id:4020195434 --> @Classic298 commented on GitHub (Mar 8, 2026): well no i won't do it for you i found this in the community https://openwebui.com/posts/thinking_toggle_one_click_reasoning_control_for_ll_bb3f66ad use this
Author
Owner

@Classic298 commented on GitHub (Mar 8, 2026):

or this

https://openwebui.com/posts/qwen_3_disable_thinking_toggle_v2_305023ed

<!-- gh-comment-id:4020196999 --> @Classic298 commented on GitHub (Mar 8, 2026): or this https://openwebui.com/posts/qwen_3_disable_thinking_toggle_v2_305023ed
Author
Owner

@gaby commented on GitHub (Mar 8, 2026):

@Classic298 Why do i have to login/create an account to see a filter?

This stuff should be in the docs.

<!-- gh-comment-id:4020197713 --> @gaby commented on GitHub (Mar 8, 2026): @Classic298 Why do i have to login/create an account to see a filter? This stuff should be in the docs.
Author
Owner

@Classic298 commented on GitHub (Mar 8, 2026):

@gaby this is in the docs. https://docs.openwebui.com/features/extensibility/plugin/functions/filter

<!-- gh-comment-id:4020198455 --> @Classic298 commented on GitHub (Mar 8, 2026): @gaby this is in the docs. https://docs.openwebui.com/features/extensibility/plugin/functions/filter
Author
Owner

@Classic298 commented on GitHub (Mar 8, 2026):

If you just give an AI the Filter docs page it is able to one-shot build a thinking filter for you

<!-- gh-comment-id:4020199196 --> @Classic298 commented on GitHub (Mar 8, 2026): If you just give an AI the Filter docs page it is able to one-shot build a thinking filter for you
Author
Owner

@Classic298 commented on GitHub (Mar 8, 2026):

Image
<!-- gh-comment-id:4020199434 --> @Classic298 commented on GitHub (Mar 8, 2026): <img width="862" height="656" alt="Image" src="https://github.com/user-attachments/assets/4acef15a-42b8-4bbd-8ffa-41511a675af1" />
Author
Owner

@gaby commented on GitHub (Mar 8, 2026):

I don't want/need users to have to decide wether they have to enable a toggle or not. I just want this to be transparent to users.

Why are filters/functions now behind a Login wall? They used to be public.

<!-- gh-comment-id:4020204764 --> @gaby commented on GitHub (Mar 8, 2026): I don't want/need users to have to decide wether they have to enable a toggle or not. I just want this to be transparent to users. Why are filters/functions now behind a Login wall? They used to be public.
Author
Owner

@Classic298 commented on GitHub (Mar 8, 2026):

@gaby i dont understand? the whole point of this discussion is to introduce a chat-sided toggle to individually control the thinking ON or OFF.

Why do you now say you dont want users to decide the thinking?

<!-- gh-comment-id:4020209180 --> @Classic298 commented on GitHub (Mar 8, 2026): @gaby i dont understand? the whole point of this discussion is to introduce a chat-sided toggle to individually control the thinking ON or OFF. Why do you now say you dont want users to decide the thinking?
Author
Owner

@gaby commented on GitHub (Mar 8, 2026):

I'm making two models:

  • qwen3.5
  • qwen3.5-instant

I just want the required field added with each request, not a toggle in the Web UI.

<!-- gh-comment-id:4020216794 --> @gaby commented on GitHub (Mar 8, 2026): I'm making two models: - qwen3.5 - qwen3.5-instant I just want the required field added with each request, not a toggle in the Web UI.
Author
Owner

@Classic298 commented on GitHub (Mar 8, 2026):

Ok in that case, why not use the Advanced Parameters of the model? you can configure thinking levels there right in the UI

Or, if that doesn't work because the inference engine/inference provider is looking for a different thinking parameter, add it using a filter

filter inlet() and make it so that your qwen3.5 model gets thinking parameter added to the request body and the qwen3.5-instant does not

problem solved

<!-- gh-comment-id:4020218935 --> @Classic298 commented on GitHub (Mar 8, 2026): Ok in that case, why not use the Advanced Parameters of the model? you can configure thinking levels there right in the UI Or, if that doesn't work because the inference engine/inference provider is looking for a different thinking parameter, add it using a filter filter inlet() and make it so that your qwen3.5 model gets thinking parameter added to the request body and the qwen3.5-instant does not problem solved
Author
Owner

@gaby commented on GitHub (Mar 8, 2026):

@Classic298 With these new models the advanced parameters do not work. Models like kimi-k2.5, glm-5, minimax-m2.5, and qwen3.5 require the following in extra_body:

"chat_template_kwargs": {"enable_thinking": false}

Setting in Advanced Parameters the thinking, or reasoning effort fields has no effect.

<!-- gh-comment-id:4020224569 --> @gaby commented on GitHub (Mar 8, 2026): @Classic298 With these new models the advanced parameters do not work. Models like kimi-k2.5, glm-5, minimax-m2.5, and qwen3.5 require the following in `extra_body`: `"chat_template_kwargs": {"enable_thinking": false}` Setting in Advanced Parameters the thinking, or reasoning effort fields has no effect.
Author
Owner

@Classic298 commented on GitHub (Mar 8, 2026):

@gaby open the model in the UI

expand the advanced parameters section

scroll down

click on add custom parameter

add custom param with name chat_template_kwargs and value {"enable_thinking": true}

that should already work

<!-- gh-comment-id:4020231527 --> @Classic298 commented on GitHub (Mar 8, 2026): @gaby open the model in the UI expand the advanced parameters section scroll down click on add custom parameter add custom param with name `chat_template_kwargs` and value {"enable_thinking": true} that should already work
Author
Owner

@gaby commented on GitHub (Mar 8, 2026):

It does not, the chat_template_kwargs has to be inside the extra_body.

https://huggingface.co/Qwen/Qwen3.5-35B-A3B#instruct-or-non-thinking-mode

I can test again tomorrow, but as of Friday it wasn't working with latest Open-WebUI and vLLM 0.17.0-rc

Will report back

<!-- gh-comment-id:4020239712 --> @gaby commented on GitHub (Mar 8, 2026): It does not, the `chat_template_kwargs` has to be inside the `extra_body`. https://huggingface.co/Qwen/Qwen3.5-35B-A3B#instruct-or-non-thinking-mode I can test again tomorrow, but as of Friday it wasn't working with latest Open-WebUI and vLLM 0.17.0-rc Will report back
Author
Owner

@Classic298 commented on GitHub (Mar 8, 2026):

and if that doesn't work for you (but it absolutely should work because custom parameters are added and merged into the model request and sent to the model provider)

then here is an example filter that also does the same thing

Expample filter
"""
title: Thinking Mode Filter
author: Classic298
version: 0.2.0
description: Injects chat_template_kwargs to control thinking mode for a list of defined models.
"""

from pydantic import BaseModel, Field
from typing import Optional

class Filter:
    class Valves(BaseModel):
        thinking_model_ids: str = Field(
            default="qwen3.5, kimi-k2.5, glm-5, minimax-m2.5",
            description="Comma-separated list of model IDs that should have thinking enabled. All other models this filter is attached to will have thinking disabled.",
        )

    def __init__(self):
        self.valves = self.Valves()

    def inlet(self, body: dict, __user__: Optional[dict] = None) -> dict:
        model_id = body.get("model", "")
        thinking_ids = {
            mid.strip() for mid in self.valves.thinking_model_ids.split(",") if mid.strip()
        }
        enable_thinking = model_id in thinking_ids
        body["chat_template_kwargs"] = {"enable_thinking": enable_thinking}
        return body
<!-- gh-comment-id:4020240874 --> @Classic298 commented on GitHub (Mar 8, 2026): and if that doesn't work for you (but it absolutely should work because custom parameters are added and merged into the model request and sent to the model provider) then here is an example filter that also does the same thing <details> <summary>Expample filter</summary> ``` """ title: Thinking Mode Filter author: Classic298 version: 0.2.0 description: Injects chat_template_kwargs to control thinking mode for a list of defined models. """ from pydantic import BaseModel, Field from typing import Optional class Filter: class Valves(BaseModel): thinking_model_ids: str = Field( default="qwen3.5, kimi-k2.5, glm-5, minimax-m2.5", description="Comma-separated list of model IDs that should have thinking enabled. All other models this filter is attached to will have thinking disabled.", ) def __init__(self): self.valves = self.Valves() def inlet(self, body: dict, __user__: Optional[dict] = None) -> dict: model_id = body.get("model", "") thinking_ids = { mid.strip() for mid in self.valves.thinking_model_ids.split(",") if mid.strip() } enable_thinking = model_id in thinking_ids body["chat_template_kwargs"] = {"enable_thinking": enable_thinking} return body ``` </details>
Author
Owner

@Classic298 commented on GitHub (Mar 8, 2026):

@gaby ok in that case try the filter i posted here it injects into extra_body

<!-- gh-comment-id:4020243164 --> @Classic298 commented on GitHub (Mar 8, 2026): @gaby ok in that case try the filter i posted here it injects into extra_body
Author
Owner

@Classic298 commented on GitHub (Mar 8, 2026):

of course adjust the model list as you need.

<!-- gh-comment-id:4020243440 --> @Classic298 commented on GitHub (Mar 8, 2026): of course adjust the model list as you need.
Author
Owner

@Classic298 commented on GitHub (Mar 8, 2026):

PS: @gaby did you try the advanced parameters? whatever you add there also should get added to extra_body - did you try it?

Because i think there is a misunderstanding on your end.

extra_body is not a JSON field in the HTTP request, it's a parameter of the OpenAI Python SDK client, which merges its contents into the top-level request body before sending over the wire.

<!-- gh-comment-id:4020245556 --> @Classic298 commented on GitHub (Mar 8, 2026): PS: @gaby did you try the advanced parameters? whatever you add there also should get added to extra_body - did you try it? Because i think there is a misunderstanding on your end. extra_body is not a JSON field in the HTTP request, it's a parameter of the OpenAI Python SDK client, which merges its contents into the top-level request body before sending over the wire.
Author
Owner

@gaby commented on GitHub (Mar 8, 2026):

@Classic298 i will try tomorrow and report back 💪

<!-- gh-comment-id:4020268081 --> @gaby commented on GitHub (Mar 8, 2026): @Classic298 i will try tomorrow and report back 💪
Author
Owner

@rickross commented on GitHub (Mar 8, 2026):

Ok in that case, why not use the Advanced Parameters of the model? you can configure thinking levels there right in the UI

First thing It tried, but the Open WebUI custom-param widget is stringifying the nested JSON.
chat_template_kwargs: "{"enable_thinking": false}"

<!-- gh-comment-id:4020268771 --> @rickross commented on GitHub (Mar 8, 2026): > Ok in that case, why not use the Advanced Parameters of the model? you can configure thinking levels there right in the UI First thing It tried, but the Open WebUI custom-param widget is stringifying the nested JSON. chat_template_kwargs: "{\"enable_thinking\": false}"
Author
Owner

@Classic298 commented on GitHub (Mar 8, 2026):

@rickross Good catch on the stringification — but the backend already handles that. Custom parameter values that are JSON strings are automatically parsed back into objects before being merged into the request body (payload.py L96-103). So even though the UI shows it as a string, the actual HTTP request sent to your inference engine will have it as a proper nested object:

{
  "model": "qwen3.5",
  "messages": [...],
  "chat_template_kwargs": {"enable_thinking": false}
}

So custom parameters should work for this use case. If it doesn't, something else may be going on — would be great to see the actual request body being sent (enable DEBUG logging).

Alternatively, the filter I posted above also works and gives you more control.

<!-- gh-comment-id:4020287749 --> @Classic298 commented on GitHub (Mar 8, 2026): @rickross Good catch on the stringification — but the backend already handles that. Custom parameter values that are JSON strings are automatically parsed back into objects before being merged into the request body ([payload.py L96-103](https://github.com/open-webui/open-webui/blob/dev/backend/open_webui/utils/payload.py#L96-L103)). So even though the UI shows it as a string, the actual HTTP request sent to your inference engine will have it as a proper nested object: ```json { "model": "qwen3.5", "messages": [...], "chat_template_kwargs": {"enable_thinking": false} } ``` So custom parameters should work for this use case. If it doesn't, something else may be going on — would be great to see the actual request body being sent (enable DEBUG logging). Alternatively, the filter I posted above also works and gives you more control.
Author
Owner

@gaby commented on GitHub (Mar 9, 2026):

@Classic298 I can confirm that adding a custom parameter with:

  • key: chat_template_kwargs
  • value: {"enable_thinking": false}

Solved the issue.

I got other issues now, but there's a ticket for those already. See https://github.com/open-webui/open-webui/discussions/22230#discussioncomment-16010991

<!-- gh-comment-id:4027688417 --> @gaby commented on GitHub (Mar 9, 2026): @Classic298 I can confirm that adding a custom parameter with: - key: `chat_template_kwargs` - value: `{"enable_thinking": false}` Solved the issue. I got other issues now, but there's a ticket for those already. See https://github.com/open-webui/open-webui/discussions/22230#discussioncomment-16010991
Author
Owner

@kukalikuk commented on GitHub (Mar 10, 2026):

@Classic298 I can confirm that adding a custom parameter with:

  • key: chat_template_kwargs
  • value: {"enable_thinking": false}

Solved the issue.

I got other issues now, but there's a ticket for those already. See #22230 (reply in thread)

I use LM Studio as backend and this method still not working for me, qwen3.5 still in thinking mode.

<!-- gh-comment-id:4031519374 --> @kukalikuk commented on GitHub (Mar 10, 2026): > [@Classic298](https://github.com/Classic298) I can confirm that adding a custom parameter with: > > * key: `chat_template_kwargs` > * value: `{"enable_thinking": false}` > > Solved the issue. > > I got other issues now, but there's a ticket for those already. See [#22230 (reply in thread)](https://github.com/open-webui/open-webui/discussions/22230#discussioncomment-16010991) I use LM Studio as backend and this method still not working for me, qwen3.5 still in thinking mode.
Author
Owner

@Classic298 commented on GitHub (Mar 10, 2026):

@kukalikuk did you try the filter above? does lmstudio require other parameters?

<!-- gh-comment-id:4031607603 --> @Classic298 commented on GitHub (Mar 10, 2026): @kukalikuk did you try the filter above? does lmstudio require other parameters?
Author
Owner

@kukalikuk commented on GitHub (Mar 10, 2026):

@kukalikuk did you try the filter above? does lmstudio require other parameters?

I tried so many filter and function from openwebui and gemini made. All failed. The only thing that worked is injecting {%- set enable_thinking = false -%} as first line in jinja template in LM Studio. But that means turning of thinking mode completely for all api call to that model.

I also tried adding that kwargs into advance parameter into chat control (qwen3.5 still thinking) and also in model advance parameter (qwen3.5 keep thinking)

<!-- gh-comment-id:4031687312 --> @kukalikuk commented on GitHub (Mar 10, 2026): > [@kukalikuk](https://github.com/kukalikuk) did you try the filter above? does lmstudio require other parameters? I tried so many filter and function from openwebui and gemini made. All failed. The only thing that worked is injecting {%- set enable_thinking = false -%} as first line in jinja template in LM Studio. But that means turning of thinking mode completely for all api call to that model. I also tried adding that kwargs into advance parameter into chat control (qwen3.5 still thinking) and also in model advance parameter (qwen3.5 keep thinking)
Author
Owner

@Classic298 commented on GitHub (Mar 10, 2026):

what parameter does lm studio require?

<!-- gh-comment-id:4031789625 --> @Classic298 commented on GitHub (Mar 10, 2026): what parameter does lm studio require?
Author
Owner

@kukalikuk commented on GitHub (Mar 10, 2026):

and if that doesn't work for you (but it absolutely should work because custom parameters are added and merged into the model request and sent to the model provider)

then here is an example filter that also does the same thing

Expample filter

Tried this filter, enable it globally and qwen3.5 is still in thinking mode

<!-- gh-comment-id:4031810386 --> @kukalikuk commented on GitHub (Mar 10, 2026): > and if that doesn't work for you (but it absolutely should work because custom parameters are added and merged into the model request and sent to the model provider) > > then here is an example filter that also does the same thing > > Expample filter Tried this filter, enable it globally and qwen3.5 is still in thinking mode
Author
Owner

@kukalikuk commented on GitHub (Mar 10, 2026):

what parameter does lm studio require?

{%- set enable_thinking = false -%} as first line in jinja template

<!-- gh-comment-id:4031824398 --> @kukalikuk commented on GitHub (Mar 10, 2026): > what parameter does lm studio require? {%- set enable_thinking = false -%} as first line in jinja template
Author
Owner

@rickross commented on GitHub (Mar 10, 2026):

what parameter does lm studio require?

I think the issue is the stringification I mentioned above. I am using LM Studio, and the stringified version is what it received from Open-WebUI. The advanced parameter solution described above does not work because of this.

I also ended up setting the parameter in the jinja template on the model side, but it would be better if it didn't have to be hard-coded.

<!-- gh-comment-id:4031904707 --> @rickross commented on GitHub (Mar 10, 2026): > what parameter does lm studio require? I think the issue is the stringification I mentioned above. I am using LM Studio, and the stringified version is what it received from Open-WebUI. The advanced parameter solution described above does not work because of this. I also ended up setting the parameter in the jinja template on the model side, but it would be better if it didn't have to be hard-coded.
Author
Owner

@Classic298 commented on GitHub (Mar 10, 2026):

@rickross the backend handles it - it should not be sent as a string, did you manage to catch the request? It should definitely NOT be stringified, the backend handles it as described above.

<!-- gh-comment-id:4031926691 --> @Classic298 commented on GitHub (Mar 10, 2026): @rickross the backend handles it - it should not be sent as a string, did you manage to catch the request? It should definitely NOT be stringified, the backend handles it as described above.
Author
Owner

@Classic298 commented on GitHub (Mar 10, 2026):

And if you know what parameter is needed, at last, the Filter should be able to definitely do it

<!-- gh-comment-id:4031928902 --> @Classic298 commented on GitHub (Mar 10, 2026): And if you know what parameter is needed, at last, the Filter should be able to definitely do it
Author
Owner

@kukalikuk commented on GitHub (Mar 10, 2026):

And if you know what parameter is needed, at last, the Filter should be able to definitely do it

That is also what gemini suggested and the fact that it didn't work is what made us here.

<!-- gh-comment-id:4035190078 --> @kukalikuk commented on GitHub (Mar 10, 2026): > And if you know what parameter is needed, at last, the Filter should be able to definitely do it That is also what gemini suggested and the fact that it didn't work is what made us here.
Author
Owner

@AIWintermuteAI commented on GitHub (Apr 24, 2026):

@rickross as i said above, use a filter

a filter allows exactly this

a simple toggle in the prompt box to turn it on or off

@Classic298

Toggles are not working anymore 😂 spent good few hours trying to solve this problem two days ago, was completely dumbfounded, created an issue
https://github.com/open-webui/open-webui/issues/24019#issuecomment-4311408933
still trying to figure it out, but I do think what was proposed before (toggle to switch between thinking and not thinking mode as a function) will not work. Perhaps it can work as function to disable thinking, but tbh it is quite ugly with toggle functionality disabled.

<!-- gh-comment-id:4311569468 --> @AIWintermuteAI commented on GitHub (Apr 24, 2026): > [@rickross](https://github.com/rickross) as i said above, use a filter > > a filter allows exactly this > > > a simple toggle in the prompt box to turn it on or off @Classic298 Toggles are not working anymore 😂 spent good few hours trying to solve this problem two days ago, was completely dumbfounded, created an issue https://github.com/open-webui/open-webui/issues/24019#issuecomment-4311408933 still trying to figure it out, but I do think what was proposed before (toggle to switch between thinking and not thinking mode as a function) will not work. Perhaps it can work as function to disable thinking, but tbh it is quite ugly with toggle functionality disabled.
Author
Owner

@Classic298 commented on GitHub (Apr 24, 2026):

I just commented - what's the question/issue? They still work you just click on the icon now to toggle them on and off.

You can call it "Enable thinking" - disable to disable, enable to enable

<!-- gh-comment-id:4311584138 --> @Classic298 commented on GitHub (Apr 24, 2026): I just commented - what's the question/issue? They still work you just click on the icon now to toggle them on and off. You can call it "Enable thinking" - disable to disable, enable to enable
Author
Owner

@AIWintermuteAI commented on GitHub (Apr 24, 2026):

The only way it currently can work is "Disable thinking", since thinking is enabled by default for thinking models.
And then switching between thinking and not thinking mode would require multiple button presses
Image
in this situation I'd need to press on integrations to restore thinking to the model.

I'm not saying it does not work - you can walk on crutches if necessary. It's just it is not convenient or well-thought. I am a software engineer and work with LLMs. But I run open webui instance for my family members, who are much less tech savy. So having a toggle there would help with awareness of that feature.

Someone already created feature request for this
https://github.com/open-webui/open-webui/discussions/17574
I know it's an open source project and I'm not paying you for the development, so make of it what you will.

<!-- gh-comment-id:4311848461 --> @AIWintermuteAI commented on GitHub (Apr 24, 2026): The only way it currently can work is "Disable thinking", since thinking is enabled by default for thinking models. And then switching between thinking and not thinking mode would require multiple button presses <img width="610" height="384" alt="Image" src="https://github.com/user-attachments/assets/7aa1e431-804e-4747-819a-9e8edd4158ce" /> in this situation I'd need to press on integrations to restore thinking to the model. I'm not saying it does not work - you can walk on crutches if necessary. It's just it is not convenient or well-thought. I am a software engineer and work with LLMs. But I run open webui instance for my family members, who are much less tech savy. So having a toggle there would help with awareness of that feature. Someone already created feature request for this https://github.com/open-webui/open-webui/discussions/17574 I know it's an open source project and I'm not paying you for the development, so make of it what you will.
Author
Owner

@Classic298 commented on GitHub (Apr 24, 2026):

You can also disable thinking by default and let users enable it with the filter. I'll update the docs herefore but it doesn't have to be the way you did it.

<!-- gh-comment-id:4312423276 --> @Classic298 commented on GitHub (Apr 24, 2026): You can also disable thinking by default and let users enable it with the filter. I'll update the docs herefore but it doesn't have to be the way you did it.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#58271