- 从服务器拉取完整代码 - 按框架规范整理项目结构 - 配置 Drone CI 测试环境部署 - 包含后端(FastAPI)、前端(Vue3)、管理端 技术栈: Vue3 + TypeScript + FastAPI + MySQL
5.2 KiB
5.2 KiB
资料34知识点清理完成报告
操作时间:2025-10-17
操作类型:物理删除
资料ID:34
资料名称:美拉美测试-小.pdf
✅ 操作结果
删除统计
- 删除记录数:6条
- 剩余记录数:0条
- 操作状态:✅ 成功
数据验证
SELECT COUNT(*) FROM knowledge_points WHERE material_id = 34;
-- 结果:0
确认:资料34的所有知识点已从数据库中完全清除。
🔧 提供的SQL脚本
1. 快速删除脚本
文件:/root/aiedu/清空资料知识点.sql
最简单用法:
DELETE FROM knowledge_points WHERE material_id = 34;
2. Dify工作流集成指南
文件:/root/aiedu/Dify工作流-知识点管理SQL.md
包含:
- ✅ 多种删除方式(单个、批量、条件删除)
- ✅ Dify工作流集成方案(SQL节点、HTTP请求、Python代码)
- ✅ 完整的工作流示例
- ✅ 错误处理和监控
- ✅ 常见问题解答
⚠️ 前端显示87个知识点的问题
当前数据库状态
资料ID: 34
知识点数量: 0
资料状态: 正常(未删除)
可能原因
1. 前端缓存(最可能)
现象:数据库已删除,但前端显示旧数据
解决方法:
// 清除缓存并重新加载
localStorage.clear()
sessionStorage.clear()
location.reload(true) // 强制刷新
// 或在代码中强制刷新
await loadMaterialKnowledgePoints(materialId, { forceRefresh: true })
2. 浏览器缓存
解决方法:
- 按
Ctrl + Shift + R(Windows)或Cmd + Shift + R(Mac)强制刷新 - 或打开浏览器开发者工具,勾选"Disable cache"后刷新
3. 查看的不是资料34
验证方法:
- 检查URL中的资料ID是否为34
- 查看页面标题或面包屑导航
4. API缓存
验证方法:
# 直接调用API查看返回
curl "https://aiedu.ireborn.com.cn/api/v1/courses/materials/34/knowledge-points" \
-H "Authorization: Bearer {token}"
排查步骤
- 打开浏览器开发者工具(F12)
- 查看Network标签
- 刷新页面
- 找到知识点API请求
- 查看响应数据
预期响应:
{
"code": 200,
"data": [], // ← 应该是空数组
"message": "获取知识点列表成功"
}
如果响应是87个知识点,说明:
- API缓存
- 或查询了错误的资料ID
🎯 Dify工作流使用指南
推荐流程
1. 清空旧知识点
↓
SQL: DELETE FROM knowledge_points WHERE material_id = {{material_id}};
2. Dify AI分析
↓
调用Dify工作流分析文档
3. 保存新知识点
↓
POST /api/v1/courses/{course_id}/knowledge-points/batch
SQL节点配置
Dify工作流中的SQL执行节点:
节点名称: 清空旧知识点
节点类型: Code
语言: Python
代码:
import pymysql
material_id = {{material_id}}
conn = pymysql.connect(
host='120.79.247.16',
port=3307,
user='root',
password='nj861021',
database='kaopeilian',
charset='utf8mb4'
)
cursor = conn.cursor()
cursor.execute("DELETE FROM knowledge_points WHERE material_id = %s", (material_id,))
deleted_count = cursor.rowcount
conn.commit()
conn.close()
return {
"success": True,
"deleted_count": deleted_count,
"message": f"已清空资料 {material_id} 的 {deleted_count} 个旧知识点"
}
或使用HTTP Request节点
如果后端提供了批量删除API:
节点名称: 清空旧知识点
节点类型: HTTP Request
URL: /api/v1/courses/materials/{{material_id}}/knowledge-points/batch
方法: DELETE
Headers:
Authorization: Bearer {{api_token}}
📊 数据库当前状态
课程1的资料统计
资料ID: 34
资料名称: 美拉美测试-小.pdf
知识点数量: 0
创建时间: 2025-10-17 07:19:36
验证命令
-- 检查资料34的知识点
SELECT COUNT(*) as count FROM knowledge_points WHERE material_id = 34;
-- 结果:0
-- 检查资料信息
SELECT id, name, course_id, file_type
FROM course_materials
WHERE id = 34 AND is_deleted = 0;
-- 结果:1条记录(资料本身存在,只是没有知识点)
🔗 相关文件
- SQL脚本:
/root/aiedu/清空资料知识点.sql - Dify集成指南:
/root/aiedu/Dify工作流-知识点管理SQL.md - 删除问题分析:
/root/aiedu/知识点删除问题分析.md
📝 后续操作
1. 清除前端缓存
访问课程编辑页面,强制刷新浏览器查看是否还显示87个知识点。
2. Dify重新生成
在Dify工作流中触发重新分析,生成新的知识点。
3. 验证新知识点
-- 查看新生成的知识点
SELECT id, name, type, source, created_at
FROM knowledge_points
WHERE material_id = 34
ORDER BY id DESC;
✅ 操作总结
- ✅ 已成功删除资料34的所有旧知识点(6条)
- ✅ 数据库验证:剩余0条
- ✅ 提供了可复用的SQL脚本
- ✅ 提供了Dify工作流集成方案
- ⏳ 待解决:前端显示87个知识点的问题(可能是缓存)
数据库连接信息:
主机: 120.79.247.16
端口: 3307
数据库: kaopeilian
用户: root
密码: nj861021
操作状态:✅ 完成