API 返回的 completion 类型错误:<class 'str'>: <!DOCTYPE html> <html lang="zh"> <head> <...
错误信息
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-gpW4OKC7.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-DnR-Nqyv.js"> <link rel="modulepreload" crossorigin href="/assets/chunk-DyojDNx7.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 解决方案
报错分析
1.错误翻译
原文:API 返回的 completion 类型错误:<class 'str'>
译文:API返回的completion类型错误:类型为字符串(<class 'str'>)
2.原因分析
Content-Type错误或请求参数/路径错误,导致服务器返回HTML而非目标completion数据。3. 解决方案
import requests
def get_valid_completion(api_url, payload, headers):
response = requests.post(api_url, json=payload, headers=headers)
# 校验响应类型(核心修复)
if "text/html" in response.headers.get("Content-Type", ""):
raise ValueError(f"API返回HTML而非数据:{response.text[:200]}...")
return response.json() # 正常解析JSON
# 使用示例(替换为真实参数)
api_url = "https://dmxapi.cn/v1/chat/completions" # 正确端点
payload = {"model": "gpt-3.5-turbo", "messages": [{"role": "user", "content": "你好"}]}
headers = {"Authorization": "Bearer YOUR_KEY", "Content-Type": "application/json"}
try:
result = get_valid_completion(api_url, payload, headers)
except ValueError as e:
print(f"错误:{e}")
4. 预防措施
Content-Type(如application/json),非预期类型立即抛错。 ---
注:若仍报错,需检查API密钥有效性、模型名称是否正确,或联系DMXAPI支持确认服务状态。