← 首页 👤 个人中心
加载中...
加载中...

✨ 基于图谱创作

运用知识图谱中的概念和技法,AI 为你生成内容
加载中...
勾选后将融合多个图谱的知识进行创作

🤖 导出为 AI Skill

把知识图谱封装成可直接使用的 AI Skill

🔄 重新拆解

基于之前的拆解文本或新文本,重新生成知识图谱
滚轮缩放 · 拖拽移动 · 点击节点查看详情

节点详情

💬
// === RAG AI 助教 === function toggleRagChat() { var chat = document.getElementById('rag-chat'); if (!chat) return; chat.style.display = chat.style.display === 'none' ? 'flex' : 'none'; if (chat.style.display === 'flex') checkRagIndex(); } function checkRagIndex() { fetch('/api/rag/status/' + graphId).then(function(r){return r.json();}).then(function(data) { var btn = document.getElementById('rag-index-btn'); if (data.ready) { btn.textContent = '✅ 已索引 ' + data.indexed + '/' + data.total; btn.style.color = '#34d399'; } else { btn.textContent = '⚡ 建立索引'; btn.style.color = '#fbbf24'; } }).catch(function(){}); } function buildIndex() { var btn = document.getElementById('rag-index-btn'); btn.textContent = '索引中...'; btn.disabled = true; var token = localStorage.getItem('yaoskills_token'); fetch('/api/rag/embed/' + graphId, { method: 'POST', headers: { 'Authorization': 'Bearer ' + token } }).then(function(r){return r.json();}).then(function(data) { if (data.success) { showToast(data.message, 'success'); btn.textContent = '✅ 已索引 ' + data.count + '/' + data.count; btn.style.color = '#34d399'; } else { showToast(data.error || '索引失败', 'error'); btn.textContent = '⚡ 建立索引'; } btn.disabled = false; }).catch(function(e) { showToast('网络错误', 'error'); btn.disabled = false; btn.textContent = '⚡ 建立索引'; }); } function askRAG() { var input = document.getElementById('rag-input'); var q = input.value.trim(); if (!q) return; input.value = ''; var msgs = document.getElementById('rag-messages'); msgs.innerHTML += '
' + ragEscapeHtml(q) + '
'; var loadId = 'rag-load-' + Date.now(); msgs.innerHTML += '
思考中...
'; msgs.scrollTop = msgs.scrollHeight; var token = localStorage.getItem('yaoskills_token'); var headers = { 'Content-Type': 'application/json' }; if (token) headers['Authorization'] = 'Bearer ' + token; fetch('/api/rag/ask/' + graphId, { method: 'POST', headers: headers, body: JSON.stringify({ question: q }) }).then(function(r){return r.json();}).then(function(data) { var el = document.getElementById(loadId); if (!el) return; if (data.success) { var sourceHtml = ''; if (data.sources && data.sources.length > 0) { sourceHtml = '
📚 引用: ' + data.sources.slice(0, 3).map(function(s){ return '' + ragEscapeHtml(s.content.split('\n')[0]) + ' (' + s.score + '%)'; }).join(' ') + '
'; } el.outerHTML = '
' + ragEscapeHtml(data.answer) + sourceHtml + '
'; } else { el.outerHTML = '
❌ ' + ragEscapeHtml(data.error || '回答失败') + '
'; } msgs.scrollTop = msgs.scrollHeight; }).catch(function(e) { var el = document.getElementById(loadId); if (el) el.outerHTML = '
❌ 网络错误
'; }); } function ragEscapeHtml(text) { var div = document.createElement('div'); div.textContent = text; return div.innerHTML; }