.llm.api] API returned empty model list(已回退到默认的 2 个模型)

2026年06月20日 20:21 22.17 秒 success

错误信息

获取模型列表失败:API错误: [error.llm.api] API returned empty model list(已回退到默认的 2 个模型)

AI 解决方案

🌐 错误翻译


原文:API returned empty model list
译文:API返回了空的模型列表

🎯 原因分析


API调用返回了空的模型列表,这通常由以下几种原因导致:
  • API密钥或权限问题:提供的API密钥无效、已过期,或关联的账户/项目没有获取模型列表的权限。

  • 网络或连接问题:调用API端点时网络不稳定,或请求被防火墙、代理拦截。

  • API端服务异常:对方API服务暂时不可用或其数据接口存在问题。
  • 💡 解决方案


    请按顺序检查以下项:

    • 核对API密钥

    • 检查代码或配置文件中用于调用该API的密钥是否正确、是否已过期或是否被撤销。
          # 例如,在环境变量中检查
          echo $LLM_API_KEY
          

      • 验证网络连接与端点

      • 使用curl或Postman等工具,手动测试向API端点发送请求,观察是否能正常返回。
            # 示例:用curl测试API连通性(请替换实际的URL和头信息)
            curl -X GET "https://api.example.com/v1/models" \
                 -H "Authorization: Bearer YOUR_API_KEY"
            

        • 检查代码逻辑

        • 确保代码中发送请求的URL、请求头(如Authorization)、参数均正确无误。

          🛡️ 预防措施


          配置校验:在应用启动时,添加对关键配置(如API密钥)的校验逻辑,确保其非空且格式基本正确。
        • 增加健壮性处理:在代码中实现重试机制和更详细的日志记录,便于快速定位是网络问题、认证问题还是服务端问题。

        •     # 伪代码示例:带重试和日志的API调用
              import requests
              import logging
          
              def get_models_with_retry(api_url, headers, max_retries=3):
                  for attempt in range(max_retries):
                      try:
                          response = requests.get(api_url, headers=headers, timeout=10)
                          response.raise_for_status() # 检查HTTP错误
                          models = response.json().get('models', [])
                          if models: # 检查列表是否非空
                              return models
                          else:
                              logging.warning(f"API返回空模型列表,尝试:{attempt+1}")
                      except requests.exceptions.RequestException as e:
                          logging.error(f"API请求失败: {e}")
                  logging.error("达到最大重试次数,获取模型列表失败")
                  return []