错误信息: API 返回的 completion 类型错误:<class 'str'>: <!DOCTYPE html> <html lang="zh"> <h...

2025年11月26日 18:21 状态: processing

🚨 错误信息

错误信息: API 返回的 completion 类型错误:<class 'str'>: <!DOCTYPE html> <html lang="zh"> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> <meta name="theme-color" content="#ffffff" /> <meta name="description" content="OpenAI 接口聚合管理,支持多种渠道包括 OpenAI,Azure,Claude,Midjourney,Suno,Luma,Runway,Kling,Gemini,Flux,Udio 可用于二次分发管理 key" /> <link rel="icon" href="" /> <link rel="dns-prefetch" href="https://at.alicdn.com"> <link rel="preconnect" href="https://at.alicdn.com" crossorigin> <link rel="stylesheet" href="https://at.alicdn.com/t/c/font_4670331_ymatw5orvcb.css" crossorigin="anonymous"> <script type="module" crossorigin src="/assets/app--HzhZ1Oi.js"></script> <link rel="modulepreload" crossorigin href="/assets/chunk-DNvSC-lt.js"> <link rel="modulepreload" crossorigin href="/assets/chunk-CX4HiF4A.js"> <link rel="modulepreload" crossorigin href="/assets/chunk-B44qZnMV.js"> <link rel="modulepreload" crossorigin href="/assets/chunk-DyojDNx7.js"> <link rel="modulepreload" crossorigin href="/assets/chunk-DnR-Nqyv.js"> <link rel="modulepreload" crossorigin href="/assets/chunk-FC8mhxCE.js"> <link rel="stylesheet" crossorigin href="/assets/asset-ByGjGmTC.css"> <link rel="stylesheet" crossorigin href="/assets/asset-DT5rqr1n.css"> </head> <body> <noscript>You need to enable JavaScript to run this app.</noscript> <div id="root"></div> </body> </html>。

🤖 AI解决方案

错误翻译



原文:API returned completion of type str: ...
译文:API返回的completion类型为字符串:...

原因分析


根本原因:API调用返回的是HTML页面而非预期的JSON数据,这表明API端点可能配置错误或URL不正确,导致返回了网页界面而非API响应。

具体表现:预期接收JSON格式的API响应,但实际收到了HTML文档,这通常发生在:

  • 使用了错误的API端点URL

  • API服务端配置问题

  • 认证失败返回登录页面
  • 解决方案


    python

    检查并修正API调用代码


    import requests

    错误的调用方式示例(可能返回HTML)


    response = requests.get("https://dmxapi.com/") # 错误的端点

    正确的调用方式


    def call_api_correctly():
    headers = {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer your-api-key' # 确保使用正确的认证
    }

    # 使用正确的API端点(通常是/api/开头的路径)
    api_url = "https://dmxapi.com/api/v1/completions" # 示例正确端点

    data = {
    "model": "gpt-3.5-turbo",
    "messages": [{"role": "user", "content": "你的问题"}]
    }

    response = requests.post(api_url, json=data, headers=headers)

    # 添加响应类型检查
    if response.headers.get('Content-Type', '').startswith('text/html'):
    raise ValueError("API返回了HTML而非JSON,请检查端点URL配置")

    return response.json()

    调用修正后的函数


    try:
    result = call_api_correctly()
    print(result)
    except ValueError as e:
    print(f"配置错误: {e}")

    ️ 预防措施


  • URL验证:确保使用正确的API端点路径,通常以/api/开头,避免使用网站根路径

  • 响应检查:在API调用后立即检查Content-Type头部,确认返回的是application/json而非text/html
  • python

    预防性检查代码


    def safe_api_call(url, data):
    response = requests.post(url, json=data)
    content_type = response.headers.get('Content-Type', '')

    if 'text/html' in content_type:
    raise Exception(f"API配置错误:收到了HTML响应,请检查端点URL:{url}")

    return response.json()