知识库功能快速测试指南
======================

## 前置条件

1. ✅ 后端服务已启动（端口 7861）
2. ✅ 数据库表已创建（运行 scripts/init_knowledge_base_table.sql）
3. ✅ 已有测试账号或可以注册新账号

## 快速启动步骤

### 1. 启动后端服务

```bash
# 在项目根目录
python app/core/main.py
```

确认看到类似输出：
```
INFO:     Started server process
INFO:     Uvicorn running on http://0.0.0.0:7861
```

### 2. 启动前端服务

```bash
# 在 web 目录
cd web
npm install  # 首次运行
npm run dev
```

确认看到类似输出：
```
VITE v5.x.x  ready in xxx ms

➜  Local:   http://localhost:5173/
➜  Network: use --host to expose
```

### 3. 访问应用

打开浏览器访问: http://localhost:5173

## 测试流程

### 步骤 1: 登录系统

**方式 A: 用户名密码登录**
1. 如果没有账号，点击"注册"
2. 填写信息：
   - 用户名: testuser
   - 邮箱: test@example.com
   - 手机: 13800138000
   - 密码: password123
3. 点击"注册"按钮

**方式 B: GitHub 登录**
1. 点击"使用 GitHub 登录"按钮
2. 授权后自动跳转回应用

### 步骤 2: 进入知识库管理

1. 登录成功后，默认在聊天页面
2. 在左侧边栏找到"知识库"按钮（带文件夹图标）
3. 点击进入知识库管理页面

### 步骤 3: 创建知识库

1. 点击左上角"新建知识库"按钮
2. 在弹出的模态框中填写：
   - 名称: "Python 编程"
   - 描述: "Python 学习资料和代码示例"
3. 点击"创建"按钮
4. 创建成功后，左侧列表会显示新建的知识库

### 步骤 4: 创建更多知识库

重复步骤 3，创建几个不同的知识库：
- "机器学习" - "机器学习算法和实践"
- "Web 开发" - "前端和后端开发资料"
- "数据分析" - "数据分析工具和方法"

### 步骤 5: 查看知识库详情

1. 在左侧列表点击任意知识库
2. 右侧显示详细信息：
   - 知识库名称
   - 描述
   - 创建时间
   - 更新时间
3. 观察界面布局和样式

### 步骤 6: 编辑知识库

1. 选中一个知识库
2. 点击右上角"编辑"按钮
3. 修改名称或描述：
   - 例如将"Python 编程"改为"Python 完整教程"
   - 修改描述为"从入门到精通的 Python 学习资料"
4. 点击"保存"
5. 观察界面实时更新

### 步骤 7: 测试名称重复

1. 点击"新建知识库"
2. 输入已存在的名称（如"Python 完整教程"）
3. 点击"创建"
4. 应该看到错误提示："知识库名称 'xxx' 已存在"

### 步骤 8: 删除知识库

1. 选中一个知识库
2. 点击右上角"删除"按钮
3. 在确认对话框点击"确定"
4. 知识库从列表中消失

### 步骤 9: 测试分页（可选）

如果知识库数量少于 20 个，可以：
1. 创建更多知识库（超过 20 个）
2. 观察左侧底部出现分页控件
3. 点击左右箭头切换页面

### 步骤 10: 测试导航

1. 点击左侧边栏的"对话"按钮
2. 返回聊天页面
3. 再次点击"知识库"按钮
4. 返回知识库管理页面
5. 观察数据是否保持

## 功能检查清单

- [ ] 用户登录成功
- [ ] 可以进入知识库管理页面
- [ ] 可以创建知识库
- [ ] 左侧列表正确显示知识库
- [ ] 点击知识库可以查看详情
- [ ] 可以编辑知识库
- [ ] 编辑后界面实时更新
- [ ] 重复名称会显示错误
- [ ] 可以删除知识库
- [ ] 删除后列表自动更新
- [ ] 分页功能正常（如果有多页）
- [ ] 可以在对话和知识库页面切换
- [ ] 退出登录功能正常

## 界面元素检查

### 左侧边栏
- [ ] 显示用户头像和信息
- [ ] "新建知识库"按钮可点击
- [ ] "对话"和"知识库"导航按钮
- [ ] 知识库列表显示正常
- [ ] 选中状态高亮显示
- [ ] 分页控件（如果需要）
- [ ] "退出登录"按钮

### 右侧主区域
- [ ] 头部显示"知识库管理"
- [ ] 未选择时显示提示信息
- [ ] 选择后显示知识库详情
- [ ] "编辑"和"删除"按钮可用
- [ ] 信息卡片样式美观

### 模态框
- [ ] 创建模态框正常弹出
- [ ] 编辑模态框正常弹出
- [ ] 表单验证工作正常
- [ ] 错误信息正确显示
- [ ] 可以关闭模态框

## 性能检查

- [ ] 页面加载速度快
- [ ] 操作响应及时
- [ ] 动画流畅
- [ ] 无明显卡顿
- [ ] 网络请求正常

## 浏览器控制台检查

打开浏览器开发者工具（F12），检查：

### Console 标签
- [ ] 无 JavaScript 错误
- [ ] 无警告信息（或仅有预期的警告）

### Network 标签
- [ ] API 请求成功（状态码 200）
- [ ] 请求响应时间合理
- [ ] 请求头包含正确的 Authorization

### Vue DevTools（如果安装）
- [ ] Pinia store 状态正确
- [ ] 组件层次结构正常
- [ ] 数据绑定工作正常

## 常见问题排查

### 问题 1: 页面空白
**检查**:
- 浏览器控制台是否有错误
- 后端服务是否运行
- 网络请求是否成功

**解决**:
```bash
# 重启前端服务
npm run dev

# 检查后端服务
curl http://localhost:7861/api/auth/me
```

### 问题 2: 无法创建知识库
**检查**:
- 是否已登录
- 后端 API 是否正常
- 数据库表是否创建

**解决**:
```bash
# 检查数据库表
psql -U postgres -d huoyan -c "\dt knowledge_base"

# 如果表不存在，创建表
psql -U postgres -d huoyan -f scripts/init_knowledge_base_table.sql
```

### 问题 3: 401 错误
**检查**:
- Token 是否过期
- 是否正确登录

**解决**:
- 退出登录后重新登录
- 检查 localStorage 中的 authToken

### 问题 4: 样式显示异常
**检查**:
- Bootstrap CSS 是否加载
- 网络连接是否正常

**解决**:
```bash
# 清除缓存重新安装
rm -rf node_modules package-lock.json
npm install
```

## 测试数据建议

创建以下测试知识库：

1. **技术文档**
   - 名称: "技术文档"
   - 描述: "各种技术文档和 API 参考"

2. **项目资料**
   - 名称: "项目资料"
   - 描述: "项目相关的文档和资料"

3. **学习笔记**
   - 名称: "学习笔记"
   - 描述: "个人学习笔记和总结"

4. **代码示例**
   - 名称: "代码示例"
   - 描述: "各种编程语言的代码示例"

## 截图建议

测试时建议截图保存以下界面：
1. 知识库列表页面
2. 知识库详情页面
3. 创建知识库模态框
4. 编辑知识库模态框
5. 空状态提示
6. 错误提示

## 测试完成

如果所有检查项都通过，说明知识库功能已正常工作！

## 下一步

1. 测试更多边界情况
2. 测试并发操作
3. 测试网络异常情况
4. 准备添加文件上传功能

## 反馈

如果发现任何问题，请记录：
- 问题描述
- 复现步骤
- 错误信息
- 浏览器和版本
- 截图（如果可能）

祝测试顺利！🎉

