⚠️ Empty response from model — retrying (1/3) ⚠️ Empty response from model — ret...

2026年04月23日 15:04 processing

错误信息

⚠️ 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.原因分析


  • 根本原因:调用模型API时连续3次收到空响应,触发重试上限后强制中断

  • 发生位置:API请求-响应环节,模型未返回有效结果(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调用空响应的典型场景,需结合实际代码调整参数。