Merge pull request #2728 from yueguobin/feature/disable-deepseek-thinking-mode

fix: Disable DeepSeek thinking mode to avoid reasoning_content errors
This commit is contained in:
Jeremy Grossmann 2026-05-09 22:41:27 +08:00 committed by GitHub
commit 534bb5eded
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -110,15 +110,26 @@ def create_base_model(
raise ValueError("LLM configuration requires 'provider' field") raise ValueError("LLM configuration requires 'provider' field")
try: try:
model = init_chat_model( # Prepare parameters for init_chat_model
config_vars["model_name"], init_params = {
model_provider=config_vars["model_provider"], "model": config_vars["model_name"],
api_key=config_vars["api_key"], "model_provider": config_vars["model_provider"],
base_url=config_vars["base_url"], "api_key": config_vars["api_key"],
temperature=config_vars["temperature"], "base_url": config_vars["base_url"],
configurable_fields="any", "temperature": config_vars["temperature"],
config_prefix="foo", "configurable_fields": "any",
) "config_prefix": "foo",
}
# Disable DeepSeek thinking mode to avoid reasoning_content handling issues
# DeepSeek models enable thinking mode by default, which returns reasoning_content
# that must be passed back to the API in subsequent requests. To simplify
# message handling and avoid 400 errors, we disable it here.
if config_vars["model_provider"] == "deepseek":
init_params["extra_body"] = {"thinking": {"type": "disabled"}}
logger.info("DeepSeek thinking mode disabled")
model = init_chat_model(**init_params)
logger.info("Base model created successfully") logger.info("Base model created successfully")
return model return model
@ -167,15 +178,26 @@ def create_title_model(
raise ValueError("LLM configuration requires 'provider' field") raise ValueError("LLM configuration requires 'provider' field")
try: try:
model = init_chat_model( # Prepare parameters for init_chat_model
config_vars["model_name"], init_params = {
model_provider=config_vars["model_provider"], "model": config_vars["model_name"],
api_key=config_vars["api_key"], "model_provider": config_vars["model_provider"],
base_url=config_vars["base_url"], "api_key": config_vars["api_key"],
temperature="1.0", # Higher temperature for more creative titles "base_url": config_vars["base_url"],
configurable_fields="any", "temperature": "1.0", # Higher temperature for more creative titles
config_prefix="foo", "configurable_fields": "any",
) "config_prefix": "foo",
}
# Disable DeepSeek thinking mode to avoid reasoning_content handling issues
# DeepSeek models enable thinking mode by default, which returns reasoning_content
# that must be passed back to the API in subsequent requests. To simplify
# message handling and avoid 400 errors, we disable it here.
if config_vars["model_provider"] == "deepseek":
init_params["extra_body"] = {"thinking": {"type": "disabled"}}
logger.info("DeepSeek thinking mode disabled for title model")
model = init_chat_model(**init_params)
logger.info("Title model created successfully") logger.info("Title model created successfully")
return model return model