⚠️ Empty response from model — retrying (1/3) ⚠️ Empty response from model — ret...
错误信息
⚠️ Empty response from model — retrying (1/3)
⚠️ Empty response from model — retrying (2/3)
⚠️ Empty response from model — retrying (3/3)
⚡ Interrupting agent... (press Ctrl+C again to force exit)
⚡ Interrupted during API call.
AI 解决方案
报错分析
1.错误翻译
原文:Empty response from model — retrying
译文:模型返回空响应——正在重试
原文:Interrupted during API call
译文:API调用期间被中断
2.原因分析
choices字段为空)3. 解决方案
import requests
from tenacity import retry, stop_after_attempt, wait_exponential
@retry(stop=stop_after_attempt(3), wait=wait_exponential(min=4, max=10))
def call_dmxapi(prompt: str, api_key: str):
resp = requests.post(
"https://api.dmxapi.com/v1/chat/completions",
headers={"Authorization": f"Bearer {api_key}"},
json={"model": "your-model", "messages": [{"role": "user", "content": prompt}]},
timeout=30 # 防止无限等待
)
resp.raise_for_status()
data = resp.json()
if not data.get("choices"):
raise ValueError("Empty response from model") # 主动抛出异常触发重试
return data["choices"][0]["message"]["content"]
# 使用示例
try:
result = call_dmxapi("你好", "YOUR_API_KEY")
print(result)
except Exception as e:
print(f"调用失败: {e}")
4. 预防措施
tenacity库设置指数退避重试(如示例),避免无效等待 choices字段非空,主动抛异常触发重试逻辑 tenacity(重试管理)、requests(带超时控制) ---
分析基于API调用空响应的典型场景,需结合实际代码调整参数。