fix(deep-analyzer): add disable_reasoning parameter to GLM API calls
PR Test / lint (pull_request) Successful in 1s
PR Test / lint (pull_request) Successful in 1s
This commit is contained in:
@@ -93,19 +93,28 @@ class SimpleAIClient:
|
|||||||
base_url = base_url or "https://open.bigmodel.cn/api/coding/paas/v4"
|
base_url = base_url or "https://open.bigmodel.cn/api/coding/paas/v4"
|
||||||
url = f"{base_url}/chat/completions"
|
url = f"{base_url}/chat/completions"
|
||||||
headers = {"Authorization": f"Bearer {api_key}"}
|
headers = {"Authorization": f"Bearer {api_key}"}
|
||||||
payload = {"model": model, "messages": [{"role": "user", "content": prompt}], "max_tokens": max_tokens}
|
# GLM-4.5/4.6/4.7/5 默认启用thinking mode,添加 disable_reasoning 参数获取正常响应
|
||||||
|
payload = {
|
||||||
|
"model": model,
|
||||||
|
"messages": [{"role": "user", "content": prompt}],
|
||||||
|
"max_tokens": max_tokens,
|
||||||
|
"disable_reasoning": True # 禁用思考模式,获取直接响应
|
||||||
|
}
|
||||||
response = requests.post(url, headers=headers, json=payload, timeout=600)
|
response = requests.post(url, headers=headers, json=payload, timeout=600)
|
||||||
response.raise_for_status()
|
response.raise_for_status()
|
||||||
data = response.json()
|
data = response.json()
|
||||||
message = data.get('choices', [{}])[0].get('message', {})
|
message = data.get('choices', [{}])[0].get('message', {})
|
||||||
content = message.get('content', '')
|
content = message.get('content', '')
|
||||||
reasoning = message.get('reasoning_content', '')
|
|
||||||
if not content and reasoning:
|
if not content:
|
||||||
sentences = reasoning.strip().split('。')
|
# 如果仍然为空,检查是否有reasoning_content(用于调试)
|
||||||
useful = [s.strip() for s in sentences if s.strip() and len(s.strip()) > 10]
|
reasoning = message.get('reasoning_content', '')
|
||||||
if useful:
|
if reasoning:
|
||||||
return '。'.join(useful[-3:]) + '。'
|
print(f"[DEBUG] Zhipu API返回空的content,但有reasoning_content。")
|
||||||
return reasoning.strip()[:500]
|
print(f"[DEBUG] 这可能表示disable_reasoning参数未生效或模型不支持。")
|
||||||
|
print(f"[DEBUG] reasoning_content前200字符: {reasoning[:200]}")
|
||||||
|
raise ValueError(f"Zhipu API返回空内容。请检查API配置和模型参数。响应数据: {data}")
|
||||||
|
|
||||||
return content
|
return content
|
||||||
|
|
||||||
def _call_minimax(self, prompt: str, max_tokens: int, api_key: str, model: str, base_url: str) -> str:
|
def _call_minimax(self, prompt: str, max_tokens: int, api_key: str, model: str, base_url: str) -> str:
|
||||||
|
|||||||
Reference in New Issue
Block a user