fix(deep-analyzer, srt): correct Zhipu API thinking parameter and fix metadata handling

Root cause:
1. thinking.type="disabled" caused ASR correction accuracy degradation
2. SRTProcessor didn't flatten nested metadata structure
3. Low-quality auto-generated summary section
4. duration field type handling issue

Changes:
- DeepAnalyzer: Remove thinking.type="disabled" to enable default thinking mode
- SRTProcessor: Add metadata flattening for nested structures
- SRTProcessor: Remove low-quality summary section generation
- SRTProcessor: Add duration type checking (string or int)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-21 21:41:29 +08:00
parent 1f599f0c60
commit 7ac4937c48
2 changed files with 33 additions and 21 deletions
+10 -8
View File
@@ -95,28 +95,30 @@ class SimpleAIClient:
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,使用 thinking.type 参数禁用
# GLM-4.5/4.6/4.7/5 默认启用thinking mode
# 移除 thinking.type="disabled",让AI使用默认思考模式以提高准确性
payload = {
"model": model,
"messages": [{"role": "user", "content": prompt}],
"max_tokens": max_tokens,
"thinking": {
"type": "disabled" # 禁用思考模式,获取直接响应
}
"max_tokens": max_tokens
}
response = requests.post(url, headers=headers, json=payload, timeout=600)
response.raise_for_status()
data = response.json()
message = data.get('choices', [{}])[0].get('message', {})
# 优先返回 content 字段
content = message.get('content', '')
# 如果 content 为空但有 reasoning_content,使用 reasoning_content
if not content:
# 如果仍然为空,检查是否有reasoning_content(用于调试)
reasoning = message.get('reasoning_content', '')
if reasoning:
print(f"[DEBUG] Zhipu API返回空的content,但有reasoning_content。", file=sys.stderr)
print(f"[DEBUG] 这可能表示thinking.type参数未生效或模型不支持。", file=sys.stderr)
print(f"[DEBUG] Zhipu API返回空的content,使用reasoning_content。", file=sys.stderr)
print(f"[DEBUG] reasoning_content前200字符: {reasoning[:200]}", file=sys.stderr)
content = reasoning
if not content:
raise ValueError(f"Zhipu API返回空内容。请检查API配置和模型参数。响应数据: {data}")
return content