retryable=true
错误信息
ZCode 报错信息
报错摘要
Cannot connect to API: getaddrinfo ENOTFOUND api.deepseek.com
TraceID: 00680f76-a288-4cc7-9edd-0340d61429a0
报错详情
Turn execution failed
provider=deepseek provider_code=ENOTFOUND model=deepseek-flash request=f896321c-11eb-4438-8522-b3a74a1efb42 reason=network_error retryable=true
AI 解决方案
🔍 报错分析
1. 🌐 错误翻译
原文:Cannot connect to API: getaddrinfo ENOTFOUND api.deepseek.com
译文:无法连接到API:getaddrinfo ENOTFOUND(域名不存在)api.deepseek.com
2. 🎯 原因分析
api.deepseek.com 对应的IP地址3. 💡 解决方案
// 1. 检查API端点配置
const API_CONFIG = {
// 确认使用的是正确的API域名
baseURL: 'https://api.deepseek.com', // 检查域名是否正确
// 如果官方域名不可用,尝试备用域名或确认服务可用性
timeout: 30000,
retryCount: 3
};
// 2. 添加DNS解析检查
async function testApiConnection() {
try {
// 先检查域名是否可解析
const resolved = await dns.promises.resolve(API_CONFIG.baseURL.replace('https://', ''));
if (!resolved.length) {
console.error('域名解析失败,请检查网络或域名配置');
return;
}
// 测试API连通性
const response = await fetch(`${API_CONFIG.baseURL}/v1/models`);
console.log('API连接成功:', response.ok);
} catch (error) {
if (error.code === 'ENOTFOUND') {
console.error('网络配置错误,请检查DNS设置或代理配置');
} else {
console.error('连接失败:', error.message);
}
}
}
4. 🛡️ 预防措施
1. 在代码中添加API连接的前置检查,确保域名可解析后再发起请求
2. 使用环境变量管理API端点,便于在不同环境下快速切换配置
- 使用
nslookup 或 dig 命令手动验证域名解析是否正常- 配置请求重试机制,并记录详细的错误日志便于后续排查