错误信息: API 返回的 completion 类型错误:<class 'str'>: <!DOCTYPE html> <html lang="zh"> <h...
🚨 错误信息
错误信息: 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: <!DOCTYPE html>...
译文:API返回的completion类型为字符串:<!DOCTYPE html>...
原因分析
根本原因:API调用返回的是HTML页面而非预期的JSON数据,这表明API端点可能配置错误或URL不正确,导致返回了网页界面而非API响应。具体表现:预期接收JSON格式的API响应,但实际收到了HTML文档,这通常发生在:
- 使用了错误的API端点URL
- API服务端配置问题
- 认证失败返回登录页面
解决方案
# 检查并修正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}")
️ 预防措施
/api/开头,避免使用网站根路径application/json而非text/html# 预防性检查代码
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()