feat:知识库卡片渲染统计信息。

This commit is contained in:
lxfight
2025-10-19 22:40:01 +08:00
parent b240594859
commit 333bf56ddc
2 changed files with 31 additions and 7 deletions
+21 -3
View File
@@ -230,11 +230,13 @@ class KnowledgeBaseRoute(Route):
Query 参数:
- page: 页码 (默认 1)
- page_size: 每页数量 (默认 20)
- refresh_stats: 是否刷新统计信息 (默认 false,首次加载时可设为 true)
"""
try:
kb_manager = self._get_kb_manager()
page = request.args.get("page", 1, type=int)
page_size = request.args.get("page_size", 20, type=int)
refresh_stats = request.args.get("refresh_stats", "false").lower() == "true"
# 转换为 offset 和 limit
offset = (page - 1) * page_size
@@ -242,6 +244,16 @@ class KnowledgeBaseRoute(Route):
kbs = await kb_manager.list_kbs(offset=offset, limit=limit)
# 如果需要刷新统计信息
if refresh_stats:
for kb in kbs:
try:
await kb_manager._update_kb_stats(kb.kb_id)
except Exception as e:
logger.warning(f"刷新知识库 {kb.kb_id} 统计信息失败: {e}")
# 刷新后重新查询以获取最新数据
kbs = await kb_manager.list_kbs(offset=offset, limit=limit)
# 转换为字典列表
kb_list = []
for kb in kbs:
@@ -260,7 +272,9 @@ class KnowledgeBaseRoute(Route):
"top_k_dense": kb.top_k_dense or 50,
"top_k_sparse": kb.top_k_sparse or 50,
"top_m_final": kb.top_m_final or 5,
"enable_rerank": kb.enable_rerank if kb.enable_rerank is not None else True,
"enable_rerank": kb.enable_rerank
if kb.enable_rerank is not None
else True,
"created_at": kb.created_at.isoformat(),
"updated_at": kb.updated_at.isoformat(),
}
@@ -354,7 +368,9 @@ class KnowledgeBaseRoute(Route):
"top_k_dense": kb.top_k_dense or 50,
"top_k_sparse": kb.top_k_sparse or 50,
"top_m_final": kb.top_m_final or 5,
"enable_rerank": kb.enable_rerank if kb.enable_rerank is not None else True,
"enable_rerank": kb.enable_rerank
if kb.enable_rerank is not None
else True,
"created_at": kb.created_at.isoformat(),
"updated_at": kb.updated_at.isoformat(),
}
@@ -506,7 +522,9 @@ class KnowledgeBaseRoute(Route):
"top_k_dense": kb.top_k_dense or 50,
"top_k_sparse": kb.top_k_sparse or 50,
"top_m_final": kb.top_m_final or 5,
"enable_rerank": kb.enable_rerank if kb.enable_rerank is not None else True,
"enable_rerank": kb.enable_rerank
if kb.enable_rerank is not None
else True,
"created_at": kb.created_at.isoformat(),
"updated_at": kb.updated_at.isoformat(),
}
+10 -4
View File
@@ -337,10 +337,15 @@ const emojiCategories = [
]
// 加载知识库列表
const loadKnowledgeBases = async () => {
const loadKnowledgeBases = async (refreshStats = false) => {
loading.value = true
try {
const response = await axios.get('/api/kb/list')
const params: any = {}
if (refreshStats) {
params.refresh_stats = 'true'
}
const response = await axios.get('/api/kb/list', { params })
if (response.data.status === 'ok') {
kbList.value = response.data.data.items || []
} else {
@@ -500,7 +505,7 @@ const showSnackbar = (text: string, color: string = 'success') => {
}
onMounted(() => {
loadKnowledgeBases()
loadKnowledgeBases(true) // 首次加载时刷新统计信息
loadProviders()
})
</script>
@@ -595,7 +600,8 @@ onMounted(() => {
align-items: center;
gap: 6px;
font-size: 0.875rem;
color: rgb(var(--v-theme-on-surface-variant));
color: rgb(var(--v-theme-on-surface));
font-weight: 500;
}
.kb-actions {