You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在DSPy中关闭Gemini 2.5 Flash的推理功能?

如何在DSPy中关闭Gemini 2.5 Flash的推理能力

我在DSPy项目中使用Gemini 2.5 Flash作为语言模型,需要关闭其推理能力以开展特定实验,但查阅文档后未找到可行方法。以下是我尝试过的极简代码,但断言始终失败,说明推理仍在运行:

import dspy
from dotenv import load_dotenv
from google.genai.types import GenerateContentConfig, ThinkingConfig

load_dotenv()

config = GenerateContentConfig(
    thinking_config=ThinkingConfig(
        thinking_budget=0
    )
)

lm = dspy.LM("gemini/gemini-2.5-flash", cache=False, config=config, thinking_budget=0, reasoning=False)
dspy.configure(lm=lm, track_usage=True)

classifier = dspy.Predict(dspy.Signature("problem -> answer: float"))
res = classifier(problem="What's 9 + 10?")

if res.get_lm_usage()["gemini/gemini-2.5-flash"]["completion_tokens_details"] is not None:
    assert res.get_lm_usage()["gemini/gemini-2.5-flash"]["completion_tokens_details"]["reasoning_tokens"] == 0, "Reasoning is still turned on"

问题分析

当前代码的核心问题在于DSPy的Gemini LM封装并未正确识别config参数,且额外传入的thinking_budget、reasoning等参数不属于LM初始化的合法参数,无法传递到底层的Google GenAI调用中。

解决方案

要正确关闭Gemini的推理能力,需通过generation_config参数传递GenerateContentConfig,确保thinking_budget=0的配置被底层API接收。修改后的代码如下:

import dspy
from dotenv import load_dotenv
from google.genai.types import GenerateContentConfig, ThinkingConfig

load_dotenv()

# 构建禁用推理的生成配置
generation_config = GenerateContentConfig(
    thinking_config=ThinkingConfig(thinking_budget=0)
)

# 初始化LM时传入正确的generation_config参数
lm = dspy.LM(
    "gemini/gemini-2.5-flash",
    cache=False,
    generation_config=generation_config,
    track_usage=True
)
dspy.configure(lm=lm)

classifier = dspy.Predict(dspy.Signature("problem -> answer: float"))
res = classifier(problem="What's 9 + 10?")

# 验证推理token是否为0
usage = res.get_lm_usage()["gemini/gemini-2.5-flash"]
if "completion_tokens_details" in usage and usage["completion_tokens_details"] is not None:
    assert usage["completion_tokens_details"]["reasoning_tokens"] == 0, "Reasoning is still turned on"

关键说明

  • Gemini的推理能力由thinking_config的thinking_budget控制,设置为0时模型不会执行思考链推理步骤。
  • DSPy的Gemini LM类通过generation_config参数接收Google GenAI的生成配置,而非通用的config参数。
  • 移除无效的thinking_budget=0、reasoning=False等自定义参数,避免干扰LM初始化逻辑。

内容的提问来源于stack exchange,提问作者1058u4

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 02:23:09