fix: correct Zhipu API thinking parameter and add non-interactive archive mode
PR Test / lint (pull_request) Successful in 2s

This commit is contained in:
2026-03-20 00:44:41 +08:00
parent 7903690882
commit 1f599f0c60
4 changed files with 34 additions and 7 deletions
+9 -5
View File
@@ -90,15 +90,19 @@ class SimpleAIClient:
def _call_zhipu(self, prompt: str, max_tokens: int, api_key: str, model: str, base_url: str) -> str:
import requests
import sys
base_url = base_url or "https://open.bigmodel.cn/api/coding/paas/v4"
url = f"{base_url}/chat/completions"
headers = {"Authorization": f"Bearer {api_key}"}
# GLM-4.5/4.6/4.7/5 默认启用thinking mode,添加 disable_reasoning 参数获取正常响应
# GLM-4.5/4.6/4.7/5 默认启用thinking mode,使用 thinking.type 参数禁用
payload = {
"model": model,
"messages": [{"role": "user", "content": prompt}],
"max_tokens": max_tokens,
"disable_reasoning": True # 禁用思考模式,获取直接响应
"thinking": {
"type": "disabled" # 禁用思考模式,获取直接响应
}
}
response = requests.post(url, headers=headers, json=payload, timeout=600)
response.raise_for_status()
@@ -110,9 +114,9 @@ class SimpleAIClient:
# 如果仍然为空,检查是否有reasoning_content(用于调试)
reasoning = message.get('reasoning_content', '')
if reasoning:
print(f"[DEBUG] Zhipu API返回空的content,但有reasoning_content。")
print(f"[DEBUG] 这可能表示disable_reasoning参数未生效或模型不支持。")
print(f"[DEBUG] reasoning_content前200字符: {reasoning[:200]}")
print(f"[DEBUG] Zhipu API返回空的content,但有reasoning_content。", file=sys.stderr)
print(f"[DEBUG] 这可能表示thinking.type参数未生效或模型不支持。", file=sys.stderr)
print(f"[DEBUG] reasoning_content前200字符: {reasoning[:200]}", file=sys.stderr)
raise ValueError(f"Zhipu API返回空内容。请检查API配置和模型参数。响应数据: {data}")
return content