function knowledgeIndexErrorAdvice(error) { const text = String(error || ''); if (/\b401\b|incorrect api key|invalid api key|unauthorized/i.test(text)) return '嵌入服务拒绝认证。请检查知识库嵌入配置的 API 密钥及服务地址,保存后重试。'; if (/\b403\b|forbidden/i.test(text)) return '嵌入服务拒绝访问。请检查账号权限及所选嵌入模型的访问权限。'; if (/\b429\b|rate limit|quota/i.test(text)) return '嵌入服务限制请求。请检查请求频率及账号可用额度,稍后重试。'; if (/timeout|deadline exceeded/i.test(text)) return '嵌入服务请求超时。请检查服务可用性、网络和代理配置后重试。'; if (/connection refused|no such host|network is unreachable/i.test(text)) return '无法连接嵌入服务。请检查服务地址、DNS、网络和代理配置。'; return '请根据上方错误检查嵌入模型和服务配置,修正后重试。'; } // 知识库管理相关功能 function _t(key, opts) { return typeof window.t === 'function' ? window.t(key, opts) : key; } // 返回「知识库未启用」提示区块的 HTML(使用 data-i18n 以便语言切换时自动更新) function getKnowledgeNotEnabledHTML() { return `
${escapeHtml(previewText)}
关键词 "${escapeHtml(searchTerm)}" 在所有数据中没有匹配结果
请尝试其他关键词,或使用分类筛选功能
${escapeHtml(log.conversationId)}
${escapeHtml(log.messageId)}
…
'; openAppModal(modal, { focus: false }); deferModalContent(() => { const timeAgo = getTimeAgo(log.createdAt); const fullTime = formatTime(log.createdAt); let itemsHtml = ''; if (retrievedItems.length > 0) { itemsHtml = retrievedItems.map((item, idx) => { // 提取内容预览 let preview = item.content || ''; preview = preview.replace(/^#+\s+/gm, ''); preview = preview.replace(/```[\s\S]*?```/g, ''); preview = preview.replace(/`[^`]+`/g, ''); preview = preview.replace(/\[([^\]]+)\]\([^\)]+\)/g, '$1'); preview = preview.replace(/\n+/g, ' ').replace(/\s+/g, ' ').trim(); const previewText = preview.length > 200 ? preview.substring(0, 200) + '...' : preview; return `${escapeHtml(log.conversationId)}
${escapeHtml(log.messageId)}