mirror of
https://github.com/Ed1s0nZ/CyberStrikeAI.git
synced 2026-05-23 16:09:44 +02:00
Add files via upload
This commit is contained in:
+1017
-4
File diff suppressed because it is too large
Load Diff
@@ -908,6 +908,13 @@ function renderProcessDetails(messageId, processDetails) {
|
||||
const success = data.success !== false;
|
||||
const statusIcon = success ? '✅' : '❌';
|
||||
itemTitle = `${statusIcon} 工具 ${escapeHtml(toolName)} 执行${success ? '完成' : '失败'}`;
|
||||
|
||||
// 如果是知识检索工具,添加特殊标记
|
||||
if (toolName === 'search_knowledge_base' && success) {
|
||||
itemTitle = `📚 ${itemTitle} - 知识检索`;
|
||||
}
|
||||
} else if (eventType === 'knowledge_retrieval') {
|
||||
itemTitle = '📚 知识检索';
|
||||
} else if (eventType === 'error') {
|
||||
itemTitle = '❌ 错误';
|
||||
} else if (eventType === 'cancelled') {
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+15
-2
@@ -8,7 +8,7 @@ function initRouter() {
|
||||
|
||||
// 从URL hash读取页面(如果有)
|
||||
const hash = window.location.hash.slice(1);
|
||||
if (hash && ['chat', 'mcp-monitor', 'mcp-management', 'settings'].includes(hash)) {
|
||||
if (hash && ['chat', 'mcp-monitor', 'mcp-management', 'knowledge-management', 'knowledge-retrieval-logs', 'settings'].includes(hash)) {
|
||||
switchPage(hash);
|
||||
}
|
||||
}
|
||||
@@ -58,6 +58,19 @@ function updateNavState(pageId) {
|
||||
mcpItem.classList.add('expanded');
|
||||
}
|
||||
|
||||
const submenuItem = document.querySelector(`.nav-submenu-item[data-page="${pageId}"]`);
|
||||
if (submenuItem) {
|
||||
submenuItem.classList.add('active');
|
||||
}
|
||||
} else if (pageId === 'knowledge-management' || pageId === 'knowledge-retrieval-logs') {
|
||||
// 知识子菜单项
|
||||
const knowledgeItem = document.querySelector('.nav-item[data-page="knowledge"]');
|
||||
if (knowledgeItem) {
|
||||
knowledgeItem.classList.add('active');
|
||||
// 展开知识子菜单
|
||||
knowledgeItem.classList.add('expanded');
|
||||
}
|
||||
|
||||
const submenuItem = document.querySelector(`.nav-submenu-item[data-page="${pageId}"]`);
|
||||
if (submenuItem) {
|
||||
submenuItem.classList.add('active');
|
||||
@@ -202,7 +215,7 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||
// 监听hash变化
|
||||
window.addEventListener('hashchange', function() {
|
||||
const hash = window.location.hash.slice(1);
|
||||
if (hash && ['chat', 'mcp-monitor', 'mcp-management', 'settings'].includes(hash)) {
|
||||
if (hash && ['chat', 'mcp-monitor', 'mcp-management', 'knowledge-management', 'knowledge-retrieval-logs', 'settings'].includes(hash)) {
|
||||
switchPage(hash);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -96,6 +96,60 @@ async function loadConfig(loadTools = true) {
|
||||
// 填充Agent配置
|
||||
document.getElementById('agent-max-iterations').value = currentConfig.agent.max_iterations || 30;
|
||||
|
||||
// 填充知识库配置
|
||||
const knowledgeEnabledCheckbox = document.getElementById('knowledge-enabled');
|
||||
if (knowledgeEnabledCheckbox) {
|
||||
knowledgeEnabledCheckbox.checked = currentConfig.knowledge?.enabled !== false;
|
||||
}
|
||||
|
||||
// 填充知识库详细配置
|
||||
if (currentConfig.knowledge) {
|
||||
const knowledge = currentConfig.knowledge;
|
||||
|
||||
// 基本配置
|
||||
const basePathInput = document.getElementById('knowledge-base-path');
|
||||
if (basePathInput) {
|
||||
basePathInput.value = knowledge.base_path || 'knowledge_base';
|
||||
}
|
||||
|
||||
// 嵌入模型配置
|
||||
const embeddingProviderSelect = document.getElementById('knowledge-embedding-provider');
|
||||
if (embeddingProviderSelect) {
|
||||
embeddingProviderSelect.value = knowledge.embedding?.provider || 'openai';
|
||||
}
|
||||
|
||||
const embeddingModelInput = document.getElementById('knowledge-embedding-model');
|
||||
if (embeddingModelInput) {
|
||||
embeddingModelInput.value = knowledge.embedding?.model || '';
|
||||
}
|
||||
|
||||
const embeddingBaseUrlInput = document.getElementById('knowledge-embedding-base-url');
|
||||
if (embeddingBaseUrlInput) {
|
||||
embeddingBaseUrlInput.value = knowledge.embedding?.base_url || '';
|
||||
}
|
||||
|
||||
const embeddingApiKeyInput = document.getElementById('knowledge-embedding-api-key');
|
||||
if (embeddingApiKeyInput) {
|
||||
embeddingApiKeyInput.value = knowledge.embedding?.api_key || '';
|
||||
}
|
||||
|
||||
// 检索配置
|
||||
const retrievalTopKInput = document.getElementById('knowledge-retrieval-top-k');
|
||||
if (retrievalTopKInput) {
|
||||
retrievalTopKInput.value = knowledge.retrieval?.top_k || 5;
|
||||
}
|
||||
|
||||
const retrievalThresholdInput = document.getElementById('knowledge-retrieval-similarity-threshold');
|
||||
if (retrievalThresholdInput) {
|
||||
retrievalThresholdInput.value = knowledge.retrieval?.similarity_threshold || 0.7;
|
||||
}
|
||||
|
||||
const retrievalWeightInput = document.getElementById('knowledge-retrieval-hybrid-weight');
|
||||
if (retrievalWeightInput) {
|
||||
retrievalWeightInput.value = knowledge.retrieval?.hybrid_weight || 0.7;
|
||||
}
|
||||
}
|
||||
|
||||
// 只有在需要时才加载工具列表(MCP管理页面需要,系统设置页面不需要)
|
||||
if (loadTools) {
|
||||
// 设置每页显示数量(会在分页控件渲染时设置)
|
||||
@@ -538,6 +592,26 @@ async function applySettings() {
|
||||
}
|
||||
|
||||
// 收集配置
|
||||
const knowledgeEnabledCheckbox = document.getElementById('knowledge-enabled');
|
||||
const knowledgeEnabled = knowledgeEnabledCheckbox ? knowledgeEnabledCheckbox.checked : true;
|
||||
|
||||
// 收集知识库配置
|
||||
const knowledgeConfig = {
|
||||
enabled: knowledgeEnabled,
|
||||
base_path: document.getElementById('knowledge-base-path')?.value.trim() || 'knowledge_base',
|
||||
embedding: {
|
||||
provider: document.getElementById('knowledge-embedding-provider')?.value || 'openai',
|
||||
model: document.getElementById('knowledge-embedding-model')?.value.trim() || '',
|
||||
base_url: document.getElementById('knowledge-embedding-base-url')?.value.trim() || '',
|
||||
api_key: document.getElementById('knowledge-embedding-api-key')?.value.trim() || ''
|
||||
},
|
||||
retrieval: {
|
||||
top_k: parseInt(document.getElementById('knowledge-retrieval-top-k')?.value) || 5,
|
||||
similarity_threshold: parseFloat(document.getElementById('knowledge-retrieval-similarity-threshold')?.value) || 0.7,
|
||||
hybrid_weight: parseFloat(document.getElementById('knowledge-retrieval-hybrid-weight')?.value) || 0.7
|
||||
}
|
||||
};
|
||||
|
||||
const config = {
|
||||
openai: {
|
||||
api_key: apiKey,
|
||||
@@ -547,6 +621,7 @@ async function applySettings() {
|
||||
agent: {
|
||||
max_iterations: parseInt(document.getElementById('agent-max-iterations').value) || 30
|
||||
},
|
||||
knowledge: knowledgeConfig,
|
||||
tools: []
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user