- 从服务器拉取完整代码 - 按框架规范整理项目结构 - 配置 Drone CI 测试环境部署 - 包含后端(FastAPI)、前端(Vue3)、管理端 技术栈: Vue3 + TypeScript + FastAPI + MySQL
257 lines
5.2 KiB
Markdown
257 lines
5.2 KiB
Markdown
# 资料34知识点清理完成报告
|
||
|
||
**操作时间**:2025-10-17
|
||
**操作类型**:物理删除
|
||
**资料ID**:34
|
||
**资料名称**:美拉美测试-小.pdf
|
||
|
||
---
|
||
|
||
## ✅ 操作结果
|
||
|
||
### 删除统计
|
||
- **删除记录数**:6条
|
||
- **剩余记录数**:0条
|
||
- **操作状态**:✅ 成功
|
||
|
||
### 数据验证
|
||
```sql
|
||
SELECT COUNT(*) FROM knowledge_points WHERE material_id = 34;
|
||
-- 结果:0
|
||
```
|
||
|
||
**确认**:资料34的所有知识点已从数据库中完全清除。
|
||
|
||
---
|
||
|
||
## 🔧 提供的SQL脚本
|
||
|
||
### 1. 快速删除脚本
|
||
文件:`/root/aiedu/清空资料知识点.sql`
|
||
|
||
**最简单用法**:
|
||
```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. 前端缓存(最可能)
|
||
**现象**:数据库已删除,但前端显示旧数据
|
||
|
||
**解决方法**:
|
||
```javascript
|
||
// 清除缓存并重新加载
|
||
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缓存
|
||
**验证方法**:
|
||
```bash
|
||
# 直接调用API查看返回
|
||
curl "https://aiedu.ireborn.com.cn/api/v1/courses/materials/34/knowledge-points" \
|
||
-H "Authorization: Bearer {token}"
|
||
```
|
||
|
||
### 排查步骤
|
||
|
||
1. **打开浏览器开发者工具(F12)**
|
||
2. **查看Network标签**
|
||
3. **刷新页面**
|
||
4. **找到知识点API请求**
|
||
5. **查看响应数据**
|
||
|
||
预期响应:
|
||
```json
|
||
{
|
||
"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执行节点**:
|
||
|
||
```yaml
|
||
节点名称: 清空旧知识点
|
||
节点类型: 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:
|
||
```yaml
|
||
节点名称: 清空旧知识点
|
||
节点类型: 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
|
||
```
|
||
|
||
### 验证命令
|
||
|
||
```sql
|
||
-- 检查资料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条记录(资料本身存在,只是没有知识点)
|
||
```
|
||
|
||
---
|
||
|
||
## 🔗 相关文件
|
||
|
||
1. **SQL脚本**:`/root/aiedu/清空资料知识点.sql`
|
||
2. **Dify集成指南**:`/root/aiedu/Dify工作流-知识点管理SQL.md`
|
||
3. **删除问题分析**:`/root/aiedu/知识点删除问题分析.md`
|
||
|
||
---
|
||
|
||
## 📝 后续操作
|
||
|
||
### 1. 清除前端缓存
|
||
访问课程编辑页面,强制刷新浏览器查看是否还显示87个知识点。
|
||
|
||
### 2. Dify重新生成
|
||
在Dify工作流中触发重新分析,生成新的知识点。
|
||
|
||
### 3. 验证新知识点
|
||
```sql
|
||
-- 查看新生成的知识点
|
||
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
|
||
```
|
||
|
||
**操作状态**:✅ 完成
|
||
|