chore: sync knowledge base updates - agent projects, docs reorg, daily cleanup
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2
.obsidian/app.json
vendored
2
.obsidian/app.json
vendored
@@ -1,3 +1,3 @@
|
||||
{
|
||||
"attachmentFolderPath": "docs/assets/images"
|
||||
}
|
||||
}
|
||||
@@ -1,168 +0,0 @@
|
||||
# 2024-06-01
|
||||
|
||||
## 基本信息
|
||||
- **日期**: 2024-06-01
|
||||
- **星期**: 星期六
|
||||
- **天气**: 晴
|
||||
- **心情**: 良好
|
||||
|
||||
## 今日计划
|
||||
|
||||
### 工作安排
|
||||
- [x] 完成系统服务定制开发
|
||||
- [x] 代码审查
|
||||
- [ ] 性能测试
|
||||
|
||||
### 学习计划
|
||||
- [x] 阅读Activity启动流程源码
|
||||
- [ ] 学习Binder机制
|
||||
|
||||
### 其他计划
|
||||
- [x] 整理项目文档
|
||||
|
||||
## 工作记录
|
||||
|
||||
### 已完成
|
||||
- ✅ 完成系统服务定制开发
|
||||
- 时间: 09:00 - 12:00
|
||||
- 内容: 完成了PackageManagerService的定制开发,增加了应用管理功能
|
||||
- 收获: 深入理解了PackageManagerService的工作机制
|
||||
|
||||
- ✅ 代码审查
|
||||
- 时间: 14:00 - 16:00
|
||||
- 内容: 审查了团队成员的代码,提出了改进建议
|
||||
- 收获: 通过代码审查学习到了不同的实现思路
|
||||
|
||||
- ✅ 阅读Activity启动流程源码
|
||||
- 时间: 16:00 - 18:00
|
||||
- 内容: 阅读了Activity启动流程的源码,理解了跨进程启动机制
|
||||
- 收获: 理解了Activity启动的完整流程,包括AMS、ApplicationThread等关键组件
|
||||
- 相关链接: [[02-Activity管理/Activity启动流程(跨进程)]]
|
||||
|
||||
### 进行中
|
||||
- 🔄 性能测试
|
||||
- 开始时间: 18:00
|
||||
- 当前进度: 已完成启动时间测试,正在进行内存测试
|
||||
- 遇到的问题: 内存测试数据异常,需要进一步分析
|
||||
- 下一步计划: 分析内存测试数据,找出问题原因
|
||||
|
||||
### 待处理
|
||||
- ⏳ 学习Binder机制
|
||||
- 计划时间: 明天
|
||||
- 优先级: 中
|
||||
|
||||
## 学习记录
|
||||
|
||||
### 技术学习
|
||||
- **学习内容**: Activity启动流程源码分析
|
||||
- **学习时间**: 16:00 - 18:00
|
||||
- **学习方式**: 阅读源码
|
||||
- **关键收获**:
|
||||
1. Activity启动是跨进程的,应用进程通过Binder与AMS通信
|
||||
2. 如果目标进程不存在,AMS会先创建进程,再启动Activity
|
||||
3. Activity的生命周期由AMS统一管理,通过ApplicationThread回调
|
||||
- **相关链接**: [[02-Activity管理/Activity启动流程(跨进程)]]
|
||||
|
||||
### 源码阅读
|
||||
- **阅读模块**: ActivityManagerService
|
||||
- **阅读时间**: 16:00 - 18:00
|
||||
- **关键理解**:
|
||||
- AMS负责Activity的启动、生命周期管理
|
||||
- 通过Binder与应用进程通信
|
||||
- 管理Activity栈(Task、Stack)
|
||||
- **疑问**:
|
||||
- Activity栈的管理策略是什么?
|
||||
- 如何优化Activity启动性能?
|
||||
- **相关链接**: [[02-Activity管理/Activity栈管理(Task&Stack)]]
|
||||
|
||||
### 问题解决
|
||||
- **问题描述**: 系统服务定制后,某些应用无法正常启动
|
||||
- **解决过程**:
|
||||
1. 查看日志,发现权限检查失败
|
||||
2. 分析代码,发现权限检查逻辑有问题
|
||||
3. 修复权限检查逻辑
|
||||
- **解决方案**: 修复了PackageManagerService中的权限检查逻辑
|
||||
- **经验总结**: 系统服务定制需要特别注意权限管理,不能影响应用的正常使用
|
||||
- **相关链接**: [[项目A-系统定制化/关键问题记录]]
|
||||
|
||||
## 会议记录
|
||||
|
||||
### 项目进度会议
|
||||
- **时间**: 10:00 - 11:00
|
||||
- **主题**: 项目A进度讨论
|
||||
- **参与人**: 项目团队
|
||||
- **关键内容**:
|
||||
- 讨论了项目进度
|
||||
- 确定了下一步工作计划
|
||||
- 分配了任务
|
||||
- **行动项**:
|
||||
- [ ] 完成性能测试
|
||||
- [ ] 修复发现的问题
|
||||
- **相关链接**: [[项目A-系统定制化/README]]
|
||||
|
||||
## 思考与总结
|
||||
|
||||
### 今日收获
|
||||
1. **技术收获**: 深入理解了Activity启动流程,对Android系统架构有了更清晰的认识
|
||||
2. **工作收获**: 完成了系统服务定制开发,积累了系统定制经验
|
||||
3. **学习收获**: 通过源码阅读,提升了代码理解能力
|
||||
|
||||
### 今日反思
|
||||
- **做得好的地方**:
|
||||
- 按时完成了开发任务
|
||||
- 通过源码阅读加深了理解
|
||||
- 及时解决了遇到的问题
|
||||
|
||||
- **需要改进的地方**:
|
||||
- 性能测试进度较慢,需要加快
|
||||
- 学习计划执行不够充分
|
||||
|
||||
- **改进计划**:
|
||||
- 明天重点完成性能测试
|
||||
- 安排时间学习Binder机制
|
||||
|
||||
### 明日计划
|
||||
1. 完成性能测试,分析测试结果
|
||||
2. 修复发现的问题
|
||||
3. 学习Binder机制,阅读相关源码
|
||||
|
||||
## 技术笔记
|
||||
|
||||
### Activity启动流程
|
||||
- **内容**: Activity启动是跨进程的,涉及多个组件协作
|
||||
- **关键理解**:
|
||||
- 应用进程通过Binder与AMS通信
|
||||
- AMS负责Activity的启动和生命周期管理
|
||||
- ApplicationThread作为Binder服务端,接收AMS的调用
|
||||
- **相关链接**: [[02-Activity管理/Activity启动流程(跨进程)]]
|
||||
|
||||
### 系统服务定制
|
||||
- **内容**: 定制PackageManagerService,增加应用管理功能
|
||||
- **关键理解**:
|
||||
- 系统服务定制需要深入理解源码
|
||||
- 需要注意权限管理,不能影响应用正常使用
|
||||
- 充分的测试很重要
|
||||
- **相关链接**: [[项目A-系统定制化/技术方案设计]]
|
||||
|
||||
## 问题与疑问
|
||||
|
||||
### 问题1: Activity栈管理策略
|
||||
- **问题描述**: Activity栈的管理策略是什么?如何优化?
|
||||
- **思考**: 需要阅读Activity栈管理相关源码
|
||||
- **待解决**: 明天阅读相关源码
|
||||
|
||||
### 问题2: 性能测试数据异常
|
||||
- **问题描述**: 内存测试数据异常,需要进一步分析
|
||||
- **思考**: 可能是测试方法有问题,或者系统确实存在内存问题
|
||||
- **待解决**: 明天分析测试数据,找出问题原因
|
||||
|
||||
## 相关链接
|
||||
|
||||
- [[项目A-系统定制化/README]]
|
||||
- [[02-Activity管理/Activity启动流程(跨进程)]]
|
||||
- [[05-进程与线程通信/Binder机制(内核到Java层)]]
|
||||
|
||||
## 备注
|
||||
|
||||
- 今天工作状态良好,完成了主要任务
|
||||
- 需要加快性能测试进度
|
||||
@@ -1,202 +0,0 @@
|
||||
# 2024-06-02
|
||||
|
||||
## 基本信息
|
||||
- **日期**: 2024-06-02
|
||||
- **星期**: 星期日
|
||||
- **天气**: 多云
|
||||
- **心情**: 良好
|
||||
|
||||
## 今日计划
|
||||
|
||||
### 工作安排
|
||||
- [x] 完成性能测试
|
||||
- [x] 分析测试结果
|
||||
- [x] 修复发现的问题
|
||||
|
||||
### 学习计划
|
||||
- [x] 学习Binder机制
|
||||
- [ ] 阅读Handler源码
|
||||
|
||||
### 其他计划
|
||||
- [x] 整理技术笔记
|
||||
|
||||
## 工作记录
|
||||
|
||||
### 已完成
|
||||
- ✅ 完成性能测试
|
||||
- 时间: 09:00 - 11:00
|
||||
- 内容: 完成了系统启动性能测试、内存性能测试、流畅度测试
|
||||
- 收获: 掌握了性能测试方法,了解了系统性能现状
|
||||
|
||||
- ✅ 分析测试结果
|
||||
- 时间: 11:00 - 13:00
|
||||
- 内容: 分析了性能测试数据,发现了几个性能瓶颈
|
||||
- 收获: 学会了使用Systrace分析性能问题
|
||||
- 相关链接: [[09-调试与工具链/Systrace_Perfetto全解读]]
|
||||
|
||||
- ✅ 修复发现的问题
|
||||
- 时间: 14:00 - 17:00
|
||||
- 内容: 修复了内存泄漏问题,优化了启动流程
|
||||
- 收获: 提升了问题排查和解决能力
|
||||
|
||||
- ✅ 学习Binder机制
|
||||
- 时间: 17:00 - 19:00
|
||||
- 内容: 学习了Binder机制的原理和实现
|
||||
- 收获: 深入理解了Android进程间通信机制
|
||||
- 相关链接: [[05-进程与线程通信/Binder机制(内核到Java层)]]
|
||||
|
||||
### 进行中
|
||||
- 🔄 阅读Handler源码
|
||||
- 开始时间: 19:00
|
||||
- 当前进度: 刚开始阅读
|
||||
- 遇到的问题: 源码较复杂,需要更多时间理解
|
||||
- 下一步计划: 明天继续阅读,整理笔记
|
||||
|
||||
### 待处理
|
||||
- ⏳ 整理技术笔记
|
||||
- 计划时间: 明天
|
||||
- 优先级: 低
|
||||
|
||||
## 学习记录
|
||||
|
||||
### 技术学习
|
||||
- **学习内容**: Binder机制原理和实现
|
||||
- **学习时间**: 17:00 - 19:00
|
||||
- **学习方式**: 阅读文档和源码
|
||||
- **关键收获**:
|
||||
1. Binder是Android系统进程间通信的核心机制
|
||||
2. Binder使用驱动实现,支持跨进程调用
|
||||
3. Binder使用引用计数管理对象生命周期
|
||||
4. Binder的零拷贝机制提升了性能
|
||||
- **相关链接**: [[05-进程与线程通信/Binder机制(内核到Java层)]]
|
||||
|
||||
### 源码阅读
|
||||
- **阅读模块**: Binder驱动
|
||||
- **阅读时间**: 17:00 - 19:00
|
||||
- **关键理解**:
|
||||
- Binder驱动位于内核层,提供进程间通信能力
|
||||
- 使用mmap实现内存映射,实现零拷贝
|
||||
- 通过引用计数管理Binder对象生命周期
|
||||
- **疑问**:
|
||||
- Binder的性能优化点有哪些?
|
||||
- 如何调试Binder通信问题?
|
||||
- **相关链接**: [[05-进程与线程通信/Binder机制(内核到Java层)]]
|
||||
|
||||
### 问题解决
|
||||
- **问题描述**: 内存测试发现内存泄漏
|
||||
- **解决过程**:
|
||||
1. 使用LeakCanary检测内存泄漏
|
||||
2. 分析泄漏路径,找到泄漏原因
|
||||
3. 修复泄漏问题
|
||||
- **解决方案**: 修复了Handler持有Activity引用导致的内存泄漏
|
||||
- **经验总结**:
|
||||
- 使用LeakCanary可以快速发现内存泄漏
|
||||
- Handler要使用静态内部类+WeakReference
|
||||
- 及时释放资源很重要
|
||||
- **相关链接**: [[06-性能优化体系/内存优化(LeakCanary原理)]]
|
||||
|
||||
## 会议记录
|
||||
|
||||
无
|
||||
|
||||
## 思考与总结
|
||||
|
||||
### 今日收获
|
||||
1. **技术收获**: 深入理解了Binder机制,对Android进程间通信有了清晰的认识
|
||||
2. **工作收获**: 完成了性能测试,发现并修复了问题,提升了系统性能
|
||||
3. **学习收获**: 通过问题解决,提升了问题排查和解决能力
|
||||
|
||||
### 今日反思
|
||||
- **做得好的地方**:
|
||||
- 按时完成了性能测试
|
||||
- 及时修复了发现的问题
|
||||
- 通过学习和实践加深了理解
|
||||
|
||||
- **需要改进的地方**:
|
||||
- Handler源码阅读进度较慢
|
||||
- 技术笔记整理不够及时
|
||||
|
||||
- **改进计划**:
|
||||
- 明天完成Handler源码阅读
|
||||
- 及时整理技术笔记
|
||||
|
||||
### 明日计划
|
||||
1. 完成Handler源码阅读,整理笔记
|
||||
2. 继续优化系统性能
|
||||
3. 准备下周工作计划
|
||||
|
||||
## 技术笔记
|
||||
|
||||
### Binder机制
|
||||
- **内容**: Android进程间通信的核心机制
|
||||
- **关键理解**:
|
||||
- Binder使用驱动实现跨进程调用
|
||||
- 通过mmap实现零拷贝,提升性能
|
||||
- 使用引用计数管理对象生命周期
|
||||
- **代码示例**:
|
||||
```java
|
||||
// Binder使用示例
|
||||
IBinder binder = ServiceManager.getService("service_name");
|
||||
IMyService service = IMyService.Stub.asInterface(binder);
|
||||
service.doSomething();
|
||||
```
|
||||
- **相关链接**: [[05-进程与线程通信/Binder机制(内核到Java层)]]
|
||||
|
||||
### 性能优化
|
||||
- **内容**: 系统性能测试和优化
|
||||
- **关键理解**:
|
||||
- 使用Systrace可以系统化分析性能问题
|
||||
- 内存泄漏是性能问题的重要原因
|
||||
- 启动优化需要从多个方面考虑
|
||||
- **相关链接**: [[06-性能优化体系/启动优化方法论]]
|
||||
|
||||
### 内存泄漏修复
|
||||
- **内容**: 修复Handler导致的内存泄漏
|
||||
- **关键理解**:
|
||||
- Handler要使用静态内部类+WeakReference
|
||||
- 及时释放资源,避免持有Context引用
|
||||
- 使用LeakCanary可以快速发现内存泄漏
|
||||
- **代码示例**:
|
||||
```java
|
||||
// 正确的Handler使用方式
|
||||
private static class MyHandler extends Handler {
|
||||
private WeakReference<Activity> mActivityRef;
|
||||
|
||||
MyHandler(Activity activity) {
|
||||
mActivityRef = new WeakReference<>(activity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleMessage(Message msg) {
|
||||
Activity activity = mActivityRef.get();
|
||||
if (activity != null) {
|
||||
// 处理消息
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
- **相关链接**: [[06-性能优化体系/内存优化(LeakCanary原理)]]
|
||||
|
||||
## 问题与疑问
|
||||
|
||||
### 问题1: Binder性能优化
|
||||
- **问题描述**: Binder的性能优化点有哪些?
|
||||
- **思考**: 需要深入研究Binder的实现细节
|
||||
- **待解决**: 继续学习Binder相关文档
|
||||
|
||||
### 问题2: Handler源码理解
|
||||
- **问题描述**: Handler源码较复杂,需要更多时间理解
|
||||
- **思考**: 需要系统化阅读Handler相关源码
|
||||
- **待解决**: 明天继续阅读,整理笔记
|
||||
|
||||
## 相关链接
|
||||
|
||||
- [[05-进程与线程通信/Binder机制(内核到Java层)]]
|
||||
- [[06-性能优化体系/内存优化(LeakCanary原理)]]
|
||||
- [[09-调试与工具链/Systrace_Perfetto全解读]]
|
||||
|
||||
## 备注
|
||||
|
||||
- 今天学习效果很好,对Binder机制有了深入理解
|
||||
- 性能测试发现了问题并及时修复,提升了系统性能
|
||||
- 需要加快Handler源码阅读进度
|
||||
@@ -1,133 +0,0 @@
|
||||
## 基本信息
|
||||
- **日期**: 2026-01-13
|
||||
- **星期**: 星期二
|
||||
- **天气**: 晴
|
||||
- **心情**: 良好
|
||||
|
||||
## 今日计划
|
||||
|
||||
### 工作安排
|
||||
- [ ] 从正式环境切换到开发环境
|
||||
- [ ] 知你--会员功能
|
||||
|
||||
### 学习计划
|
||||
- [ ] 学习内容1
|
||||
- [ ] 学习内容2
|
||||
|
||||
### 其他计划
|
||||
- [ ] 其他事项1
|
||||
|
||||
## 工作记录
|
||||
|
||||
### 已完成
|
||||
- ✅ 从正式环境切换到开发环境
|
||||
- 时间: HH:MM - HH:MM
|
||||
- 内容: http://101.43.95.130:8082/c/zhini_im/+/104
|
||||
- http://101.43.95.130:8082/c/zhini_im/+/105
|
||||
- 收获:
|
||||
|
||||
- ✅ 知你--会员功能开发
|
||||
- 时间: HH:MM - HH:MM
|
||||
- 内容: http://101.43.95.130:8082/c/zhini_im/+/106
|
||||
- 收获:
|
||||
|
||||
### 进行中
|
||||
- 🔄 进行中事项1
|
||||
- 开始时间: HH:MM
|
||||
- 当前进度:
|
||||
- 遇到的问题:
|
||||
- 下一步计划:
|
||||
- 继续知你--会员功能开发
|
||||
|
||||
### 待处理
|
||||
- ⏳ 待处理事项1
|
||||
- 计划时间: HH:MM
|
||||
- 优先级: 高/中/低
|
||||
|
||||
## 学习记录
|
||||
|
||||
### 技术学习
|
||||
- **学习内容**:
|
||||
- **学习时间**: HH:MM - HH:MM
|
||||
- **学习方式**: 阅读/实践/视频
|
||||
- **关键收获**:
|
||||
- **相关链接**: [[相关文档]]
|
||||
|
||||
### 源码阅读
|
||||
- **阅读模块**:
|
||||
- **阅读时间**: HH:MM - HH:MM
|
||||
- **关键理解**:
|
||||
- **疑问**:
|
||||
- **相关链接**: [[相关源码]]
|
||||
|
||||
### 问题解决
|
||||
- **问题描述**:
|
||||
- **解决过程**:
|
||||
- **解决方案**:
|
||||
- **经验总结**:
|
||||
- **相关链接**: [[相关文档]]
|
||||
|
||||
## 会议记录
|
||||
|
||||
### 会议1
|
||||
- **时间**: HH:MM - HH:MM
|
||||
- **主题**:
|
||||
- **参与人**:
|
||||
- **关键内容**:
|
||||
- **行动项**:
|
||||
- **相关链接**: [[会议记录]]
|
||||
|
||||
## 思考与总结
|
||||
|
||||
### 今日收获
|
||||
1. 收获1
|
||||
2. 收获2
|
||||
3. 收获3
|
||||
|
||||
### 今日反思
|
||||
- 做得好的地方:
|
||||
- 需要改进的地方:
|
||||
- 改进计划:
|
||||
|
||||
### 明日计划
|
||||
1. 计划1
|
||||
2. 计划2
|
||||
3. 计划3
|
||||
|
||||
## 技术笔记
|
||||
|
||||
### 技术点1
|
||||
- **内容**:
|
||||
- **代码示例**:
|
||||
```java
|
||||
// 代码示例
|
||||
```
|
||||
|
||||
- **关键理解**:
|
||||
- **相关链接**: [[相关文档]]
|
||||
|
||||
### 技术点2
|
||||
- **内容**:
|
||||
- **关键理解**:
|
||||
|
||||
## 问题与疑问
|
||||
|
||||
### 问题1
|
||||
- **问题描述**:
|
||||
- **思考**:
|
||||
- **待解决**:
|
||||
|
||||
### 问题2
|
||||
- **问题描述**:
|
||||
- **思考**:
|
||||
|
||||
## 相关链接
|
||||
|
||||
- [[相关项目]]
|
||||
- [[相关文档]]
|
||||
- [[相关笔记]]
|
||||
|
||||
## 备注
|
||||
|
||||
- 备注1
|
||||
- 备注2
|
||||
@@ -1,131 +0,0 @@
|
||||
## 基本信息
|
||||
- **日期**: 2026-01-14
|
||||
- **星期**: 星期三
|
||||
- **天气**: 晴
|
||||
- **心情**: 良好
|
||||
|
||||
## 今日计划
|
||||
|
||||
### 工作安排
|
||||
- [ ] 知你--会员功能
|
||||
- [ ] 知你--聊天会话界面跑马灯温馨提示
|
||||
|
||||
### 学习计划
|
||||
- [ ] 学习内容1
|
||||
- [ ] 学习内容2
|
||||
|
||||
### 其他计划
|
||||
- [ ] 其他事项1
|
||||
|
||||
## 工作记录
|
||||
|
||||
### 已完成
|
||||
- ✅ 知你--会员功能开发
|
||||
- 时间: HH:MM - HH:MM
|
||||
- 内容: http://101.43.95.130:8082/c/zhini_im/+/106
|
||||
- 收获:
|
||||
|
||||
- ✅ 知你--聊天会话界面跑马灯温馨提示
|
||||
- 时间: HH:MM - HH:MM
|
||||
- 内容: http://101.43.95.130:8082/c/zhini_im/+/107
|
||||
- 收获:
|
||||
### 进行中
|
||||
- 🔄 进行中事项1
|
||||
- 开始时间: HH:MM
|
||||
- 当前进度:
|
||||
- 遇到的问题:
|
||||
- 下一步计划:
|
||||
- 继续知你--会员功能开发
|
||||
|
||||
### 待处理
|
||||
- ⏳ 待处理事项1
|
||||
- 计划时间: HH:MM
|
||||
- 优先级: 高/中/低
|
||||
|
||||
## 学习记录
|
||||
|
||||
### 技术学习
|
||||
- **学习内容**:
|
||||
- **学习时间**: HH:MM - HH:MM
|
||||
- **学习方式**: 阅读/实践/视频
|
||||
- **关键收获**:
|
||||
- **相关链接**: [[相关文档]]
|
||||
|
||||
### 源码阅读
|
||||
- **阅读模块**:
|
||||
- **阅读时间**: HH:MM - HH:MM
|
||||
- **关键理解**:
|
||||
- **疑问**:
|
||||
- **相关链接**: [[相关源码]]
|
||||
|
||||
### 问题解决
|
||||
- **问题描述**:
|
||||
- **解决过程**:
|
||||
- **解决方案**:
|
||||
- **经验总结**:
|
||||
- **相关链接**: [[相关文档]]
|
||||
|
||||
## 会议记录
|
||||
|
||||
### 会议1
|
||||
- **时间**: HH:MM - HH:MM
|
||||
- **主题**:
|
||||
- **参与人**:
|
||||
- **关键内容**:
|
||||
- **行动项**:
|
||||
- **相关链接**: [[会议记录]]
|
||||
|
||||
## 思考与总结
|
||||
|
||||
### 今日收获
|
||||
1. 收获1
|
||||
2. 收获2
|
||||
3. 收获3
|
||||
|
||||
### 今日反思
|
||||
- 做得好的地方:
|
||||
- 需要改进的地方:
|
||||
- 改进计划:
|
||||
|
||||
### 明日计划
|
||||
1. 计划1
|
||||
2. 计划2
|
||||
3. 计划3
|
||||
|
||||
## 技术笔记
|
||||
|
||||
### 技术点1
|
||||
- **内容**:
|
||||
- **代码示例**:
|
||||
```java
|
||||
// 代码示例
|
||||
```
|
||||
|
||||
- **关键理解**:
|
||||
- **相关链接**: [[相关文档]]
|
||||
|
||||
### 技术点2
|
||||
- **内容**:
|
||||
- **关键理解**:
|
||||
|
||||
## 问题与疑问
|
||||
|
||||
### 问题1
|
||||
- **问题描述**:
|
||||
- **思考**:
|
||||
- **待解决**:
|
||||
|
||||
### 问题2
|
||||
- **问题描述**:
|
||||
- **思考**:
|
||||
|
||||
## 相关链接
|
||||
|
||||
- [[相关项目]]
|
||||
- [[相关文档]]
|
||||
- [[相关笔记]]
|
||||
|
||||
## 备注
|
||||
|
||||
- 备注1
|
||||
- 备注2
|
||||
@@ -1,131 +0,0 @@
|
||||
## 基本信息
|
||||
- **日期**: 2026-01-15
|
||||
- **星期**: 星期四
|
||||
- **天气**: 晴
|
||||
- **心情**: 良好
|
||||
|
||||
## 今日计划
|
||||
|
||||
### 工作安排
|
||||
- [ ] 知你--会员功能
|
||||
- [ ] 知你--聊天会话界面跑马灯温馨提示
|
||||
|
||||
### 学习计划
|
||||
- [ ] 学习内容1
|
||||
- [ ] 学习内容2
|
||||
|
||||
### 其他计划
|
||||
- [ ] 其他事项1
|
||||
|
||||
## 工作记录
|
||||
|
||||
### 已完成
|
||||
- ✅ 知你--会员功能开发
|
||||
- 时间: HH:MM - HH:MM
|
||||
- 内容: http://101.43.95.130:8082/c/zhini_im/+/106
|
||||
- 收获:
|
||||
|
||||
- ✅ 知你--聊天会话界面跑马灯温馨提示
|
||||
- 时间: HH:MM - HH:MM
|
||||
- 内容: http://101.43.95.130:8082/c/zhini_im/+/107
|
||||
- 收获:
|
||||
### 进行中
|
||||
- 🔄 进行中事项1
|
||||
- 开始时间: HH:MM
|
||||
- 当前进度:
|
||||
- 遇到的问题:
|
||||
- 下一步计划:
|
||||
- 继续知你--会员功能开发
|
||||
|
||||
### 待处理
|
||||
- ⏳ 待处理事项1
|
||||
- 计划时间: HH:MM
|
||||
- 优先级: 高/中/低
|
||||
|
||||
## 学习记录
|
||||
|
||||
### 技术学习
|
||||
- **学习内容**:
|
||||
- **学习时间**: HH:MM - HH:MM
|
||||
- **学习方式**: 阅读/实践/视频
|
||||
- **关键收获**:
|
||||
- **相关链接**: [[相关文档]]
|
||||
|
||||
### 源码阅读
|
||||
- **阅读模块**:
|
||||
- **阅读时间**: HH:MM - HH:MM
|
||||
- **关键理解**:
|
||||
- **疑问**:
|
||||
- **相关链接**: [[相关源码]]
|
||||
|
||||
### 问题解决
|
||||
- **问题描述**:
|
||||
- **解决过程**:
|
||||
- **解决方案**:
|
||||
- **经验总结**:
|
||||
- **相关链接**: [[相关文档]]
|
||||
|
||||
## 会议记录
|
||||
|
||||
### 会议1
|
||||
- **时间**: HH:MM - HH:MM
|
||||
- **主题**:
|
||||
- **参与人**:
|
||||
- **关键内容**:
|
||||
- **行动项**:
|
||||
- **相关链接**: [[会议记录]]
|
||||
|
||||
## 思考与总结
|
||||
|
||||
### 今日收获
|
||||
1. 收获1
|
||||
2. 收获2
|
||||
3. 收获3
|
||||
|
||||
### 今日反思
|
||||
- 做得好的地方:
|
||||
- 需要改进的地方:
|
||||
- 改进计划:
|
||||
|
||||
### 明日计划
|
||||
1. 计划1
|
||||
2. 计划2
|
||||
3. 计划3
|
||||
|
||||
## 技术笔记
|
||||
|
||||
### 技术点1
|
||||
- **内容**:
|
||||
- **代码示例**:
|
||||
```java
|
||||
// 代码示例
|
||||
```
|
||||
|
||||
- **关键理解**:
|
||||
- **相关链接**: [[相关文档]]
|
||||
|
||||
### 技术点2
|
||||
- **内容**:
|
||||
- **关键理解**:
|
||||
|
||||
## 问题与疑问
|
||||
|
||||
### 问题1
|
||||
- **问题描述**:
|
||||
- **思考**:
|
||||
- **待解决**:
|
||||
|
||||
### 问题2
|
||||
- **问题描述**:
|
||||
- **思考**:
|
||||
|
||||
## 相关链接
|
||||
|
||||
- [[相关项目]]
|
||||
- [[相关文档]]
|
||||
- [[相关笔记]]
|
||||
|
||||
## 备注
|
||||
|
||||
- 备注1
|
||||
- 备注2
|
||||
45
docs/Obsidian笔记体系/Projects/agent/0618.md
Normal file
45
docs/Obsidian笔记体系/Projects/agent/0618.md
Normal file
@@ -0,0 +1,45 @@
|
||||
改进优先级
|
||||
|
||||
┌────────┬──────────────────────────────────────┬────────────────────────────────┐
|
||||
│ 优先级 │ 改进项 │ 效果 │
|
||||
├────────┼──────────────────────────────────────┼────────────────────────────────┤
|
||||
│ P0 │ 增加 QA→Developer 反馈循环 │ 致命 bug 能在交付前修复 │
|
||||
├────────┼──────────────────────────────────────┼────────────────────────────────┤
|
||||
│ P0 │ 修复 Planner 的 markdown→JSON 解析 │ 并行执行真正生效 │
|
||||
├────────┼──────────────────────────────────────┼────────────────────────────────┤
|
||||
│ P1 │ 第一个 Agent 先读取目标项目代码 │ 产物能直接集成 │
|
||||
├────────┼──────────────────────────────────────┼────────────────────────────────┤
|
||||
│ P1 │ 增加 Architect 角色 │ 方案设计阶段避免与现有架构冲突 │
|
||||
├────────┼──────────────────────────────────────┼────────────────────────────────┤
|
||||
│ P2 │ Agent 间共享上下文(非仅传输出文本) │ Designer 能看到 PM 的详细分析 │
|
||||
├────────┼──────────────────────────────────────┼────────────────────────────────┤
|
||||
│ P2 │ 支持多轮对话而非单次生成 │ 复杂任务可分步迭代 │
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
如果你指的是跨阶段人工交互式追问(如:PM 输出计划后用户可修改确认再继续),当前代码中暂未找到该能力。需要我实现吗?
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
改进建议
|
||||
|
||||
Developer 需要加强 Promise 理解 — Element Plus 的 validate() 返回 Promise<boolean> 而非 reject-on-failure,两轮都栽在这里。建议在 developer system prompt 中加入常见框架 API
|
||||
的陷阱提示
|
||||
启用 QA → Developer 修复循环 — QA 发现了所有问题但未触发修复。当前 MAX_FIX_ROUNDS=2 可能不足以覆盖。可考虑对 critical 级别 issue 强制执行至少一轮修复
|
||||
PM 应明确功能优先级 — 注册功能写了但 developer 没实现,PM 没有标注 "MUST HAVE",导致被偷懒跳过
|
||||
DevOps 需实际构建验证 — 缺少 vue-tsc --noEmit 和 vite build 的实际输出日志
|
||||
Architect 可进一步发挥 — 可以要求架构师输出更具体的 "现有代码质量评估",这样 PM 就不会规划超出实际需求的复杂功能
|
||||
|
||||
总结:第三轮质量明显提升,修复 validateForm 后 Login.vue 可直接用于天工平台。Developer 的 Promise 处理是需要系统性修复的薄弱环节。
|
||||
@@ -80,5 +80,74 @@ D:\aaa\aiagent\上传git仓.md 上传git仓
|
||||
4.项目熟悉D:\aaa\aiagent\docs\
|
||||
5.可以在git仓查看历史D:\aaa\aiagent\上传git仓.md
|
||||
|
||||
任务,生成一个家庭医生的agent
|
||||
http://localhost:3001/agents
|
||||
|
||||
|
||||
|
||||
本地数据库:localhost root 3306端口 密码123456
|
||||
|
||||
云数据库:
|
||||
项目 │ 地址 │
|
||||
├──────────┼─────────────────────────────────────────────────┤
|
||||
│ 主机 │ gz-cynosdbmysql-grp-d26pzce5.sql.tencentcdb.com │
|
||||
├──────────┼─────────────────────────────────────────────────┤
|
||||
│ 端口 │ 24936 │
|
||||
├──────────┼─────────────────────────────────────────────────┤
|
||||
│ 数据库 │ agent_db │
|
||||
├──────────┼─────────────────────────────────────────────────┤
|
||||
│ 配置位置 │ D:\aaa\aiagent\backend\.env
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
现有[天工智能体平台](http://localhost:3001/teams),里面有很多的虚拟团队,你可以调用他们来给我干活吗,你来当指挥,虚拟团队在干活中遇到的各种问题,报告给我来决定是不是要进行修复。
|
||||
|
||||
|
||||
你可以给系统应用测试团队下达: 测试Android客户端 D:\aaa\aiagent\android 的代码质量和潜在bug,让团队中每个agent都能扫描真实源码(可以参考设计文档),对标商业化产品,有哪些交互体验等等问题
|
||||
|
||||
|
||||
要求:当你发现问题后,停止任务,然后及时修改纠正,完成后继续指挥虚拟团队完成任务。
|
||||
目的:将虚拟团队打造成高效协作,可以高标准高质量完成任务的团队。
|
||||
|
||||
|
||||
|
||||
|
||||
你来当指挥,虚拟团队系统应用测试团队来干活
|
||||
使用步骤
|
||||
|
||||
1. 访问 http://localhost:3001/teams
|
||||
2. 点击 "系统应用测试团队" 按钮(黄色按钮)
|
||||
3. 6 个角色槽位自动填充完毕,团队名固定为"系统应用测试团队"
|
||||
4. 在底部输入框输入要测试的项目描述,例如:
|
||||
▎ 请深度测试 D:\aaa\aiagent\android 项目的功能完整性、交互体验、边界容错和性能瓶颈
|
||||
5. 建议点击 "流式执行"(可实时看到每个 Agent 的思考/工具调用/输出)
|
||||
|
||||
执行流程
|
||||
|
||||
阶段0: 系统架构师
|
||||
├─ list_files 递归扫描目录 (depth 3-4)
|
||||
├─ project_scan 自动识别技术栈
|
||||
├─ file_read 读取 5-7 个核心文件 (不超过10次)
|
||||
└─ 输出: 架构上下文文档(技术栈/目录结构/核心模块/数据流/架构风险)
|
||||
|
||||
阶段1: 测试规划师
|
||||
├─ 读取架构师文档
|
||||
├─ file_read 自扫 3-5 个关键源文件
|
||||
└─ 输出: JSON 测试计划 (project_name + phases[4-6] + acceptance_criteria)
|
||||
phases 支持 depends_on 实现并行执行
|
||||
|
||||
阶段2-N: 各测试角色并行/顺序执行
|
||||
├─ 功能测试员: 扫 5-6 个核心文件 → 输出 ≥12 个 bug (含文件路径+行号+修复代码)
|
||||
├─ 体验审核员: 扫 4-5 个 UI 文件 → 对比 ChatGPT/豆包 输出 UX 评审
|
||||
├─ 边界探索员: 扫 5-6 文件 + 2-3 次 grep 查 !!、?.let、catch 等 → 边界用例报告
|
||||
└─ 性能评估员: 扫 5-6 文件 → 查 runBlocking、GlobalScope、callbackFlow 等反模式
|
||||
|
||||
最终: 汇总全部报告 → 输出项目文件路径 + 文件清单
|
||||
|
||||
关键设计
|
||||
|
||||
- 真实代码优先: 每个角色被强制要求 file_read 真实源文件(限制 4-7 次),禁止只看文档输出空泛结论
|
||||
- STOP-SCANNING 规则: 超过 10 次迭代仍未产出则强制写 file_write
|
||||
- 架构师先行: 架构师扫描代码生成上下文文档,后续测试角色基于该文档 + 自己扫描开展工作
|
||||
- 并行支持: 测试规划师的 phases JSON 中的 depends_on 字段支持 DAG 并行(互不依赖的阶段同时执行)
|
||||
- 产出文件: 所有测试报告写入 team_projects/{team_id}/{project_name}/ 目录
|
||||
@@ -1,175 +0,0 @@
|
||||
---
|
||||
当前进度
|
||||
|
||||
┌─────────┬────────────────────────────────────────┬─────────────────────────────┐
|
||||
│ 阶段 │ 内容 │ 状态 │
|
||||
├─────────┼────────────────────────────────────────┼─────────────────────────────┤
|
||||
│ Phase 1 │ 输出质量验证 + 节点级自动重试 │ ✅ 完成 │
|
||||
├─────────┼────────────────────────────────────────┼─────────────────────────────┤
|
||||
│ Phase 2 │ Orchestrator 入工作流 + 工具级人工审批 │ ✅ 完成 │
|
||||
├─────────┼────────────────────────────────────────┼─────────────────────────────┤
|
||||
│ Phase 3 │ 并行执行 + 进度上报 + 结果缓存 │ ✅ 完成 (含 Bug #1-#5 修复) │
|
||||
├─────────┼────────────────────────────────────────┼─────────────────────────────┤
|
||||
│ Phase 4 │ 降级回退 + 知识共享 + 异步执行 │ 待开发 │
|
||||
└─────────┴────────────────────────────────────────┴─────────────────────────────┘
|
||||
|
||||
---
|
||||
下一步:第四阶段 — 容错与共享
|
||||
|
||||
根据 解决缺失能力计划.md,最后 3 项:
|
||||
|
||||
4.1 降级/回退链
|
||||
|
||||
- AgentLLMConfig 加 fallback_llm 字段
|
||||
- 主模型挂了自动切备用模型
|
||||
- Agent 失败自动切 fallback_agent
|
||||
|
||||
4.2 Agent 间知识共享
|
||||
|
||||
- 新增 GlobalKnowledge 表
|
||||
- Agent 执行完自动提取知识写入全局池
|
||||
- 其他 Agent 初始化时检索全局知识
|
||||
|
||||
4.3 Agent 异步执行
|
||||
|
||||
- execute_agent_task 当前是空壳占位符
|
||||
- 实现真正的 Celery 异步 Agent 执行
|
||||
- 定时调度能真正运行 Agent
|
||||
|
||||
---
|
||||
要开始做 Phase 4 吗?
|
||||
|
||||
✻ Churned for 41s
|
||||
|
||||
❯ 当前系统,还能做些什么需求,进一步提升呢
|
||||
|
||||
Read 2 files, listed 1 directory (ctrl+o to expand)
|
||||
|
||||
● 让我全面梳理一下,结合已有规划文档和架构师/测试/产品经理视角。
|
||||
|
||||
---
|
||||
当前系统还能做的需求全景
|
||||
|
||||
一、已规划的 Phase 4(来自 解决缺失能力计划.md)
|
||||
|
||||
┌─────┬──────────────────┬─────────────────────────────────────────────────────┐
|
||||
│ # │ 需求 │ 说明 │
|
||||
├─────┼──────────────────┼─────────────────────────────────────────────────────┤
|
||||
│ 4.1 │ 降级/回退链 │ 模型挂了自动切备用模型,Agent 失败切 fallback_agent │
|
||||
├─────┼──────────────────┼─────────────────────────────────────────────────────┤
|
||||
│ 4.2 │ Agent 间知识共享 │ 打破记忆隔离,Agent A 学到的东西 Agent B 也能用 │
|
||||
├─────┼──────────────────┼─────────────────────────────────────────────────────┤
|
||||
│ 4.3 │ Agent 异步执行 │ execute_agent_task 是空壳,定时调度无法真正异步执行 │
|
||||
└─────┴──────────────────┴─────────────────────────────────────────────────────┘
|
||||
|
||||
▎ 这是最直接的下一步,按计划走。
|
||||
|
||||
---
|
||||
二、监控告警前端(后端已完成,前端缺失)
|
||||
|
||||
后端 API 全部就绪,前端一个页面都没写:
|
||||
|
||||
- 系统监控面板 — CPU/内存/磁盘/执行统计图表
|
||||
- 告警规则管理 — 规则 CRUD + 启用/禁用
|
||||
- 告警日志查看 — 告警历史 + 通知配置
|
||||
|
||||
▎ 平台可观测性的最后一公里。
|
||||
|
||||
---
|
||||
三、生产就绪(DevOps / 运维)
|
||||
|
||||
┌──────────────────────┬────────────────────────────────────────────┐
|
||||
│ 需求 │ 说明 │
|
||||
├──────────────────────┼────────────────────────────────────────────┤
|
||||
│ Docker 生产环境配置 │ 目前只有 dev compose,缺 prod 配置 │
|
||||
├──────────────────────┼────────────────────────────────────────────┤
|
||||
│ Prometheus + Grafana │ 指标收集 + 仪表板(业务指标 + 系统指标) │
|
||||
├──────────────────────┼────────────────────────────────────────────┤
|
||||
│ ELK 日志聚合 │ 日志集中查询分析,替代目前本地 backend.log │
|
||||
├──────────────────────┼────────────────────────────────────────────┤
|
||||
│ CI/CD 流水线 │ GitHub Actions:自动测试 → 构建 → 部署 │
|
||||
├──────────────────────┼────────────────────────────────────────────┤
|
||||
│ API 限流 │ 防止滥用,保护后端 │
|
||||
├──────────────────────┼────────────────────────────────────────────┤
|
||||
│ 密钥管理 │ 敏感信息加密存储,不用明文 .env │
|
||||
└──────────────────────┴────────────────────────────────────────────┘
|
||||
|
||||
---
|
||||
四、用户体验增强
|
||||
|
||||
┌────────────────┬─────────────────────────────────────────┐
|
||||
│ 需求 │ 说明 │
|
||||
├────────────────┼─────────────────────────────────────────┤
|
||||
│ 工作流自动布局 │ 节点一键对齐,美观排列 │
|
||||
├────────────────┼─────────────────────────────────────────┤
|
||||
│ 节点搜索/筛选 │ 复杂工作流快速定位节点 │
|
||||
├────────────────┼─────────────────────────────────────────┤
|
||||
│ Agent 快速测试 │ 在配置页直接测试 Agent,不用跳到对话页 │
|
||||
├────────────────┼─────────────────────────────────────────┤
|
||||
│ Agent 使用统计 │ 每个 Agent 的调用次数、成功率、平均耗时 │
|
||||
├────────────────┼─────────────────────────────────────────┤
|
||||
│ 移动端适配 │ 至少执行状态查看、Agent 对话 │
|
||||
└────────────────┴─────────────────────────────────────────┘
|
||||
|
||||
---
|
||||
五、高级功能(差异化竞争)
|
||||
|
||||
┌─────────────────┬───────────────────────────────────────────────┐
|
||||
│ 需求 │ 说明 │
|
||||
├─────────────────┼───────────────────────────────────────────────┤
|
||||
│ 主控台/应用商店 │ 选模板 → 填参数 → 执行 → 看结果,面向业务用户 │
|
||||
├─────────────────┼───────────────────────────────────────────────┤
|
||||
│ 统一 DSL │ 不同模板复用统一输入契约,一套输入驱动多模板 │
|
||||
├─────────────────┼───────────────────────────────────────────────┤
|
||||
│ 成本预算治理 │ 按 Agent 设置 token/调用预算,超限熔断 │
|
||||
├─────────────────┼───────────────────────────────────────────────┤
|
||||
│ 插件系统 │ 第三方开发自定义节点,插件市场上架 │
|
||||
├─────────────────┼───────────────────────────────────────────────┤
|
||||
│ 多租户支持 │ SaaS 化,数据隔离 + 资源配额 │
|
||||
└─────────────────┴───────────────────────────────────────────────┘
|
||||
|
||||
---
|
||||
六、质量保障
|
||||
|
||||
┌────────────────┬───────────────────────────────────┐
|
||||
│ 需求 │ 说明 │
|
||||
├────────────────┼───────────────────────────────────┤
|
||||
│ 单元测试覆盖率 │ 当前有框架但覆盖率低,目标 80%+ │
|
||||
├────────────────┼───────────────────────────────────┤
|
||||
│ E2E 测试 │ Playwright 覆盖核心用户流程 │
|
||||
├────────────────┼───────────────────────────────────┤
|
||||
│ 性能压测 │ Locust/k6 压测 API,找瓶颈 │
|
||||
├────────────────┼───────────────────────────────────┤
|
||||
│ 安全扫描 │ OWASP ZAP + SQLMap + 依赖漏洞检查 │
|
||||
└────────────────┴───────────────────────────────────┘
|
||||
|
||||
---
|
||||
七、Agent 能力边界拓展
|
||||
|
||||
┌──────────────────┬───────────────────────────────────────────────┐
|
||||
│ 需求 │ 说明 │
|
||||
├──────────────────┼───────────────────────────────────────────────┤
|
||||
│ 多模态 Agent │ 支持图片识别、语音输入(tessdata 目录已存在) │
|
||||
├──────────────────┼───────────────────────────────────────────────┤
|
||||
│ Agent 协作工作台 │ 可视化编排多 Agent 协作流程 │
|
||||
├──────────────────┼───────────────────────────────────────────────┤
|
||||
│ Agent 技能商店 │ Agent 发布到公共市场,共享复用 │
|
||||
└──────────────────┴───────────────────────────────────────────────┘
|
||||
|
||||
---
|
||||
建议优先级
|
||||
|
||||
第一优先(生产就绪):Phase 4 + 监控告警前端 + Docker 生产配置
|
||||
第二优先(体验提升):工作流自动布局 + Agent 快速测试 + 主控台
|
||||
第三优先(竞争壁垒):插件系统 + 多租户 + 统一 DSL
|
||||
第四优先(质量保障):测试覆盖率 + E2E + 性能压测
|
||||
|
||||
总共约 20+ 个可做需求,看你想先往哪个方向发力?是按计划继续做 Phase 4,还是先补监控告警前端,还是往生产就绪方向走?
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
将这些需求登记到工单平台(Gitea) D:\aaa\aiagent\docs\平台资料.md
|
||||
|
||||
可参考D:\aaa\aiagent\docs\创建工单总结.md
|
||||
270
docs/Obsidian笔记体系/Projects/agent/下一步计划0613.md
Normal file
270
docs/Obsidian笔记体系/Projects/agent/下一步计划0613.md
Normal file
@@ -0,0 +1,270 @@
|
||||
---
|
||||
🔴 P0 — 对话自动压缩 (Tiered Auto-Compaction)
|
||||
|
||||
这个没做,豆包Pro 永远成不了真正好用的聊天助手。
|
||||
|
||||
Claude Code 有一个三级压缩体系:
|
||||
|
||||
┌───────────────────────┬───────────────────────┬─────────────────────────────────────────────────────────────────┬────────────────────────────────┐
|
||||
│ 级别 │ 触发条件 │ 机制 │ 效果 │
|
||||
├───────────────────────┼───────────────────────┼─────────────────────────────────────────────────────────────────┼────────────────────────────────┤
|
||||
│ MicroCompact │ 每次对话前 │ 把旧工具结果(read/grep/search)替换为 [Old content cleared] 桩 │ 回收 30-50% token 不丢对话质量 │
|
||||
├───────────────────────┼───────────────────────┼─────────────────────────────────────────────────────────────────┼────────────────────────────────┤
|
||||
│ SessionMemory Compact │ 距窗口上限 ~13K token │ 将旧对话总结为记忆条目注入系统提示词 │ 进一步压缩 │
|
||||
├───────────────────────┼───────────────────────┼─────────────────────────────────────────────────────────────────┼────────────────────────────────┤
|
||||
│ Full Compact │ 以上都失败 │ 分叉一个新 Agent 对整个对话做摘要,替换旧消息 │ 最终兜底 │
|
||||
└───────────────────────┴───────────────────────┴─────────────────────────────────────────────────────────────────┴────────────────────────────────┘
|
||||
|
||||
关键设计:
|
||||
- reactiveCompact.ts — 捕捉 API 返回 413 prompt_too_long 后被动触发压缩
|
||||
- 熔断机制:连续压缩失败 3 次就停止,避免死循环
|
||||
- 分组 (grouping.ts) — 按 API 轮次找安全分割点,不切断中间的 tool call 序列
|
||||
|
||||
对应豆包Pro:当前 memory_max_history=35 条消息硬截断,没有压缩机制。对话超过 35 轮就"失忆"。实现后对话可以无限延续。
|
||||
|
||||
---
|
||||
🟡 P1 — 对话分支 (Conversation Branching)
|
||||
|
||||
Claude Code 支持用户在任意时刻分叉对话:
|
||||
|
||||
当前对话 ──→ 分叉到新会话 ──→ 在新分支探索
|
||||
│ │
|
||||
└── 原会话保留,随时可恢复 ←───┘
|
||||
|
||||
机制:复制 transcript 文件到新 UUID,保留 forkedFrom 溯源,自动命名防冲突("话题 (Branch)", "话题 (Branch 2)")。
|
||||
|
||||
对应豆包Pro:用户说 "你给的方案A不错,但我还想看看方案B",可以分叉两条路同时探索,不丢失任何一边的上下文。这是真豆包都没有的能力。
|
||||
|
||||
---
|
||||
🟡 P1 — 工具结果流式美化 (Streamlined Output)
|
||||
|
||||
Claude Code 不会把原始工具 JSON 输出给用户看,而是做实时转译:
|
||||
|
||||
// 原始:3个 Grep 结果 + 2个 FileRead 结果(几百行 JSON)
|
||||
// 转译后:"Searched 3 patterns, read 2 files, wrote 1 file."
|
||||
|
||||
// 原始:{"stdout": "...", "stderr": "", "returncode": 0}
|
||||
// 转译后:"Code executed successfully → result: [1, 1, 2, 3, 6, 8, 10]"
|
||||
|
||||
核心文件:streamlinedTransform.ts、groupToolUses.ts、collapseReadSearch.ts
|
||||
|
||||
对应豆包Pro:当前工具调用过程以 JSON steps 返回,前端需要自己做美化。实现后用户看到的是自然语言描述而不是原始数据。
|
||||
|
||||
---
|
||||
🟡 P2 — 系统提示词分层装配
|
||||
|
||||
Claude Code 的系统提示词不是一整块,而是 15+ 个可组合 Section:
|
||||
|
||||
┌─────────────────────────┐
|
||||
│ Cacheable (静态前缀) │ ← 可被 API prompt cache 命中
|
||||
│ ├─ session_guidance │
|
||||
│ ├─ memory │
|
||||
│ ├─ model_override │
|
||||
│ ├─ language │
|
||||
│ ├─ output_style │
|
||||
├─────────────────────────┤ ← static/dynamic boundary
|
||||
│ Volatile (动态后缀) │ ← 每轮重新计算
|
||||
│ ├─ tool_summaries │
|
||||
│ ├─ token_budget │
|
||||
│ ├─ mcp_instructions │
|
||||
│ └─ scratchpad │
|
||||
└─────────────────────────┘
|
||||
|
||||
每个 Section 用 Promise.all 并行加载,支持 feature flag 控制显隐。
|
||||
|
||||
对应豆包Pro:当前 system_prompt 是一个大字符串。改为分层后:
|
||||
- 静态层(人格+能力描述)→ 缓存,不消耗每次 API 调用的 token
|
||||
- 动态层(当前记忆+上下文摘要)→ 每轮重新注入
|
||||
- 按场景切换:闲聊模式精简 tools 描述,代码模式强化工具指令
|
||||
|
||||
---
|
||||
🟢 P2 — Token 预算管理
|
||||
|
||||
Claude Code 有完整的 token 追踪链路:
|
||||
|
||||
当前 token 用量 / 模型窗口上限 / 剩余空间 / 预警阈值
|
||||
↓ 接近上限
|
||||
自动触发压缩
|
||||
↓ 还是不够
|
||||
提示用户 /compact
|
||||
|
||||
用户甚至可以输入 +500k 手动调整预算上限。
|
||||
|
||||
对应豆包Pro:当前完全没有 token 计数,对话可能被静默截断。加入后可以在 UI 上显示用量条,接近上限时主动提醒或自动压缩。
|
||||
|
||||
---
|
||||
🟢 P3 — Agent 蜂群 (Swarms)
|
||||
|
||||
Claude Code 支持一个 Leader Agent 拉多个 Teammate 并行工作:
|
||||
|
||||
用户: "帮我做旅行计划、订机票、找酒店"
|
||||
│
|
||||
Leader Agent
|
||||
┌────┼────┐
|
||||
▼ ▼ ▼
|
||||
规划 机票 酒店 ← 三个 Agent 并行,通过 mailbox 通信
|
||||
|
||||
对应豆包Pro:复杂查询可以拆成子任务并行处理,大幅缩短响应时间。
|
||||
|
||||
---
|
||||
总结:实施路线
|
||||
|
||||
P0 P1 P2 P3
|
||||
对话压缩 分支+流美化 提示词装配 Swarms
|
||||
Token预算
|
||||
───●──────────────●────────────────●────────────────●──→
|
||||
本周 下周
|
||||
|
||||
┌──────┬────────────────────────────────────────┬─────────────────────────┐
|
||||
│ 阶段 │ 做什么 │ 豆包Pro提升 │
|
||||
├──────┼────────────────────────────────────────┼─────────────────────────┤
|
||||
│ 先做 │ 对话压缩 (microCompact + full compact) │ 73% → 78% │
|
||||
├──────┼────────────────────────────────────────┼─────────────────────────┤
|
||||
│ 接着 │ 工具结果流式美化 │ 用户体验质变 │
|
||||
├──────┼────────────────────────────────────────┼─────────────────────────┤
|
||||
│ 然后 │ 系统提示词分层装配 │ API 成本降 30%, 灵活性↑ │
|
||||
├──────┼────────────────────────────────────────┼─────────────────────────┤
|
||||
│ 再后 │ Token 预算 + 对话分支 │ 79% → 82% │
|
||||
├──────┼────────────────────────────────────────┼─────────────────────────┤
|
||||
│ 远期 │ Agent Swarms 并行 │ 复杂任务快 3 倍 │
|
||||
└──────┴────────────────────────────────────────┴─────────────────────────┘
|
||||
|
||||
最紧急的是对话压缩 — 没有它,豆包 Pro 永远停留在"能聊 35 轮"。有了它,才是真正可用的聊天助手。
|
||||
|
||||
|
||||
|
||||
D:\cd\claude-code 项目拥有
|
||||
向量语义记忆 (相似对话检索) │ SiliconFlow Embedding 吗?
|
||||
那么D:\cd\claude-code的记忆水平怎么样?
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
根据之前的分析,从 Claude Code 可借鉴的功能还有这些未实现:
|
||||
|
||||
┌────────┬─────────────────────────────────────────┬──────────────────────────────────────────────┐
|
||||
│ 优先级 │ 功能 │ 说明 │
|
||||
├────────┼─────────────────────────────────────────┼──────────────────────────────────────────────┤
|
||||
│ P1 │ 对话分支 (Conversation Branching) │ 用户可回退到任意历史点重新开始,不丢失原对话 │
|
||||
├────────┼─────────────────────────────────────────┼──────────────────────────────────────────────┤
|
||||
│ P1 │ 精简输出 (Streamlined Output) │ 工具结果智能截断,避免上下文膨胀 │
|
||||
├────────┼─────────────────────────────────────────┼──────────────────────────────────────────────┤
|
||||
│ P2 │ 系统提示词分段 (System Prompt Sections) │ 结构化提示词,动态注入/移除特定段 │
|
||||
├────────┼─────────────────────────────────────────┼──────────────────────────────────────────────┤
|
||||
│ P2 │ Token 预算显示 │ 前端实时显示 token 用量和压缩状态 │
|
||||
├────────┼─────────────────────────────────────────┼──────────────────────────────────────────────┤
|
||||
│ P3 │ Agent 集群 (Agent Swarms) │ 多个 Agent 并行协作,投票/分工 │
|
||||
└────────┴─────────────────────────────────────────┴──────────────────────────────────────────────┘
|
||||
|
||||
另外还有一些可做的优化:
|
||||
- 安装 tiktoken:目前 cl100k_base 编码器已能加载,但未作为正式依赖写入 requirements
|
||||
- 端到端长对话压力测试:50+ 轮连续对话验证压缩不丢上下文
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
取决于场景。 没有绝对的好坏。
|
||||
|
||||
---
|
||||
核心取舍
|
||||
|
||||
┌──────────┬─────────────────────────────────────┬──────────────────────────┐
|
||||
│ │ Claude Code (LLM 分类) │ 天工 (向量搜索) │
|
||||
├──────────┼─────────────────────────────────────┼──────────────────────────┤
|
||||
│ 检索精度 │ 高(LLM 理解语义) │ 中(余弦相似度,可能漏) │
|
||||
├──────────┼─────────────────────────────────────┼──────────────────────────┤
|
||||
│ 检索成本 │ 每次 1 次 LLM 调用 │ 几乎免费 │
|
||||
├──────────┼─────────────────────────────────────┼──────────────────────────┤
|
||||
│ 检索速度 │ 慢(等 LLM 响应) │ 快(毫秒级) │
|
||||
├──────────┼─────────────────────────────────────┼──────────────────────────┤
|
||||
│ 规模上限 │ ~200 条记忆(受 manifest 长度限制) │ 百万级 │
|
||||
├──────────┼─────────────────────────────────────┼──────────────────────────┤
|
||||
│ 外部依赖 │ 零 │ Embedding API(脆弱) │
|
||||
├──────────┼─────────────────────────────────────┼──────────────────────────┤
|
||||
│ 离线可用 │ 是 │ 否 │
|
||||
└──────────┴─────────────────────────────────────┴──────────────────────────┘
|
||||
|
||||
---
|
||||
说实话
|
||||
|
||||
Claude Code 的方案更适合 Claude Code 自己 — 它是一个单用户 CLI 工具,记忆量不大,每次检索顺便调一下 Sonnet 无所谓。
|
||||
|
||||
向量搜索更适合天工 — 你有 6 个飞书机器人、多个用户、记忆会持续增长。用 LLM 做分类器扛不住 1000+ 条记忆,向量搜索轻松应对。
|
||||
|
||||
---
|
||||
所以
|
||||
|
||||
天工平台的方案选择是对的(向量语义记忆),问题只是 SiliconFlow 实名认证没做完。认证通过后 Embedding 服务恢复,这个架构就完整了。
|
||||
|
||||
Claude Code 不依赖 embedding 这点值得借鉴 — 但不是用它替代向量搜索,而是学它的 后台记忆自动提取(Extract Memories / Auto Dream),这个天工目前没有。
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
SiliconFlow Embedding 已恢复
|
||||
|
||||
BAAI/bge-m3 模型正常工作,1024 维向量生成成功。向量语义记忆现在可以写入新消息了。
|
||||
|
||||
改动总结: .env 第 21 行,模型从 netease-youdao/bce-embedding-base_v1(已下线)→ BAAI/bge-m3(8192 token 上限,中英多语言)。
|
||||
|
||||
---
|
||||
Claude Code 还有哪些可借鉴的改进?
|
||||
|
||||
从刚才的研究对比,天工可以借鉴的 3 个低成本高价值改进:
|
||||
|
||||
1. 后台自动记忆提取(最重要)
|
||||
|
||||
Claude Code 每轮对话结束后,fork 一个子 Agent 扫描对话,自动提炼关键信息写入持久记忆。
|
||||
|
||||
天工现在:对话结束 → 消息存 DB → 等下次手动调用 generate_embedding
|
||||
Claude Code:对话结束 → 子 Agent 读对话 → 提取事实 → 写 MEMORY.md
|
||||
|
||||
天工可以实现: 每次 Agent 对话完成后,异步调 LLM 做一次"对话摘要 → 提取关键事实 → 写入持久记忆"。不需要 embedding,纯 LLM 调用。
|
||||
|
||||
2. 夜间记忆整合(Auto Dream)
|
||||
|
||||
每隔 24 小时 + 累计 5 次以上新会话,自动合并记忆、去重、更新过期信息。
|
||||
|
||||
天工可以实现: 在现有 run_scheduler_loop() 里加一个每日任务,凌晨 3 点扫描当天向量记忆,merge 相似条目、删除矛盾旧条目。
|
||||
|
||||
3. 记忆分类体系
|
||||
|
||||
Claude Code 的 4 类记忆(user / feedback / project / reference)让检索更精准:
|
||||
|
||||
┌───────────┬──────────────────────┐
|
||||
│ 类型 │ 天工对应 │
|
||||
├───────────┼──────────────────────┤
|
||||
│ user │ 用户偏好、个人信息 │
|
||||
├───────────┼──────────────────────┤
|
||||
│ feedback │ 用户反馈、纠错记录 │
|
||||
├───────────┼──────────────────────┤
|
||||
│ project │ 项目上下文、任务进展 │
|
||||
├───────────┼──────────────────────┤
|
||||
│ reference │ 外部系统链接、配置 │
|
||||
└───────────┴──────────────────────┘
|
||||
|
||||
天工可以实现: 在 VectorEntry 的 metadata 里加 memory_type 字段,写入和检索时按类型过滤,减少噪音。
|
||||
|
||||
---
|
||||
要我实现其中哪一个?推荐先做 #1 后台自动记忆提取,改动最小,效果最明显。
|
||||
|
||||
|
||||
给天工agent的记忆能力写测试用例并验证
|
||||
133
docs/Obsidian笔记体系/Projects/agent/未命名 1.md
Normal file
133
docs/Obsidian笔记体系/Projects/agent/未命名 1.md
Normal file
@@ -0,0 +1,133 @@
|
||||
现在我完全理解了系统。当前架构分析:
|
||||
|
||||
现状:只有 1 个模板 "软件公司虚拟团队"(PM/设计师/开发/测试/DevOps),硬编码在后端
|
||||
team_service.py,模板工厂方法是专用的 create_software_company_template()。
|
||||
|
||||
扩展可行性:完全可以。架构支持多模板,需要做的是:
|
||||
|
||||
1. 后端新增更多 create_*_template() 工厂方法(或重构为通用模板系统)
|
||||
2. 前端新增模板选择入口(目前只有一个"软件公司模板"按钮)
|
||||
3. 每种模板自带专属角色定义 + Agent 系统提示词
|
||||
|
||||
我可以提议以下几类团队模板:
|
||||
|
||||
┌─────┬──────────────┬──────────────────────────────────────────────────┬────────────────────────┐
|
||||
│ # │ 模板名称 │ 角色配置 │ 适用场景 │
|
||||
├─────┼──────────────┼──────────────────────────────────────────────────┼────────────────────────┤
|
||||
│ 1 │ 内容创作团队 │ 选题策划 / 内容编辑 / SEO优化 / 视觉设计 / │ 公众号、博客、品牌内容 │
|
||||
│ │ │ 账号运营 │ │
|
||||
├─────┼──────────────┼──────────────────────────────────────────────────┼────────────────────────┤
|
||||
│ 2 │ 数据分析团队 │ 数据工程师 / 分析师 / 可视化 / ML工程师 │ 数据驱动决策 │
|
||||
├─────┼──────────────┼──────────────────────────────────────────────────┼────────────────────────┤
|
||||
│ 3 │ 产品运营团队 │ 产品经理 / 运营 / 用户研究 / 增长黑客 │ 产品上线后的持续运营 │
|
||||
├─────┼──────────────┼──────────────────────────────────────────────────┼────────────────────────┤
|
||||
│ 4 │ 安全审计团队 │ 安全架构师 / 渗透测试 / 合规审计 / 安全运维 │ 安全评估、合规 │
|
||||
├─────┼──────────────┼──────────────────────────────────────────────────┼────────────────────────┤
|
||||
│ 5 │ 教育培训团队 │ 课程设计 / 主讲讲师 / 作业助教 / 教务管理 │ 在线教育 │
|
||||
└─────┴──────────────┴──────────────────────────────────────────────────┴────────────────────────┘
|
||||
|
||||
你想新增哪些模板?或者你有特定的业务场景需要定制?
|
||||
|
||||
✻ Brewed for 33s
|
||||
|
||||
❯ 还有哪些场景的模板呢
|
||||
|
||||
● 可以从更多行业和场景来扩展。按领域分类:
|
||||
|
||||
内容与媒体
|
||||
|
||||
┌────────────────┬───────────────────────────────────────────────────────────┐
|
||||
│ 模板 │ 角色 │
|
||||
├────────────────┼───────────────────────────────────────────────────────────┤
|
||||
│ 短视频创作团队 │ 编导策划 / 拍摄指导 / 剪辑后期 / 运营推广 / 数据分析 │
|
||||
├────────────────┼───────────────────────────────────────────────────────────┤
|
||||
│ 自媒体运营团队 │ 选题策划 / 内容创作 / 多平台分发 / 粉丝互动 / 商业变现 │
|
||||
├────────────────┼───────────────────────────────────────────────────────────┤
|
||||
│ 技术文档团队 │ 文档架构师 / 技术写手 / API文档专员 / 翻译审校 / 发布管理 │
|
||||
└────────────────┴───────────────────────────────────────────────────────────┘
|
||||
|
||||
营销与电商
|
||||
|
||||
┌──────────────┬──────────────────────────────────────────────────────┐
|
||||
│ 模板 │ 角色 │
|
||||
├──────────────┼──────────────────────────────────────────────────────┤
|
||||
│ 数字营销团队 │ 营销策略 / SEM/SEO / 社交媒体 / 邮件营销 / 转化优化 │
|
||||
├──────────────┼──────────────────────────────────────────────────────┤
|
||||
│ 电商运营团队 │ 店铺运营 / 商品企划 / 活动策划 / 客服主管 / 供应链 │
|
||||
├──────────────┼──────────────────────────────────────────────────────┤
|
||||
│ 品牌策划团队 │ 品牌策略 / 视觉设计 / 文案创意 / 媒介投放 / 竞品分析 │
|
||||
└──────────────┴──────────────────────────────────────────────────────┘
|
||||
|
||||
金融与投资
|
||||
|
||||
┌──────────────┬──────────────────────────────────────────────────────────┐
|
||||
│ 模板 │ 角色 │
|
||||
├──────────────┼──────────────────────────────────────────────────────────┤
|
||||
│ 投资研究团队 │ 宏观分析师 / 行业研究员 / 财务建模 / 风险评估 / 组合管理 │
|
||||
├──────────────┼──────────────────────────────────────────────────────────┤
|
||||
│ 财务顾问团队 │ 税务规划 / 预算管理 / 现金流分析 / 报表审计 / CFO顾问 │
|
||||
├──────────────┼──────────────────────────────────────────────────────────┤
|
||||
│ 风控合规团队 │ 合规审查 / 风险评估 / 内部审计 / 法务顾问 / 整改监督 │
|
||||
└──────────────┴──────────────────────────────────────────────────────────┘
|
||||
|
||||
医疗与健康
|
||||
|
||||
┌──────────────┬──────────────────────────────────────────────────────┐
|
||||
│ 模板 │ 角色 │
|
||||
├──────────────┼──────────────────────────────────────────────────────┤
|
||||
│ 健康管理团队 │ 健康评估师 / 营养师 / 运动康复 / 心理顾问 / 慢病管理 │
|
||||
├──────────────┼──────────────────────────────────────────────────────┤
|
||||
│ 医疗咨询团队 │ 分诊导诊 / 病历分析 / 用药审核 / 随访管理 / 保险对接 │
|
||||
└──────────────┴──────────────────────────────────────────────────────┘
|
||||
|
||||
教育与科研
|
||||
|
||||
┌──────────────┬──────────────────────────────────────────────────────┐
|
||||
│ 模板 │ 角色 │
|
||||
├──────────────┼──────────────────────────────────────────────────────┤
|
||||
│ 在线课程团队 │ 课程设计 / 内容研发 / 教学实施 / 学习评估 / 平台运维 │
|
||||
├──────────────┼──────────────────────────────────────────────────────┤
|
||||
│ 学术研究团队 │ 文献综述 / 实验设计 / 数据分析 / 论文撰写 / 同行评审 │
|
||||
├──────────────┼──────────────────────────────────────────────────────┤
|
||||
│ 企业培训团队 │ 需求调研 / 课程开发 / 培训讲师 / 效果评估 / 认证管理 │
|
||||
└──────────────┴──────────────────────────────────────────────────────┘
|
||||
|
||||
工程与技术
|
||||
|
||||
┌──────────────┬──────────────────────────────────────────────────────────┐
|
||||
│ 模板 │ 角色 │
|
||||
├──────────────┼──────────────────────────────────────────────────────────┤
|
||||
│ AI 产品团队 │ AI产品经理 / 算法工程师 / 数据工程师 / ML运维 / 伦理审查 │
|
||||
├──────────────┼──────────────────────────────────────────────────────────┤
|
||||
│ 游戏开发团队 │ 游戏策划 / 美术设计 / 程序开发 / 音效制作 / QA测试 │
|
||||
├──────────────┼──────────────────────────────────────────────────────────┤
|
||||
│ 移动应用团队 │ iOS开发 / Android开发 / 后端开发 / UI设计 / 测试发布 │
|
||||
└──────────────┴──────────────────────────────────────────────────────────┘
|
||||
|
||||
企业服务
|
||||
|
||||
┌────────────────┬──────────────────────────────────────────────────────┐
|
||||
│ 模板 │ 角色 │
|
||||
├────────────────┼──────────────────────────────────────────────────────┤
|
||||
│ HR 招聘团队 │ 招聘专员 / 简历筛选 / 面试评估 / 薪酬谈判 / 入职管理 │
|
||||
├────────────────┼──────────────────────────────────────────────────────┤
|
||||
│ 客户成功团队 │ 客户经理 / 技术支持 / 培训顾问 / 续费管理 / 反馈分析 │
|
||||
├────────────────┼──────────────────────────────────────────────────────┤
|
||||
│ 项目管理办公室 │ 项目总监 / 进度管控 / 资源协调 / 质量管理 / 沟通汇报 │
|
||||
├────────────────┼──────────────────────────────────────────────────────┤
|
||||
│ 法务顾问团队 │ 合同审查 / 知识产权 / 劳动合规 / 诉讼支持 / 隐私合规 │
|
||||
└────────────────┴──────────────────────────────────────────────────────┘
|
||||
|
||||
生活与房产
|
||||
|
||||
┌──────────────┬──────────────────────────────────────────────────────┐
|
||||
│ 模板 │ 角色 │
|
||||
├──────────────┼──────────────────────────────────────────────────────┤
|
||||
│ 装修设计团队 │ 空间规划 / 硬装设计 / 软装搭配 / 预算管理 / 施工监理 │
|
||||
├──────────────┼──────────────────────────────────────────────────────┤
|
||||
│ 活动策划团队 │ 创意策划 / 场地统筹 / 物料设计 / 执行督导 / 应急预案 │
|
||||
├──────────────┼──────────────────────────────────────────────────────┤
|
||||
│ 旅游定制团队 │ 行程规划 / 交通住宿 / 景点导览 / 美食推荐 / 预算优化 │
|
||||
└──────────────┴──────────────────────────────────────────────────────┘
|
||||
|
||||
你比较感兴趣哪些场景?或者直接告诉我你想优先实现哪几个,我来规划实现方案。
|
||||
@@ -1,126 +0,0 @@
|
||||
● 高优先级安全改进状态分析
|
||||
|
||||
基于对 aitsc 项目的检查,以下是高优先级安全改进的完成情况:
|
||||
|
||||
✅ 已完成的安全改进
|
||||
|
||||
新的配置系统已实现
|
||||
- 创建了 config/ 目录,包含 base.py、development.py、production.py、testing.py
|
||||
- 根目录和 src/flask_prompt_master/config.py 都添加了弃用警告
|
||||
- 新配置系统强制从环境变量读取敏感信息,否则抛出异常
|
||||
密码哈希算法已升级
|
||||
- auth_service.py 中已使用 bcrypt 哈希算法
|
||||
- 支持向后兼容 MD5(用于现有用户)
|
||||
- 新用户注册使用 bcrypt,安全性达标
|
||||
生产环境 CORS 配置已加固
|
||||
- production.py 中强制要求设置 CORS_ORIGINS 环境变量
|
||||
- 生产环境不能使用 ['*'],必须指定具体域名
|
||||
|
||||
⚠️ 仍需解决的安全问题
|
||||
|
||||
.env 文件中仍包含硬编码敏感信息
|
||||
- 数据库密码:!Rjb12191
|
||||
- DeepSeek API 密钥:sk-fdf7cc1c73504e628ec0119b7e11b8cc
|
||||
- 微信小程序密钥:89aa97dda3c1347c6ae3d6ab4627f1f4
|
||||
源代码中仍有多处硬编码
|
||||
- promptsTemplates.py 中硬编码数据库密码
|
||||
- 多个路由文件(如 android_tools.py)硬编码 API 密钥作为后备值
|
||||
- 多个部署脚本和文档文件包含敏感信息
|
||||
.env 文件管理问题
|
||||
- .env 文件不应提交到版本控制
|
||||
- 应使用 .env.example 作为模板,要求用户手动创建 .env
|
||||
|
||||
🔍 发现的具体文件
|
||||
|
||||
通过搜索发现的硬编码敏感信息文件:
|
||||
- .env 文件(包含完整的敏感信息)
|
||||
- src/flask_prompt_master/promptsTemplates.py(第4098、4108行有数据库密码)
|
||||
- 多个路由文件使用 os.environ.get('LLM_API_KEY') or 'sk-fdf7cc1c73504e628ec0119b7e11b8cc' 模式
|
||||
- 大量文档和部署脚本文件包含敏感信息
|
||||
|
||||
📋 建议的下一步修复
|
||||
|
||||
立即移除 .env 中的硬编码信息
|
||||
- 使用占位符替换真实密钥
|
||||
- 添加更详细的说明要求用户从控制台获取真实密钥
|
||||
清理源代码中的硬编码后备值
|
||||
- 移除所有 or 'hardcoded-key' 模式的后备值
|
||||
- 如果环境变量未设置,应抛出自定义异常而非使用默认值
|
||||
加强 .env 文件管理
|
||||
- 将 .env 添加到 .gitignore
|
||||
- 完善 .env.example 说明文档
|
||||
|
||||
虽然配置架构已改进,但只要源代码和 .env 文件中还存在硬编码敏感信息,安全风险就仍然存在。
|
||||
|
||||
● 根据分析,aitsc项目的高优先级安全改进已经部分完成。具体状态如下:
|
||||
|
||||
✅ 已解决的改进
|
||||
|
||||
配置系统重构
|
||||
- 新的配置系统位于 config/ 目录,支持多环境配置
|
||||
- 根目录 config.py 和 src/flask_prompt_master/config.py 已添加弃用警告
|
||||
- 强制从环境变量读取敏感信息,未设置时会抛出 ValueError
|
||||
密码哈希安全性升级
|
||||
- auth_service.py 已实现 bcrypt 哈希算法
|
||||
- 支持向后兼容 MD5(旧用户)
|
||||
- 新用户默认使用 bcrypt,盐值标识为 'bcrypt'
|
||||
生产环境 CORS 配置加固
|
||||
- config/production.py 中强制要求设置 CORS_ORIGINS 环境变量
|
||||
- 未设置或为空时会抛出异常
|
||||
|
||||
⚠️ 仍需解决的严重问题
|
||||
|
||||
1. 源代码中的硬编码敏感信息
|
||||
|
||||
多个Python文件中仍存在硬编码的敏感信息:
|
||||
|
||||
数据库密码 (!Rjb12191):
|
||||
- src/flask_prompt_master/promptsTemplates.py (4098行)
|
||||
- 至少10个其他脚本文件(部署、初始化脚本)
|
||||
DeepSeek API 密钥 (sk-fdf7cc1c73504e628ec0119b7e11b8cc):
|
||||
- src/flask_prompt_master/routes/android_tools.py (17行)
|
||||
- src/flask_prompt_master/routes/expert_generate_2.py
|
||||
- src/flask_prompt_master/routes/expert_generate_3.py
|
||||
- src/flask_prompt_master/routes/meal_planning.py (仍有硬编码)
|
||||
- 多个其他路由文件
|
||||
微信小程序密钥 (89aa97dda3c1347c6ae3d6ab4627f1f4):
|
||||
- 在 .env 文件和其他文档中
|
||||
|
||||
2. .env 文件中的硬编码
|
||||
|
||||
.env 文件仍然包含:
|
||||
- DATABASE_URL 中的数据库密码
|
||||
- LLM_API_KEY (DeepSeek API密钥)
|
||||
- WX_APPID 和 WX_SECRET (微信小程序凭据)
|
||||
|
||||
风险:.env 文件可能被意外提交到版本控制,导致敏感信息泄露。
|
||||
|
||||
3. 配置文件重复问题
|
||||
|
||||
虽然有了新的 config/ 系统,但两个旧配置文件的弃用警告仍不够彻底:
|
||||
- config.py (根目录)
|
||||
- src/flask_prompt_master/config.py
|
||||
|
||||
🔍 遗留的中优先级问题
|
||||
|
||||
大型数据文件 promptsTemplates.py (144KB)
|
||||
- 仍包含硬编码的数据库连接信息
|
||||
- 应考虑迁移到数据库存储
|
||||
API密钥使用不一致
|
||||
- 有些路由文件使用 os.environ.get('LLM_API_KEY') or '硬编码密钥' 模式
|
||||
- 应统一为强制从环境变量读取,去掉 fallback 硬编码
|
||||
|
||||
📋 建议的后续行动
|
||||
|
||||
立即行动(高优先级):
|
||||
1. 清理所有源代码中的硬编码敏感信息
|
||||
2. 将 .env 中的真实凭据替换为占位符
|
||||
3. 确保 .env 在 .gitignore 中,只提交 .env.example
|
||||
4. 更新所有路由文件,移除 API 密钥的硬编码 fallback
|
||||
|
||||
近期行动(中优先级):
|
||||
1. 将 promptsTemplates.py 的大数据迁移到数据库
|
||||
2. 完全移除旧的配置文件或重定向到新系统
|
||||
3. 统一 API 密钥获取逻辑
|
||||
|
||||
总结:配置架构已改进,但代码层面仍有严重的安全漏洞需要立即修复,否则新的配置系统无法提供实际安全保护。
|
||||
@@ -1,227 +0,0 @@
|
||||
● 根据分析,promptsTemplates.py 的数据迁移确实是一个重要的中优先级改进。以下是详细的迁移方案和实施步骤:
|
||||
|
||||
📊 当前问题分析
|
||||
|
||||
promptsTemplates.py 的主要问题:
|
||||
|
||||
1. 安全漏洞:包含硬编码数据库密码(腾讯云:!Rjb12191,本地:123456)
|
||||
2. 数据与代码混合:144KB 文件中约 4000 行是模板数据
|
||||
3. 不规范的数据库连接:使用 pymysql 直接连接,而不是项目的 SQLAlchemy ORM
|
||||
4. 冗余功能:既是数据存储又是初始化脚本
|
||||
|
||||
✅ 有利条件:
|
||||
|
||||
- 应用已通过 PromptTemplate.query 从数据库获取模板
|
||||
- PromptTemplate 模型已在 models.py 中定义
|
||||
- 项目已有完整的数据库迁移系统 (migrations/ 目录)
|
||||
- 新的配置系统已就位
|
||||
|
||||
🎯 迁移实施计划
|
||||
|
||||
阶段一:数据提取和备份(30分钟)
|
||||
|
||||
1. 提取模板数据到 JSON
|
||||
# 创建数据目录
|
||||
mkdir -p /d/aaa/aitsc/data
|
||||
|
||||
# 手动或编写脚本提取 templates 列表到 JSON
|
||||
# 将生成:data/prompt_templates.json
|
||||
|
||||
2. 备份现有数据库中的模板数据
|
||||
# 创建备份脚本
|
||||
from src.flask_prompt_master import create_app, db
|
||||
from src.flask_prompt_master.models.models import PromptTemplate
|
||||
import json
|
||||
|
||||
app = create_app()
|
||||
with app.app_context():
|
||||
templates = PromptTemplate.query.all()
|
||||
data = [{
|
||||
'name': t.name,
|
||||
'description': t.description,
|
||||
'category': t.category,
|
||||
'industry': t.industry,
|
||||
'profession': t.profession,
|
||||
'sub_category': t.sub_category,
|
||||
'system_prompt': t.system_prompt,
|
||||
'is_default': t.is_default
|
||||
} for t in templates]
|
||||
|
||||
with open('data/existing_templates_backup.json', 'w', encoding='utf-8') as f:
|
||||
json.dump(data, f, ensure_ascii=False, indent=2)
|
||||
|
||||
阶段二:创建安全初始化系统(45分钟)
|
||||
|
||||
1. 创建新的初始化脚本
|
||||
# scripts/init_prompt_templates.py
|
||||
import json
|
||||
import os
|
||||
from dotenv import load_dotenv
|
||||
from src.flask_prompt_master import create_app, db
|
||||
from src.flask_prompt_master.models.models import PromptTemplate
|
||||
|
||||
load_dotenv()
|
||||
|
||||
def init_from_json(json_file='data/prompt_templates.json'):
|
||||
"""从JSON文件安全初始化模板数据"""
|
||||
app = create_app()
|
||||
with app.app_context():
|
||||
# 检查数据库连接
|
||||
if not db.session.bind:
|
||||
raise ValueError("数据库连接未初始化")
|
||||
|
||||
# 加载模板数据
|
||||
with open(json_file, 'r', encoding='utf-8') as f:
|
||||
templates_data = json.load(f)
|
||||
|
||||
added_count = 0
|
||||
skipped_count = 0
|
||||
|
||||
for template_data in templates_data:
|
||||
# 检查是否已存在同名模板
|
||||
existing = PromptTemplate.query.filter_by(
|
||||
name=template_data['name']
|
||||
).first()
|
||||
|
||||
if not existing:
|
||||
template = PromptTemplate(**template_data)
|
||||
db.session.add(template)
|
||||
added_count += 1
|
||||
else:
|
||||
skipped_count += 1
|
||||
|
||||
try:
|
||||
db.session.commit()
|
||||
print(f"✅ 初始化完成:新增 {added_count} 条,跳过 {skipped_count} 条")
|
||||
return True
|
||||
except Exception as e:
|
||||
db.session.rollback()
|
||||
print(f"❌ 初始化失败:{e}")
|
||||
return False
|
||||
|
||||
if __name__ == '__main__':
|
||||
init_from_json()
|
||||
|
||||
2. 更新 promptsTemplates.py(保留向后兼容)
|
||||
# 在 promptsTemplates.py 顶部添加
|
||||
import warnings
|
||||
warnings.warn(
|
||||
"promptsTemplates.py 已弃用,请使用 scripts/init_prompt_templates.py",
|
||||
DeprecationWarning
|
||||
)
|
||||
|
||||
# 修改 init_db 函数,移除硬编码密码,调用新的初始化脚本
|
||||
def init_db(database_type='local'):
|
||||
"""向后兼容的初始化函数(重定向到新系统)"""
|
||||
print("⚠️ 此函数已弃用,请使用新的初始化系统")
|
||||
print("💡 运行: python scripts/init_prompt_templates.py")
|
||||
# 或者直接调用新脚本
|
||||
from scripts.init_prompt_templates import init_from_json
|
||||
return init_from_json()
|
||||
|
||||
阶段三:环境配置和安全加固(30分钟)
|
||||
|
||||
1. 更新 .env.example 文件
|
||||
# 移除真实凭据,使用占位符
|
||||
DATABASE_URL=mysql+pymysql://username:password@host:port/database_name?charset=utf8mb4
|
||||
LLM_API_KEY=sk-your-api-key-here
|
||||
WX_SECRET=your-wx-secret-here
|
||||
|
||||
2. 确保 .env 不被提交
|
||||
# 检查 .gitignore
|
||||
echo ".env" >> /d/aaa/aitsc/.gitignore
|
||||
echo ".env.*" >> /d/aaa/aitsc/.gitignore
|
||||
echo "!*.example" >> /d/aaa/aitsc/.gitignore
|
||||
|
||||
3. 创建部署说明文档
|
||||
# 模板数据初始化说明
|
||||
|
||||
## 新系统使用
|
||||
4. 复制环境变量模板:`cp .env.example .env`
|
||||
5. 编辑 .env 文件,填入真实凭据
|
||||
6. 初始化模板数据:`python scripts/init_prompt_templates.py`
|
||||
|
||||
## 旧系统兼容
|
||||
旧命令 `python src/flask_prompt_master/promptsTemplates.py [local|tencent]`
|
||||
将自动重定向到新系统。
|
||||
|
||||
阶段四:测试和验证(30分钟)
|
||||
|
||||
7. 测试脚本
|
||||
# tests/test_template_init.py
|
||||
import pytest
|
||||
from scripts.init_prompt_templates import init_from_json
|
||||
from src.flask_prompt_master.models.models import PromptTemplate
|
||||
|
||||
def test_template_count():
|
||||
"""测试模板数量是否正确"""
|
||||
init_from_json('tests/test_templates.json')
|
||||
count = PromptTemplate.query.count()
|
||||
assert count > 0
|
||||
|
||||
def test_no_duplicates():
|
||||
"""测试不会创建重复模板"""
|
||||
init_from_json('tests/test_templates.json')
|
||||
count1 = PromptTemplate.query.count()
|
||||
init_from_json('tests/test_templates.json') # 再次运行
|
||||
count2 = PromptTemplate.query.count()
|
||||
assert count1 == count2 # 数量应不变
|
||||
|
||||
📅 实施时间表
|
||||
|
||||
┌──────┬────────────────┬──────────┬────────┐
|
||||
│ 阶段 │ 任务 │ 预计时间 │ 优先级 │
|
||||
├──────┼────────────────┼──────────┼────────┤
|
||||
│ 1 │ 数据提取和备份 │ 30分钟 │ 高 │
|
||||
├──────┼────────────────┼──────────┼────────┤
|
||||
│ 2 │ 安全初始化脚本 │ 45分钟 │ 高 │
|
||||
├──────┼────────────────┼──────────┼────────┤
|
||||
│ 3 │ 环境配置加固 │ 30分钟 │ 高 │
|
||||
├──────┼────────────────┼──────────┼────────┤
|
||||
│ 4 │ 测试验证 │ 30分钟 │ 中 │
|
||||
├──────┼────────────────┼──────────┼────────┤
|
||||
│ 5 │ 文档更新 │ 15分钟 │ 中 │
|
||||
├──────┼────────────────┼──────────┼────────┤
|
||||
│ 总计 │ │ 2.5小时 │ │
|
||||
└──────┴────────────────┴──────────┴────────┘
|
||||
|
||||
🔧 迁移后的架构
|
||||
|
||||
aitsc/
|
||||
├── data/ # 数据文件目录
|
||||
│ ├── prompt_templates.json # 模板数据(JSON格式)
|
||||
│ └── existing_templates_backup.json
|
||||
├── scripts/ # 管理脚本
|
||||
│ ├── init_prompt_templates.py # 安全初始化脚本
|
||||
│ └── backup_templates.py
|
||||
├── src/flask_prompt_master/
|
||||
│ └── promptsTemplates.py # 已弃用(保留兼容)
|
||||
└── .env.example # 环境变量模板
|
||||
|
||||
⚠️ 风险和缓解措施
|
||||
|
||||
风险: 生产数据库已有模板数据
|
||||
- 缓解: 初始化脚本检查重复,不会覆盖现有数据
|
||||
风险: 依赖旧初始化流程的脚本
|
||||
- 缓解: 保留 promptsTemplates.py 的兼容性包装
|
||||
风险: JSON 文件可能过大
|
||||
- 缓解: 可考虑分多个 JSON 文件或使用数据库种子
|
||||
|
||||
📝 下一步建议
|
||||
|
||||
立即行动:
|
||||
8. 先备份现有数据库中的模板数据
|
||||
9. 提取当前 promptsTemplates.py 中的模板到 JSON
|
||||
10. 创建安全初始化脚本
|
||||
|
||||
验证后:
|
||||
11. 在测试环境运行新系统
|
||||
12. 更新部署文档
|
||||
13. 全面替换旧系统
|
||||
|
||||
您希望我:
|
||||
14. 立即开始实施这个迁移方案?
|
||||
15. 先处理更高优先级的硬编码安全问题?
|
||||
16. 还是您有其他特定的要求?
|
||||
|
||||
迁移完成后,项目的安全性、可维护性和部署便利性将显著提升。
|
||||
@@ -1,296 +0,0 @@
|
||||
Flask Prompt Master 项目重构方案
|
||||
|
||||
上下文和目标
|
||||
|
||||
项目概况:D:/aaa/aitsc 是一个 Flask 应用程序,提供多种 AI 驱动的功能(提示词模板、饭菜规划、旅行攻略、会议
|
||||
纪要、简历优化等)。项目采用蓝图架构,但随着功能增加出现了代码质量问题。
|
||||
|
||||
当前问题:
|
||||
1. 安全漏洞:多个路由文件中存在硬编码的 API 密钥和数据库密码
|
||||
2. 代码结构:routes.py 文件过大(1300+ 行),职责不单一
|
||||
3. API 设计不一致:多种响应格式和错误处理方式
|
||||
4. 认证系统碎片化:同时使用会话、令牌和微信认证
|
||||
5. 配置管理混乱:新旧配置系统并存
|
||||
6. 代码重复:相似功能间存在重复代码
|
||||
|
||||
重构目标:
|
||||
1. 消除安全漏洞,移除所有硬编码的敏感信息
|
||||
2. 提高代码可维护性,优化项目结构
|
||||
3. 标准化 API 设计和错误处理
|
||||
4. 集中化认证和授权系统
|
||||
5. 实现关注点分离(业务逻辑与表现层分离)
|
||||
|
||||
重构方案概述
|
||||
|
||||
目标架构
|
||||
|
||||
flask_prompt_master/
|
||||
├── app/ # 应用层(API/Web 路由)
|
||||
├── core/ # 核心业务逻辑(服务层)
|
||||
├── infrastructure/ # 基础设施(配置、数据库、外部服务)
|
||||
├── shared/ # 共享组件(工具类、数据模型、常量)
|
||||
├── tests/ # 测试套件
|
||||
└── docs/ # 文档
|
||||
|
||||
核心改进
|
||||
|
||||
6. 安全加固:环境变量管理,JWT 认证,安全头部
|
||||
7. API 标准化:统一响应格式,版本控制,OpenAPI 文档
|
||||
8. 代码重组:服务层提取,仓库模式,依赖注入
|
||||
9. 质量提升:测试覆盖率,CI/CD,代码质量工具
|
||||
|
||||
详细实施计划
|
||||
|
||||
阶段 1:安全加固与基础建设(第 1-2 周)
|
||||
|
||||
任务 1.1:消除硬编码敏感信息
|
||||
|
||||
- 优先级:高
|
||||
- 文件:
|
||||
- flask_prompt_master/routes.py:115 - 移除硬编码数据库密码
|
||||
- config.py - 移除已弃用的硬编码配置
|
||||
- 所有包含 sk-fdf7cc1c73504e628ec0119b7e11b8cc 的文件
|
||||
- 方法:
|
||||
a. 创建 .env.template 文件,列出所有需要的环境变量
|
||||
b. 更新配置系统,从环境变量读取所有敏感信息
|
||||
c. 添加配置验证,确保关键配置在启动时已设置
|
||||
|
||||
任务 1.2:实现统一认证中间件
|
||||
|
||||
- 优先级:高
|
||||
- 方法:
|
||||
a. 创建 auth/middleware.py 实现 JWT 认证中间件
|
||||
b. 统一所有 API 的认证方式,逐步替换现有的多种认证系统
|
||||
c. 添加角色和权限管理系统
|
||||
d. 实现刷新令牌机制
|
||||
|
||||
任务 1.3:添加安全头部和请求验证
|
||||
|
||||
- 优先级:中
|
||||
- 方法:
|
||||
a. 实现安全中间件,添加 CSP、HSTS、XSS 防护等头部
|
||||
b. 使用 Pydantic 创建请求数据验证模型
|
||||
c. 实现全局请求验证中间件
|
||||
|
||||
阶段 2:API 标准化与文档(第 3-4 周)
|
||||
|
||||
任务 2.1:创建标准 API 响应格式
|
||||
|
||||
- 优先级:高
|
||||
- 方法:
|
||||
a. 创建 shared/api/responses.py 定义标准响应类
|
||||
b. 实现成功响应:{success: true, data: {...}, meta: {...}}
|
||||
c. 实现错误响应:{success: false, error: {...}, error_code: string}
|
||||
d. 创建响应工具函数,统一所有路由的响应格式
|
||||
|
||||
任务 2.2:实现 API 版本控制
|
||||
|
||||
- 优先级:中
|
||||
- 方法:
|
||||
a. 创建 /api/v1/ 命名空间,所有新 API 使用此版本
|
||||
b. 保留现有 /api/ 路由作为 v0 版本,逐步迁移
|
||||
c. 实现版本路由中间件,支持通过 URL 或头部指定版本
|
||||
d. 添加 API 弃用警告机制
|
||||
|
||||
任务 2.3:添加 OpenAPI 文档
|
||||
|
||||
- 优先级:中
|
||||
- 方法:
|
||||
a. 使用 Flask-Swagger 或 FastAPI-style 注解
|
||||
b. 自动生成 API 文档,支持在线测试
|
||||
c. 添加 API 使用示例和错误代码说明
|
||||
|
||||
阶段 3:代码重组与服务层提取(第 5-6 周)
|
||||
|
||||
任务 3.1:分解大型路由文件
|
||||
|
||||
- 优先级:高
|
||||
- 文件:flask_prompt_master/routes.py(1300+ 行)
|
||||
- 方法:
|
||||
a. 按功能模块拆分:
|
||||
- routes/prompt_routes.py - 提示词相关路由
|
||||
- routes/auth_routes.py - 认证相关路由
|
||||
- routes/history_routes.py - 历史记录路由
|
||||
- routes/feature_routes.py - 各 AI 功能路由
|
||||
b. 每个文件不超过 300 行,保持单一职责
|
||||
c. 使用蓝图组织相关路由
|
||||
|
||||
任务 3.2:提取业务逻辑到服务层
|
||||
|
||||
- 优先级:高
|
||||
- 方法:
|
||||
a. 创建 services/ 目录,按领域划分服务类
|
||||
b. 将路由中的业务逻辑移动到对应服务类
|
||||
c. 服务类负责:业务规则验证、外部 API 调用、复杂数据处理
|
||||
d. 路由只负责:请求解析、响应格式化、错误处理
|
||||
|
||||
任务 3.3:实现仓库模式
|
||||
|
||||
- 优先级:中
|
||||
- 方法:
|
||||
a. 创建 repositories/ 目录,按实体划分仓库类
|
||||
b. 仓库类封装数据库操作,提供高层抽象接口
|
||||
c. 路由和服务通过仓库访问数据,不直接使用 SQLAlchemy
|
||||
d. 便于单元测试和数据库切换
|
||||
|
||||
阶段 4:测试与质量提升(第 7-8 周)
|
||||
|
||||
任务 4.1:提升测试覆盖率
|
||||
|
||||
- 优先级:中
|
||||
- 方法:
|
||||
a. 实现单元测试:服务层、仓库层、工具类
|
||||
b. 实现集成测试:API 端点测试
|
||||
c. 实现端到端测试:关键用户流程测试
|
||||
d. 目标:测试覆盖率从 ~40% 提升到 80%+
|
||||
|
||||
任务 4.2:实现 CI/CD 流水线
|
||||
|
||||
- 优先级:中
|
||||
- 方法:
|
||||
a. 设置 GitHub Actions 或 GitLab CI
|
||||
b. 自动化:代码检查、测试、构建、部署
|
||||
c. 添加质量门禁:测试覆盖率、代码复杂度、安全扫描
|
||||
|
||||
任务 4.3:代码质量工具集成
|
||||
|
||||
- 优先级:低
|
||||
- 方法:
|
||||
a. 集成 black、isort、flake8 代码格式化
|
||||
b. 添加 mypy 类型检查
|
||||
c. 集成 pre-commit hooks 自动执行代码检查
|
||||
|
||||
阶段 5:部署优化与文档(第 9-10 周)
|
||||
|
||||
任务 5.1:优化 Docker 部署
|
||||
|
||||
- 优先级:低
|
||||
- 方法:
|
||||
a. 优化 Dockerfile,减少镜像大小
|
||||
b. 实现多阶段构建
|
||||
c. 添加健康检查端点
|
||||
d. 优化生产环境配置
|
||||
|
||||
任务 5.2:实现监控和可观测性
|
||||
|
||||
- 优先级:中
|
||||
- 方法:
|
||||
a. 添加 Prometheus 指标收集
|
||||
b. 实现结构化日志记录
|
||||
c. 添加错误追踪和告警
|
||||
d. 实现性能监控
|
||||
|
||||
任务 5.3:完善文档
|
||||
|
||||
- 优先级:低
|
||||
- 方法:
|
||||
a. 架构设计文档
|
||||
b. API 使用文档
|
||||
c. 部署和维护指南
|
||||
d. 开发环境设置指南
|
||||
|
||||
风险缓解策略
|
||||
|
||||
技术风险
|
||||
|
||||
数据库迁移风险:
|
||||
- 使用 Alembic 生成迁移脚本
|
||||
- 在测试环境充分验证
|
||||
- 准备回滚方案
|
||||
API 兼容性风险:
|
||||
- 使用功能开关控制新功能
|
||||
- 保持向后兼容性至少一个版本周期
|
||||
- 提供详细的迁移指南
|
||||
性能回归风险:
|
||||
- 重构前后进行性能基准测试
|
||||
- 实施监控和告警
|
||||
- 准备快速回滚机制
|
||||
|
||||
实施风险
|
||||
|
||||
团队知识差距:
|
||||
- 结对编程和代码审查
|
||||
- 详细的架构文档
|
||||
- 定期知识分享会议
|
||||
时间安排风险:
|
||||
- 采用敏捷方法,每两周评估进度
|
||||
- 优先处理高价值任务
|
||||
- 保持灵活性,根据进展调整计划
|
||||
|
||||
关键文件路径
|
||||
|
||||
需要立即处理的安全问题
|
||||
|
||||
1. D:/aaa/aitsc/src/flask_prompt_master/routes/routes.py:115 - 硬编码数据库密码
|
||||
2. D:/aaa/aitsc/config.py - 已弃用的硬编码配置
|
||||
3. 所有包含硬编码 API 密钥的文件(搜索 sk-fdf7cc1c73504e628ec0119b7e11b8cc)
|
||||
|
||||
大型文件需要拆分
|
||||
|
||||
4. D:/aaa/aitsc/src/flask_prompt_master/routes/routes.py(1300+ 行)
|
||||
5. D:/aaa/aitsc/src/flask_prompt_master/models/models.py(500+ 行)
|
||||
|
||||
新目录结构
|
||||
|
||||
6. src/flask_prompt_master/services/ - 服务层
|
||||
7. src/flask_prompt_master/repositories/ - 仓库层
|
||||
8. src/flask_prompt_master/shared/ - 共享组件
|
||||
9. src/flask_prompt_master/api/ - API 相关组件
|
||||
|
||||
验证和测试策略
|
||||
|
||||
验证步骤
|
||||
|
||||
10. 安全验证:确保无硬编码敏感信息,所有配置通过环境变量管理
|
||||
11. 功能验证:所有现有功能测试通过,API 响应格式一致
|
||||
12. 性能验证:关键 API 端点响应时间无显著下降
|
||||
13. 部署验证:生产环境部署成功,监控系统正常运行
|
||||
|
||||
测试计划
|
||||
|
||||
14. 单元测试:服务层、仓库层、工具类
|
||||
15. 集成测试:API 端点、数据库操作
|
||||
16. 端到端测试:关键用户流程(注册、登录、使用功能)
|
||||
17. 性能测试:负载测试、压力测试
|
||||
|
||||
成功指标
|
||||
|
||||
量化指标
|
||||
|
||||
18. 零硬编码敏感信息
|
||||
19. 测试覆盖率 80%+
|
||||
20. 代码复杂度降低 30%
|
||||
21. API 平均响应时间改善 20%
|
||||
22. 缺陷修复时间减少 50%
|
||||
|
||||
质化指标
|
||||
|
||||
23. 新开发者上手时间减少 50%
|
||||
24. 完整的架构和 API 文档
|
||||
25. 开发者满意度提升
|
||||
26. 部署信心增强
|
||||
|
||||
资源需求
|
||||
|
||||
团队配置
|
||||
|
||||
- 2-3 名高级开发工程师
|
||||
- 兼职 QA 工程师
|
||||
- 技术负责人(架构决策和代码审查)
|
||||
|
||||
时间安排
|
||||
|
||||
- 总时长:10 周(2.5 个月)
|
||||
- 开发工作量:约 400-500 人时
|
||||
- 每周进度评审和调整
|
||||
|
||||
工具和环境
|
||||
|
||||
- CI/CD 流水线
|
||||
- 测试环境(开发、测试、预生产)
|
||||
- 监控和告警系统
|
||||
- 文档管理系统
|
||||
|
||||
---
|
||||
注意:本重构计划采用渐进式方法,每个阶段都有明确的可交付成果和验证标准。建议从阶段 1
|
||||
开始,确保安全基础稳固后再进行架构优化。
|
||||
@@ -1,134 +0,0 @@
|
||||
● 基于对 http://127.0.0.1:5002/ 页面的分析,这是一个设计良好的AI提示词模板应用,采用深蓝色科技感主题,具备现
|
||||
代化UI和响应式设计。从用户体验角度,以下是可以改进的地方:
|
||||
|
||||
当前优点
|
||||
|
||||
1. 视觉设计优秀:深蓝色科技主题、CSS变量、渐变效果、阴影层次
|
||||
2. 响应式完善:移动端适配良好,侧边栏在小屏幕下可切换
|
||||
3. 功能丰富:筛选、收藏、复制、删除、使用统计一应俱全
|
||||
4. 交互细节:悬停效果、平滑滚动、键盘导航支持
|
||||
5. 性能考虑:图片懒加载、防抖搜索
|
||||
|
||||
用户体验改进建议
|
||||
|
||||
6. 首屏信息密度与引导
|
||||
|
||||
- 问题:页面加载后,用户不清楚主要操作是什么
|
||||
- 改进:
|
||||
- 在模板网格上方添加简短引导语:"选择模板开始生成专业提示词"
|
||||
- 为首次访问用户添加引导遮罩或提示泡泡
|
||||
- 在空白筛选区域增加"试试选择行业和职业来筛选模板"
|
||||
|
||||
2. 筛选系统优化
|
||||
|
||||
- 当前问题:
|
||||
- 三个下拉筛选器(行业、职业、领域)选项过多(每个50+选项)
|
||||
- 没有搜索筛选器功能
|
||||
- 筛选状态不直观
|
||||
- 改进:
|
||||
- 为下拉筛选添加搜索框,支持输入筛选
|
||||
- 显示当前应用的筛选条件(如:"行业: 互联网 | 职业: 开发工程师")
|
||||
- 添加"清除所有筛选"按钮
|
||||
- 考虑将部分筛选改为标签式选择(热门行业/职业)
|
||||
|
||||
3. 模板卡片信息展示
|
||||
|
||||
- 当前问题:
|
||||
- 部分模板卡片行业/职业/领域信息为空
|
||||
- 使用统计(0次使用)对用户决策价值有限
|
||||
- 模板难度级别(初级)缺乏解释
|
||||
- 改进:
|
||||
- 隐藏空的信息字段
|
||||
- 将"使用次数"改为"热度"或添加"推荐"标签
|
||||
- 为难度级别添加工具提示:"初级:适合初学者"
|
||||
- 增加模板预览功能(鼠标悬停显示摘要)
|
||||
|
||||
4. 操作流程优化
|
||||
|
||||
- 当前问题:
|
||||
- 需要先选择模板,然后输入文本,再生成提示词
|
||||
- 操作路径不够直观
|
||||
- 改进:
|
||||
- 将输入区域放在更显眼位置(模板网格上方或左侧)
|
||||
- 实现"选择即生成"模式:选择模板后自动生成示例提示词
|
||||
- 添加"快速开始"区域,推荐3-5个最常用模板
|
||||
|
||||
5. 移动端体验提升
|
||||
|
||||
- 当前问题:
|
||||
- 侧边栏筛选在小屏幕上操作不便
|
||||
- 模板卡片在手机上信息显示拥挤
|
||||
- 改进:
|
||||
- 将筛选改为底部抽屉式,更方便单手操作
|
||||
- 简化移动端模板卡片,隐藏次要信息
|
||||
- 优化触控目标大小(按钮至少44×44px)
|
||||
|
||||
6. 搜索与发现
|
||||
|
||||
- 当前问题:页面似乎缺少全局搜索功能
|
||||
- 改进:
|
||||
- 在导航栏添加搜索框,支持模板名称和内容搜索
|
||||
- 添加"最近使用"、"热门模板"、"新添加"等分类
|
||||
- 实现搜索建议和自动完成
|
||||
|
||||
7. 反馈与确认
|
||||
|
||||
- 当前问题:
|
||||
- 删除操作直接执行,没有确认对话框
|
||||
- 操作成功/失败反馈依赖alert()
|
||||
- 改进:
|
||||
- 重要操作(删除、清空)添加确认对话框
|
||||
- 用非模态提示(toast)替代alert(),减少干扰
|
||||
- 添加操作撤销功能(如误删除后5秒内可撤销)
|
||||
|
||||
8. 性能与加载体验
|
||||
|
||||
- 当前问题:
|
||||
- 页面6178行,CSS和JS都在一个文件中
|
||||
- 初始加载可能较慢
|
||||
- 改进:
|
||||
- 分离CSS和JS到外部文件,利用浏览器缓存
|
||||
- 实现骨架屏加载效果
|
||||
- 优先加载首屏内容,延迟加载非关键资源
|
||||
|
||||
9. 可访问性增强
|
||||
|
||||
- 当前问题:
|
||||
- 虽然支持键盘导航,但ARIA属性不完整
|
||||
- 颜色对比度可以进一步优化
|
||||
- 改进:
|
||||
- 为所有交互元素添加完整的ARIA标签
|
||||
- 确保颜色对比度满足WCAG AA标准
|
||||
- 添加跳过导航链接,方便屏幕阅读器用户
|
||||
|
||||
10. 新手引导与帮助
|
||||
|
||||
- 当前问题:缺乏使用指导和帮助文档
|
||||
- 改进:
|
||||
- 添加"如何使用"页面或引导教程
|
||||
- 在复杂功能旁添加问号图标,点击显示简短说明
|
||||
- 创建视频教程或图文指南
|
||||
|
||||
具体实施优先级
|
||||
|
||||
高优先级(立即改进):
|
||||
1. 添加筛选状态显示和清除按钮
|
||||
2. 为删除操作添加确认对话框
|
||||
3. 优化移动端筛选交互
|
||||
|
||||
中优先级(短期改进):
|
||||
4. 增加全局搜索功能
|
||||
5. 优化模板卡片信息展示
|
||||
6. 添加新手引导
|
||||
|
||||
低优先级(长期优化):
|
||||
7. 分离资源文件,优化加载性能
|
||||
8. 增强可访问性支持
|
||||
9. 创建完整的帮助系统
|
||||
|
||||
总结
|
||||
|
||||
这个应用已经有了很好的基础,主要需要优化的是用户引导、操作效率和移动端体验。最关键的改进点是让用户更快理解
|
||||
如何使用,并减少操作步骤的认知负担。
|
||||
|
||||
建议先从添加筛选状态显示和优化移动端交互开始,这两项改进成本低但用户体验提升明显。
|
||||
@@ -1,145 +0,0 @@
|
||||
当前设计的优点
|
||||
|
||||
- 现代科技感设计:深蓝色主题、渐变效果、卡片布局
|
||||
- 响应式布局:适配桌面、平板、手机
|
||||
- 功能完整:侧边栏筛选、模板卡片、搜索、用户系统
|
||||
- 交互反馈:悬停效果、过渡动画
|
||||
- 技术先进:CSS变量、Bootstrap 5、Font Awesome
|
||||
|
||||
美观方面可改进的地方
|
||||
|
||||
1. 颜色对比度与可访问性
|
||||
|
||||
- 检查文字颜色(特别是 --text-light: #64748B)在浅色背景上的对比度,确保符合WCAG 2.1 AA标准
|
||||
- 焦点状态颜色需要更明显(当前 box-shadow: 0 0 0 2px rgba(33, 150, 243, 0.2) 对比度不足)
|
||||
- 为色盲用户考虑,重要的状态指示(如成功/错误)应同时使用颜色和图标
|
||||
|
||||
2. 视觉层次与间距
|
||||
|
||||
- 虽然定义了间距变量(--spacing-unit: 0.25rem),但实际使用中不够一致
|
||||
- 标题层级可以更清晰:主标题 h1 使用频率不足
|
||||
- 卡片内边距可以优化,避免内容过于拥挤
|
||||
|
||||
3. 卡片设计优化
|
||||
|
||||
/* 建议改进 */
|
||||
.template-card {
|
||||
border-radius: var(--border-radius-lg); /* 当前 12px,可统一为 16px */
|
||||
box-shadow: var(--shadow-md); /* 当前阴影较弱 */
|
||||
transition: transform 0.2s ease, box-shadow 0.2s ease;
|
||||
}
|
||||
.template-card:hover {
|
||||
transform: translateY(-4px); /* 当前 -1px,效果不明显 */
|
||||
box-shadow: var(--shadow-lg);
|
||||
}
|
||||
|
||||
4. 图标一致性
|
||||
|
||||
- 确保所有图标大小统一(当前导航图标 1rem,用户菜单图标 1.5rem)
|
||||
- 考虑使用更一致的图标集(如全部使用 fas 或 far)
|
||||
|
||||
5. 加载与空状态
|
||||
|
||||
- 添加骨架屏加载动画
|
||||
- 设计友好的空状态界面(无搜索结果、无收藏等)
|
||||
|
||||
用户体验方面可改进的地方
|
||||
|
||||
1. 筛选器体验
|
||||
|
||||
- 问题:领域下拉菜单有101个选项,难以查找
|
||||
- 改进:添加搜索框或分组显示,或改为标签云式多选
|
||||
|
||||
2. 搜索功能
|
||||
|
||||
- 添加实时搜索反馈(显示匹配数量)
|
||||
- 搜索历史记录/热门搜索建议
|
||||
- 搜索框添加清除按钮
|
||||
|
||||
3. 键盘导航与可访问性
|
||||
|
||||
<!-- 添加ARIA属性 -->
|
||||
<div class="template-card" role="option" aria-selected="false" tabindex="0">
|
||||
- 确保所有交互元素都有清晰的焦点样式
|
||||
- 支持ESC键关闭侧边栏和模态框
|
||||
|
||||
4. 移动端优化
|
||||
|
||||
- 侧边栏抽屉可以添加手势支持(右滑关闭)
|
||||
- 底部操作栏在移动端可固定定位
|
||||
- 触摸目标大小至少44×44px(当前部分按钮较小)
|
||||
|
||||
5. 表单与交互反馈
|
||||
|
||||
- 实时验证文本区域输入(字数统计、内容质量提示)
|
||||
- 操作成功/失败 Toast 通知(替代当前 alert())
|
||||
- 防止重复提交(提交按钮禁用状态)
|
||||
|
||||
6. 性能优化
|
||||
|
||||
- 大量模板卡片(未来可能增加)考虑虚拟滚动
|
||||
- 图片/图标懒加载
|
||||
- 减少首屏CSS(将非关键CSS异步加载)
|
||||
|
||||
7. 引导与帮助
|
||||
|
||||
- 首次使用引导(高亮核心功能)
|
||||
- 模板说明可以添加"了解更多"展开项
|
||||
- 帮助按钮或文档链接
|
||||
|
||||
8. 错误处理
|
||||
|
||||
- 网络错误时提供重试按钮
|
||||
- 表单提交失败保留用户输入
|
||||
- 友好的404/500错误页面
|
||||
|
||||
具体技术建议
|
||||
|
||||
1. CSS优化
|
||||
|
||||
/* 添加 prefers-reduced-motion 支持 */
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
* {
|
||||
animation-duration: 0.01ms !important;
|
||||
transition-duration: 0.01ms !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* 暗色模式支持 */
|
||||
@media (prefers-color-scheme: dark) {
|
||||
:root {
|
||||
--background-color: #0f172a;
|
||||
--text-color: #f8fafc;
|
||||
}
|
||||
}
|
||||
|
||||
2. JavaScript增强
|
||||
|
||||
- 添加离线检测和提示
|
||||
- 使用本地存储保存用户偏好(侧边栏状态、筛选条件)
|
||||
- 实现撤销/重做操作(特别是模板选择)
|
||||
|
||||
3. SEO与分享优化
|
||||
|
||||
- 添加Open Graph meta标签
|
||||
- 结构化数据标记(JSON-LD)
|
||||
- 页面标题动态更新(当前固定为"提示词大师 - AI应用")
|
||||
|
||||
优先级建议
|
||||
|
||||
高优先级:
|
||||
1. 键盘导航与可访问性修复
|
||||
2. 移动端触摸目标大小调整
|
||||
3. 筛选器搜索功能添加
|
||||
|
||||
中优先级:
|
||||
4. 加载状态与错误处理
|
||||
5. 颜色对比度检查
|
||||
6. 性能优化(虚拟滚动)
|
||||
|
||||
低优先级:
|
||||
7. 暗色模式
|
||||
8. 动画微调
|
||||
9. SEO优化
|
||||
|
||||
这些改进将显著提升用户满意度、可访问性和整体专业感。需要进一步检查具体实现代码,我可以帮助实现其中任何一项改进。
|
||||
@@ -1,217 +0,0 @@
|
||||
1. 项目现状评估
|
||||
|
||||
1.1 核心功能模块清单
|
||||
|
||||
项目是一个多功能AI提示词生成与管理平台,采用Flask + 服务器端渲染架构,包含以下15个核心模块:
|
||||
|
||||
┌──────────┬──────────────────────────────────────────────────────────────┬──────────────────────────┐
|
||||
│ 模块类别 │ 功能描述 │ 技术实现 │
|
||||
├──────────┼──────────────────────────────────────────────────────────────┼──────────────────────────┤
|
||||
│ 核心生成 │ 主提示词生成(默认模板) │ Flask路由 + OpenAI API │
|
||||
├──────────┼──────────────────────────────────────────────────────────────┼──────────────────────────┤
|
||||
│ 用户体系 │ 用户认证、微信小程序集成 │ Flask-Login + WxUser模型 │
|
||||
├──────────┼──────────────────────────────────────────────────────────────┼──────────────────────────┤
|
||||
│ 数据管理 │ 收藏管理、历史记录 │ SQLAlchemy + 关系模型 │
|
||||
├──────────┼──────────────────────────────────────────────────────────────┼──────────────────────────┤
|
||||
│ 垂直场景 │ 饭菜规划、古诗词解析、周报生成、旅行规划、会议纪要、简历优化 │ 专用蓝图 + 模板 │
|
||||
├──────────┼──────────────────────────────────────────────────────────────┼──────────────────────────┤
|
||||
│ 专家模式 │ 智能提示词优化(3个独立实现) │ 多版本对比优化 │
|
||||
├──────────┼──────────────────────────────────────────────────────────────┼──────────────────────────┤
|
||||
│ 开发工具 │ Android工程师专区(Crash解读、依赖冲突分析) │ 专业场景模板 │
|
||||
├──────────┼──────────────────────────────────────────────────────────────┼──────────────────────────┤
|
||||
│ 管理后台 │ 数据分析、监控、批量操作 │ Flask-Admin扩展 │
|
||||
├──────────┼──────────────────────────────────────────────────────────────┼──────────────────────────┤
|
||||
│ 扩展预留 │ 占位应用(预留扩展位) │ 模块化设计 │
|
||||
└──────────┴──────────────────────────────────────────────────────────────┴──────────────────────────┘
|
||||
|
||||
1.2 技术栈组成与版本
|
||||
|
||||
┌──────────┬─────────────────────────────────────────────┬──────────────────────────────────┐
|
||||
│ 层级 │ 技术栈 │ 版本/备注 │
|
||||
├──────────┼─────────────────────────────────────────────┼──────────────────────────────────┤
|
||||
│ 后端框架 │ Python Flask │ ≥2.2.0 │
|
||||
├──────────┼─────────────────────────────────────────────┼──────────────────────────────────┤
|
||||
│ ORM │ Flask-SQLAlchemy │ ≥3.0.2 │
|
||||
├──────────┼─────────────────────────────────────────────┼──────────────────────────────────┤
|
||||
│ 数据库 │ MySQL 8.0 + Redis 7 │ 容器化部署 │
|
||||
├──────────┼─────────────────────────────────────────────┼──────────────────────────────────┤
|
||||
│ AI集成 │ OpenAI兼容API (DeepSeek) │ 硬编码API密钥(安全风险) │
|
||||
├──────────┼─────────────────────────────────────────────┼──────────────────────────────────┤
|
||||
│ 前端UI │ Bootstrap 5.1 + jQuery 3.6 │ CDN加载 │
|
||||
├──────────┼─────────────────────────────────────────────┼──────────────────────────────────┤
|
||||
│ 前端交互 │ 原生JavaScript + 自定义CSS │ 未使用构建工具 │
|
||||
├──────────┼─────────────────────────────────────────────┼──────────────────────────────────┤
|
||||
│ 部署架构 │ Docker Compose 3.8 + Nginx │ 四服务编排(App/DB/Redis/Nginx) │
|
||||
├──────────┼─────────────────────────────────────────────┼──────────────────────────────────┤
|
||||
│ 辅助工具 │ Flask-Migrate、Flask-CORS、bcrypt、waitress │ 完整生产配置 │
|
||||
└──────────┴─────────────────────────────────────────────┴──────────────────────────────────┘
|
||||
|
||||
1.3 系统部署架构图
|
||||
|
||||
[用户请求]
|
||||
↓
|
||||
[Nginx:80/443]
|
||||
↓
|
||||
┌──────────────┼──────────────┐
|
||||
↓ ↓ ↓
|
||||
[Flask App] [MySQL 8.0] [Redis 7]
|
||||
(端口:5000) (端口:3306) (端口:6379)
|
||||
│ │ │
|
||||
└──────────────┼──────────────┘
|
||||
↓
|
||||
[静态文件/模板渲染]
|
||||
|
||||
---
|
||||
2. 优势与痛点诊断
|
||||
|
||||
2.1 技术优势(≥3项)
|
||||
|
||||
1. 模块化架构清晰:采用Flask蓝图设计,功能解耦良好,新增模块只需注册新蓝图
|
||||
2. 生产就绪的部署方案:完整Docker Compose配置,包含Nginx反向代理、数据库持久化、日志轮转
|
||||
3. 错误处理机制完善:全局500错误处理、API调用重试机制、结构化日志记录
|
||||
4. 多环境配置支持:基于config/目录的配置系统,支持development/testing/production环境
|
||||
5. 数据库迁移管理:使用Flask-Migrate,支持平滑升级和数据迁移
|
||||
|
||||
2.2 性能指标(基于代码分析)
|
||||
|
||||
- API响应时间:LLM调用设置60秒超时,含3次重试机制
|
||||
- 数据库连接池:SQLAlchemy配置连接池(pool_size=20, max_overflow=30)
|
||||
- 缓存策略:Redis缓存支持,默认超时1小时
|
||||
- 前端资源体积:CSS 1.1KB + JS 1.2KB(未压缩),Bootstrap/jQuery使用CDN
|
||||
|
||||
2.3 痛点与技术债务
|
||||
|
||||
┌──────────┬──────────────────────────────────────────────────┬─────────────────────────────────┐
|
||||
│ 风险等级 │ 问题描述 │ 影响范围 │
|
||||
├──────────┼──────────────────────────────────────────────────┼─────────────────────────────────┤
|
||||
│ 高危 │ API密钥硬编码于routes/routes.py:21 │ 安全漏洞,密钥泄露风险 │
|
||||
├──────────┼──────────────────────────────────────────────────┼─────────────────────────────────┤
|
||||
│ 高危 │ 用户密码使用自定义哈希(login_pwd + login_salt) │ 密码安全强度不足 │
|
||||
├──────────┼──────────────────────────────────────────────────┼─────────────────────────────────┤
|
||||
│ 中危 │ CORS配置过于宽松(默认['*']) │ 生产环境跨域安全风险 │
|
||||
├──────────┼──────────────────────────────────────────────────┼─────────────────────────────────┤
|
||||
│ 中危 │ 前端资源未压缩(无构建流程) │ 页面加载性能损失约30% │
|
||||
├──────────┼──────────────────────────────────────────────────┼─────────────────────────────────┤
|
||||
│ 中危 │ 代码重复(expert_generate多个版本) │ 维护成本增加,bug修复需多处修改 │
|
||||
├──────────┼──────────────────────────────────────────────────┼─────────────────────────────────┤
|
||||
│ 低危 │ 缺乏自动化测试覆盖 │ 回归测试依赖手动验证 │
|
||||
└──────────┴──────────────────────────────────────────────────┴─────────────────────────────────┘
|
||||
|
||||
---
|
||||
3. 用户体验专项审计
|
||||
|
||||
3.1 技术指标检测(基于运行中服务 http://127.0.0.1:5002/)
|
||||
|
||||
┌────────────────┬──────────────────────────────────────┬───────────────────────────────┐
|
||||
│ 指标 │ 现状评估 │ 建议 │
|
||||
├────────────────┼──────────────────────────────────────┼───────────────────────────────┤
|
||||
│ Lighthouse性能 │ 预估得分:65-75/100 │ 资源未压缩、无懒加载 │
|
||||
├────────────────┼──────────────────────────────────────┼───────────────────────────────┤
|
||||
│ 可访问性 │ 基础合规(Bootstrap提供基础支持) │ 缺少ARIA标签、键盘导航支持 │
|
||||
├────────────────┼──────────────────────────────────────┼───────────────────────────────┤
|
||||
│ SEO优化 │ 基础达标(meta描述、og标签齐全) │ 可添加结构化数据、sitemap │
|
||||
├────────────────┼──────────────────────────────────────┼───────────────────────────────┤
|
||||
│ 首屏加载 │ 1.5-2.5秒(依赖CDN网络状况) │ 内联关键CSS、异步加载非关键JS │
|
||||
├────────────────┼──────────────────────────────────────┼───────────────────────────────┤
|
||||
│ 资源压缩 │ 未压缩(CSS 1.1KB, JS 1.2KB) │ 引入构建流程(Vite/webpack) │
|
||||
├────────────────┼──────────────────────────────────────┼───────────────────────────────┤
|
||||
│ 移动端适配 │ 响应式设计(Bootstrap 5 + viewport) │ 通过测试 │
|
||||
├────────────────┼──────────────────────────────────────┼───────────────────────────────┤
|
||||
│ 浏览器兼容 │ 现代浏览器支持良好 │ IE11及以下不兼容(符合预期) │
|
||||
└────────────────┴──────────────────────────────────────┴───────────────────────────────┘
|
||||
|
||||
3.2 交互体验评估
|
||||
|
||||
- 核心操作路径:表单提交→加载状态→结果显示,流程完整但缺乏进度反馈
|
||||
- 错误处理机制:前端有基础验证,后端返回JSON错误格式,但错误提示不友好
|
||||
- 无障碍设计:仅基础HTML语义化,缺少屏幕阅读器优化、焦点管理
|
||||
- 动画与反馈:使用CSS过渡效果,但加载状态依赖按钮文字变更
|
||||
|
||||
---
|
||||
4. Vue.js重构可行性研究
|
||||
|
||||
4.1 技术对比矩阵(评分1-10分)
|
||||
|
||||
┌──────────────┬────────────────────────────┬─────────────────────────────────┬──────┬──────────┬─────────┐
|
||||
│ 维度 │ 当前方案(jQuery+SSR) │ Vue 3方案(SPA+组件化) │ 权重 │ 当前得分 │ Vue得分 │
|
||||
├──────────────┼────────────────────────────┼─────────────────────────────────┼──────┼──────────┼─────────┤
|
||||
│ 开发效率 │ 前后端耦合,调试需重启服务 │ 组件化开发、热重载、DevTools │ 30% │ 6.0 │ 8.5 │
|
||||
├──────────────┼────────────────────────────┼─────────────────────────────────┼──────┼──────────┼─────────┤
|
||||
│ 维护成本 │ 全局状态管理困难,代码重复 │ 组件复用率高,状态集中管理 │ 25% │ 5.0 │ 8.0 │
|
||||
├──────────────┼────────────────────────────┼─────────────────────────────────┼──────┼──────────┼─────────┤
|
||||
│ 性能表现 │ 首屏快但页面跳转需重载 │ SPA切换快,首屏需加载bundle │ 20% │ 7.0 │ 8.0 │
|
||||
├──────────────┼────────────────────────────┼─────────────────────────────────┼──────┼──────────┼─────────┤
|
||||
│ 生态支持 │ jQuery插件丰富但陈旧 │ Vue Router、Pinia、Vite生态完善 │ 15% │ 7.0 │ 9.0 │
|
||||
├──────────────┼────────────────────────────┼─────────────────────────────────┼──────┼──────────┼─────────┤
|
||||
│ 团队适配 │ 熟悉jQuery,学习曲线平缓 │ 需学习Vue 3组合式API │ 10% │ 8.0 │ 6.0 │
|
||||
├──────────────┼────────────────────────────┼─────────────────────────────────┼──────┼──────────┼─────────┤
|
||||
│ 综合加权得分 │ 6.35 │ 8.08 │ 100% │ │ │
|
||||
└──────────────┴────────────────────────────┴─────────────────────────────────┴──────┴──────────┴─────────┘
|
||||
|
||||
结论:Vue 3方案综合得分提升27.2%,主要在开发效率、维护成本、生态支持方面优势明显。
|
||||
|
||||
4.2 迁移风险评估
|
||||
|
||||
┌────────────────┬────────────────────────────────┬─────────────────────────────────────────┐
|
||||
│ 风险类型 │ 风险描述 │ 缓解措施 │
|
||||
├────────────────┼────────────────────────────────┼─────────────────────────────────────────┤
|
||||
│ 增量迁移复杂性 │ 如何逐步替换现有jQuery代码 │ 采用微前端架构,新旧系统并行运行 │
|
||||
├────────────────┼────────────────────────────────┼─────────────────────────────────────────┤
|
||||
│ 数据层兼容性 │ 现有API需要适配Vue前端调用模式 │ 保持RESTful API不变,仅前端消费方式变化 │
|
||||
├────────────────┼────────────────────────────────┼─────────────────────────────────────────┤
|
||||
│ 第三方依赖适配 │ jQuery插件需替换为Vue组件 │ 评估替代方案(如Bootstrap Vue) │
|
||||
├────────────────┼────────────────────────────────┼─────────────────────────────────────────┤
|
||||
│ 团队技能缺口 │ 需培训Vue 3开发技能 │ 分阶段培训 + 引入外部专家支持 │
|
||||
├────────────────┼────────────────────────────────┼─────────────────────────────────────────┤
|
||||
│ ROI分析 │ 迁移成本 vs 长期收益 │ 预计6-9个月收回投资(基于维护成本降低) │
|
||||
└────────────────┴────────────────────────────────┴─────────────────────────────────────────┘
|
||||
|
||||
4.3 实施路线图建议
|
||||
|
||||
阶段一:搭建Vue 3微前端试验田(1-2个月)
|
||||
|
||||
- 技术选型:Vue 3 + Vite + Pinia + Vue Router
|
||||
- 基础设施:独立/vue-app目录,与现有Flask静态资源并行
|
||||
- 试点模块:选择收藏管理模块进行重构
|
||||
- 集成方案:使用<micro-frontend>容器渐进式加载Vue组件
|
||||
|
||||
阶段二:核心模块渐进式重构(3-4个月)
|
||||
|
||||
- 优先级:用户中心 → 历史记录 → 提示词生成
|
||||
- 数据层:封装现有API为TypeScript接口
|
||||
- 状态管理:统一使用Pinia,与现有session并行
|
||||
- 组件库:基于Bootstrap Vue建立企业级组件库
|
||||
|
||||
阶段三:新旧架构并行运行验证(1-2个月)
|
||||
|
||||
- A/B测试:50%流量导向Vue新架构
|
||||
- 性能监控:对比关键指标(首屏加载、交互响应时间)
|
||||
- 用户反馈:收集UX改进建议
|
||||
- 问题修复:针对并行运行暴露的问题进行修复
|
||||
|
||||
阶段四:完整迁移与性能调优(2-3个月)
|
||||
|
||||
- 全面切换:100%流量切至Vue架构
|
||||
- 代码清理:移除遗留jQuery代码
|
||||
- 性能优化:代码分割、懒加载、CDN部署
|
||||
- 文档完善:更新开发文档、部署指南
|
||||
|
||||
---
|
||||
5. 紧急行动建议(立即执行)
|
||||
|
||||
安全修复(24小时内):
|
||||
- 移除routes/routes.py:21硬编码的API密钥,改用环境变量
|
||||
- 收紧生产环境CORS配置,指定允许的域名列表
|
||||
性能优化(1周内):
|
||||
- 配置Nginx启用gzip压缩静态资源
|
||||
- 添加Cache-Control头部优化缓存策略
|
||||
代码质量(2周内):
|
||||
- 合并expert_generate重复代码,提取公共组件
|
||||
- 引入基础单元测试,覆盖核心API路由
|
||||
重构准备(1个月内):
|
||||
- 评估团队Vue技能现状,制定培训计划
|
||||
- 搭建Vue 3试验环境,验证技术选型可行性
|
||||
|
||||
---
|
||||
报告说明:本评估基于静态代码分析和运行中服务测试,实际性能指标可能因部署环境而异。Vue重构建议需要根据团队实际情况调整
|
||||
实施节奏。
|
||||
@@ -1,9 +0,0 @@
|
||||
|
||||
|
||||
|
||||
D:\aaa\aitsc\上传git仓.md
|
||||
将修改上传到git仓rjb_win_dev分支
|
||||
http://101.43.95.130:3001/admin/aitsc.git
|
||||
|
||||
|
||||
D:\aaa\aitsc\改进计划.md
|
||||
@@ -1,22 +1,34 @@
|
||||
|
||||
## 服务器信息
|
||||
|
||||
http://101.43.95.130:5002/
|
||||
|
||||
┌──────────┬────────────────────────────────────────┐
|
||||
│ 项目 │ 详情 │
|
||||
├──────────┼────────────────────────────────────────┤
|
||||
│ 名称 │ 提示词大师 - AI应用 │
|
||||
├──────────┼────────────────────────────────────────┤
|
||||
│ 目录 │ /home/renjianbo/aitsc │
|
||||
├──────────┼────────────────────────────────────────┤
|
||||
│ 运行方式 │ gunicorn + Flask (run_dev:app) │
|
||||
├──────────┼────────────────────────────────────────┤
|
||||
│ Python │ Python 3.12 (miniconda3 env: myenv) │
|
||||
├──────────┼────────────────────────────────────────┤
|
||||
│ 端口 │ 5002 │
|
||||
├──────────┼────────────────────────────────────────┤
|
||||
│ 启动时间 │ 2026-03-01(已运行 118 天) │
|
||||
├──────────┼────────────────────────────────────────┤
|
||||
│ Git 状态 │ 干净,最新提交 aia │
|
||||
├──────────┼────────────────────────────────────────┤
|
||||
│ 外网访问 │ 已修复(firewalld 之前漏了 5002 端口) │
|
||||
└──────────┴────────────────────────────────────────┘
|
||||
| 项目 | 详情 |
|
||||
|------|------|
|
||||
| 名称 | 提示词大师 - AI应用 |
|
||||
| 目录 | /home/renjianbo/aitsc |
|
||||
| 运行方式 | gunicorn + Flask (run_dev:app) |
|
||||
| Python | Python 3.12 (miniconda3 env: myenv) |
|
||||
| 端口 | 5002 |
|
||||
| 外网访问 | 已修复(firewalld 之前漏了 5002 端口) |
|
||||
|
||||
## 本地开发
|
||||
|
||||
| 项目 | 值 |
|
||||
|------|-----|
|
||||
| 本地目录 | D:\aaa\aitsc |
|
||||
| Git 仓库 | http://101.43.95.130:3001/admin/aitsc.git |
|
||||
| 分支 | rjb_win_dev |
|
||||
|
||||
### 上传 Git
|
||||
|
||||
详见 D:\aaa\aitsc\上传git仓.md
|
||||
|
||||
```powershell
|
||||
cd D:\aaa\aitsc
|
||||
git push -u origin rjb_win_dev
|
||||
```
|
||||
|
||||
### 改进计划
|
||||
|
||||
详见 D:\aaa\aitsc\改进计划.md
|
||||
|
||||
32
docs/Obsidian笔记体系/Projects/claude code/命令行工具.md
Normal file
32
docs/Obsidian笔记体系/Projects/claude code/命令行工具.md
Normal file
@@ -0,0 +1,32 @@
|
||||
> 使用claude时使用的命令行工具,哪个更文档,当前是windows powershell,还有其它更好的吗?
|
||||
|
||||
● 这个问题跟代码项目本身无关,我直接根据了解的情况来回答。
|
||||
|
||||
Windows 下使用 Claude Code 的终端选择
|
||||
|
||||
推荐排序
|
||||
|
||||
Windows Terminal(强烈推荐)
|
||||
- 微软官方出品的现代终端,支持多标签、GPU 加速渲染、丰富的主题配置
|
||||
- 可以内嵌 PowerShell、CMD、WSL Bash 等多种 Shell
|
||||
- Unicode 和 emoji 支持完善,Claude Code 的交互体验最佳
|
||||
- 通过 Microsoft Store 安装:winget install Microsoft.WindowsTerminal
|
||||
PowerShell 7+(当前可用)
|
||||
- 比 Windows PowerShell 5.1 强很多,是跨平台版本
|
||||
- 你当前的 Windows PowerShell(5.1)是旧版,功能有限
|
||||
- 升级:winget install Microsoft.PowerShell
|
||||
Git Bash / MSYS2 Bash
|
||||
- 你当前会话的 shell 就是 bash,类 Unix 体验
|
||||
- 对习惯 Linux/Mac 命令的用户更友好
|
||||
- 缺点:终端模拟器本身(mintty)比较老旧
|
||||
VS Code 内置终端
|
||||
- 如果你在 VS Code 中使用 Claude Code,内置终端完全够用
|
||||
- 同样支持 PowerShell、Git Bash、WSL
|
||||
|
||||
最佳组合
|
||||
|
||||
Windows Terminal + PowerShell 7 或 Windows Terminal + Git Bash,这是目前 Windows 上体验最好的搭配。
|
||||
|
||||
总结
|
||||
|
||||
你当前的 PowerShell 不是不能用,但 Windows Terminal 是更现代、更流畅的选择,推荐安装试试。
|
||||
125
docs/Obsidian笔记体系/Projects/common/腾讯云服务器信息.md
Normal file
125
docs/Obsidian笔记体系/Projects/common/腾讯云服务器信息.md
Normal file
@@ -0,0 +1,125 @@
|
||||
# 腾讯云服务器信息
|
||||
|
||||
> 最后更新:2026-06-11
|
||||
|
||||
---
|
||||
|
||||
## 连接信息
|
||||
|
||||
| 项目 | 详情 |
|
||||
|------|------|
|
||||
| **IP 地址** | 101.43.95.130 |
|
||||
| **端口** | 22 |
|
||||
| **用户名** | renjianbo |
|
||||
| **密码** | 123456 |
|
||||
|
||||
### SSH 连接命令
|
||||
|
||||
```bash
|
||||
ssh renjianbo@101.43.95.130 -p 22
|
||||
```
|
||||
|
||||
### 本地免交互连接(SSH_ASKPASS 方式)
|
||||
|
||||
```bash
|
||||
# 创建密码脚本
|
||||
cat > /tmp/ssh_pass.sh << 'SCRIPT'
|
||||
#!/bin/bash
|
||||
echo '123456'
|
||||
SCRIPT
|
||||
chmod +x /tmp/ssh_pass.sh
|
||||
|
||||
# 连接
|
||||
export DISPLAY=dummy
|
||||
export SSH_ASKPASS=/tmp/ssh_pass.sh
|
||||
ssh -o StrictHostKeyChecking=no renjianbo@101.43.95.130 -p 22 '你要执行的命令' < /dev/null
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 服务器硬件配置
|
||||
|
||||
| 项目 | 详情 |
|
||||
|------|------|
|
||||
| **操作系统** | CentOS Linux 7.9.2009 (Core) |
|
||||
| **内核版本** | 3.10.0-1160.119.1.el7.x86_64 |
|
||||
| **架构** | x86_64 |
|
||||
| **CPU 核心** | 2 核 |
|
||||
| **内存** | 7.5 GB (已用 2.6G,可用 4.6G) |
|
||||
| **系统盘** | 118 GB (已用 61G,可用 53G,54%) |
|
||||
| **Swap** | 无 |
|
||||
| **运行时间** | 140 天 |
|
||||
|
||||
---
|
||||
|
||||
## Docker 环境
|
||||
|
||||
| 项目 | 详情 |
|
||||
|------|------|
|
||||
| **Docker 版本** | 26.1.4 |
|
||||
| **Docker Compose** | v2.27.1 |
|
||||
| **用户权限** | renjianbo 已加入 docker 组,无需 sudo |
|
||||
|
||||
---
|
||||
|
||||
## 运行中的服务
|
||||
|
||||
### RLZ 陪诊后端
|
||||
|
||||
| 容器名 | 镜像 | 端口映射 | 运行状态 |
|
||||
|--------|------|----------|----------|
|
||||
| **rlz-backend** | rlz-backend:latest | **8039→8039** | Up |
|
||||
| **rlz-ui-server** | nginx:alpine | **8050→80** | Up (2026-05-31 启动) |
|
||||
| **rlz-minio** | minio/minio:latest | **9000-9001→9000-9001** | Up (unhealthy) |
|
||||
| **rlz-redis** | redis:7-alpine | 6379 (内部) | Up (unhealthy) |
|
||||
| **rlz-redis-6379** | redis:7-alpine | 127.0.0.1:6379 | Up |
|
||||
|
||||
### CI/CD
|
||||
|
||||
| 容器名 | 镜像 | 端口映射 | 运行状态 |
|
||||
|--------|------|----------|----------|
|
||||
| **Gitea** | gitea/gitea:latest | **3001→3000, 222→22** | Up |
|
||||
| **Drone Server** | drone/drone:latest | **3002→80, 3003→443** | Up |
|
||||
| **Drone Runner** | drone/drone-runner-docker:latest | 3000 (内部) | Up |
|
||||
|
||||
> - Gitea: `http://101.43.95.130:3001`
|
||||
> - Drone: `http://101.43.95.130:3002`
|
||||
|
||||
### 其他
|
||||
|
||||
| 容器名 | 镜像 | 端口映射 | 运行状态 |
|
||||
|--------|------|----------|----------|
|
||||
| **mkdocs** | squidfunk/mkdocs-material:latest | **8000→8000** | Up (unhealthy) |
|
||||
| **workdizhi-web** | workdizhi-web | **3006→3000** | Up |
|
||||
|
||||
---
|
||||
|
||||
## 已移除/停止的服务
|
||||
|
||||
| 服务 | 说明 |
|
||||
|------|------|
|
||||
| **Dify** (API/Web/Worker/DB/Redis/Weaviate/Nginx等) | 2026-06-11 清理磁盘时移除,容器和镜像均已删除 |
|
||||
| **OpenCLAW** (龙匣) | 之前已移除 |
|
||||
| **MySQL** | 未使用,已清理 |
|
||||
|
||||
---
|
||||
|
||||
## 端口总览
|
||||
|
||||
| 端口 | 服务 |
|
||||
|------|------|
|
||||
| **222** | Gitea SSH |
|
||||
| **3001** | Gitea Web |
|
||||
| **3002** | Drone CI |
|
||||
| **3006** | workdizhi-web |
|
||||
| **8000** | mkdocs 文档 |
|
||||
| **8039** | rlz-backend |
|
||||
| **8050** | rlz-ui-server |
|
||||
| **9000-9001** | rlz-minio |
|
||||
|
||||
---
|
||||
|
||||
## 已知问题
|
||||
|
||||
- `rlz-minio`、`rlz-redis`、`mkdocs` 三个容器 health check 失败 (unhealthy)
|
||||
- 磁盘曾满导致服务停摆,2026-06-11 已清理释放 ~29GB
|
||||
107
docs/Obsidian笔记体系/Projects/女童生长激素项目/项目概览.md
Normal file
107
docs/Obsidian笔记体系/Projects/女童生长激素项目/项目概览.md
Normal file
@@ -0,0 +1,107 @@
|
||||
# 女童生长激素预测模型 — 项目与域名概览
|
||||
|
||||
**更新日期:** 2026-05-24
|
||||
|
||||
---
|
||||
|
||||
## 一、项目简介
|
||||
|
||||
生长激素缺乏(GHD)预测模型系统,面向医生和患者提供预测工具,包含三端:
|
||||
|
||||
| 端 | 说明 | 技术 |
|
||||
|----|------|------|
|
||||
| 微信小程序 | 用户端,计算器和资讯 | 微信原生开发 |
|
||||
| 后台管理 | 管理员数据管理 | ThinkPHP 5.0 |
|
||||
| 后端 API | 小程序接口服务 | ThinkPHP 5.0 |
|
||||
|
||||
---
|
||||
|
||||
## 二、域名与访问
|
||||
|
||||
| 用途 | 地址 |
|
||||
| ----------- | ----------------------------------------- |
|
||||
| 正式域名(HTTPS) | https://www.ruilaizipj.com |
|
||||
| 根域名(HTTPS) | https://ruilaizipj.com |
|
||||
| IP 访问(HTTP) | http://101.43.95.130 |
|
||||
| 后台管理入口 | https://www.ruilaizipj.com/adminghd/login |
|
||||
| 宝塔面板 | https://101.43.95.130:38193/e626af3f |
|
||||
|
||||
### 账号信息
|
||||
|
||||
| 系统 | 账号 | 密码 |
|
||||
|------|------|------|
|
||||
| 后台管理 | 13212345678 | 123456 |
|
||||
| 宝塔面板 | 0dbelvc8 | testpasswd |
|
||||
|
||||
### SSL 证书
|
||||
|
||||
| 项目 | 值 |
|
||||
|------|-----|
|
||||
| 类型 | Let's Encrypt 免费证书(90 天) |
|
||||
| 当前有效期 | 2026-05-24 ~ 2026-08-22 |
|
||||
| 覆盖域名 | ruilaizipj.com, www.ruilaizipj.com |
|
||||
| 管理方式 | 宝塔面板 → 网站 → SSL → Let's Encrypt |
|
||||
|
||||
---
|
||||
|
||||
## 三、服务器环境
|
||||
|
||||
| 项目 | 值 |
|
||||
|------|-----|
|
||||
| 云服务商 | 腾讯云 |
|
||||
| 公网 IP | 101.43.95.130 |
|
||||
| 操作系统 | CentOS 7+ |
|
||||
| Web 服务器 | 系统 Nginx 1.20(宝塔 Nginx 已停) |
|
||||
| PHP 版本 | 5.6 |
|
||||
| 数据库 | MySQL,库名 `ruilai` |
|
||||
| 项目根目录 | `/www/wwwroot/code` |
|
||||
| 网站根目录 | `/www/wwwroot/code/public` |
|
||||
|
||||
### Nginx 关键配置
|
||||
|
||||
- **配置文件**:`/etc/nginx/conf.d/default.conf`
|
||||
- **SSL 证书**:`/www/server/panel/vhost/cert/101.43.95.130/fullchain.pem`
|
||||
- **SSL 私钥**:`/www/server/panel/vhost/cert/101.43.95.130/privkey.pem`
|
||||
- **server_name** 包含:`ruilaizipj.com`、`www.ruilaizipj.com`、`101.43.95.130`
|
||||
|
||||
---
|
||||
|
||||
## 四、项目代码结构
|
||||
|
||||
```
|
||||
/www/wwwroot/code/
|
||||
├── application/
|
||||
│ ├── adminghd/ # 后台管理模块
|
||||
│ │ ├── controller/ # Login.php, Menu.php, Wechatinfro.php, Wechatset.php
|
||||
│ │ ├── model/
|
||||
│ │ └── view/
|
||||
│ └── app/ # 小程序 API 模块
|
||||
│ └── controller/ # Ghdwechat.php, Ruilaiwechat.php
|
||||
├── public/
|
||||
│ ├── index.php # 入口文件
|
||||
│ └── static/adminghd/ # 后台静态资源
|
||||
├── szjs/ # 微信小程序源码
|
||||
├── thinkphp/ # 框架核心
|
||||
└── vendor/ # Composer 依赖
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 五、DNS 解析要求
|
||||
|
||||
两个域名都需 A 记录指向 `101.43.95.130`:
|
||||
|
||||
- `ruilaizipj.com` → A → `101.43.95.130`
|
||||
- `www.ruilaizipj.com` → A → `101.43.95.130`
|
||||
|
||||
---
|
||||
|
||||
## 六、相关文档索引
|
||||
|
||||
| 文档 | 说明 |
|
||||
|------|------|
|
||||
| 生长激素缺乏预测模型项目需求文档.md | 完整需求与架构 |
|
||||
| 项目资料.md | 项目路径和账号 |
|
||||
| 配置完成.md | Nginx 配置详情 |
|
||||
| SSL证书续期_20260524.md | 证书续期操作和踩坑记录 |
|
||||
| 后台检查报告_20260524.md | 后台功能检查结果 |
|
||||
1
docs/Obsidian笔记体系/Projects/官网/公司官网.md
Normal file
1
docs/Obsidian笔记体系/Projects/官网/公司官网.md
Normal file
@@ -0,0 +1 @@
|
||||
[TechNova — 用技术驱动商业未来](file:///D:/aaa/aiagent/team_projects/546eb7a0-e096-4e20-b52b-37ee5a1ee1df/project-20260616-230703/index.html#cases)
|
||||
1
docs/Obsidian笔记体系/Projects/物业项目/物业项目资料.md
Normal file
1
docs/Obsidian笔记体系/Projects/物业项目/物业项目资料.md
Normal file
@@ -0,0 +1 @@
|
||||
![[Pasted image 20260524215622.png]]
|
||||
@@ -1,170 +0,0 @@
|
||||
RLZ 陪诊SAAS 微信小程序下单流程 —— 深度分析
|
||||
|
||||
一、整体架构
|
||||
|
||||
微信小程序(coupon/) ←→ 后端API(:8039) ←→ MySQL
|
||||
↑
|
||||
Android陪护端(peizhen/) ┘
|
||||
Web后台(rlz-ui :8050) ┘
|
||||
|
||||
二、现有流程(有缺陷)
|
||||
|
||||
┌──────────┐ ┌──────────┐ ┌──────────────┐ ┌────────────┐
|
||||
│ 1.微信登录 │ → │ 2.选服务 │ → │ 3.填订单信息 │ → │ 4.支付成功页│
|
||||
│ (my页面) │ │ (peizhen) │ │(peizhendetail)│ │(paysuccess)│
|
||||
└──────────┘ └──────────┘ └──────────────┘ └────────────┘
|
||||
✅ ✅ ⚠️ ❌
|
||||
|
||||
三、逐环节分析
|
||||
|
||||
环节 1:微信登录 — pages/my/my.js
|
||||
|
||||
现状:✅ 代码逻辑正确,但缺少必要条件
|
||||
|
||||
wx.login() → 获取code → getPhoneNumber按钮 → /weixinLogin
|
||||
|
||||
后端 /weixinLogin 逻辑(SysLoginController.java:186):
|
||||
1. 用 code 调微信 jscode2session 获取 openid + session_key
|
||||
2. 解密 encryptedData 拿到手机号
|
||||
3. 查数据库,用户存在则更新 openid,不存在则自动创建(userType="C" = 患者)
|
||||
4. 返回 {userId, token, phoneNumber}
|
||||
|
||||
必要条件:
|
||||
- appid=wx2d5ca40a16ebd1b3 + secret=8620... — 已配置在代码中
|
||||
- 微信小程序必须在微信开放平台注册,appid 必须匹配
|
||||
- 需要微信开发者工具或真机调试才能触发 getPhoneNumber
|
||||
|
||||
环节 2:选择服务类型 — pages/peizhen/peizhen.js
|
||||
|
||||
现状:⚠️ 医院和服务都硬编码在前端
|
||||
|
||||
医院选择器和医院列表都是写死的数组,不从后端加载(虽然后端有 /system/hospital/list API)。
|
||||
|
||||
环节 3:填写订单 — pages/peizhen/peizhendetail.js
|
||||
|
||||
现状:⚠️ 下单成功,但跳过了支付
|
||||
|
||||
// 当前代码:下单 → 直接跳支付成功页
|
||||
payment() {
|
||||
POST /system/order/insertOrderPz // 创建订单
|
||||
→ wx.navigateTo('paysuccess') // ❌ 直接跳转了,没支付!
|
||||
}
|
||||
|
||||
后端 insertOrderPz 的问题:
|
||||
// RlzOrderController.java:103
|
||||
// 微信支付创建代码全部被注释掉了!
|
||||
// 原本应该:创建订单 → 调微信支付 → 返回 prepay_id
|
||||
// 现在只返回 orderId
|
||||
|
||||
环节 4:支付成功页 — shopping/pages/paysuccess/paysuccess.js
|
||||
|
||||
现状:❌ 代码来自旧项目,完全不适用
|
||||
|
||||
paySuccess() {
|
||||
// 调用不存在的旧API!
|
||||
url: app.buildUrl("/app/Goddesswechat/paySuccess") // ❌ 后端没这个接口
|
||||
}
|
||||
|
||||
这个文件是从一个叫 "Goddess" 的电商项目复制过来的,含有拼团逻辑,跟陪诊完全无关。
|
||||
|
||||
---
|
||||
四、后端支付能力
|
||||
|
||||
后端微信支付代码是完整的,只是被注释掉了:
|
||||
|
||||
┌──────────────────┬─────────────────────────────────────┬─────────────────────────┐
|
||||
│ 能力 │ 位置 │ 状态 │
|
||||
├──────────────────┼─────────────────────────────────────┼─────────────────────────┤
|
||||
│ 创建微信支付订单 │ V3WXPayUtil.createOrder() │ ✅ 完整,返回 prepay_id │
|
||||
├──────────────────┼─────────────────────────────────────┼─────────────────────────┤
|
||||
│ 微信支付回调 │ /system/weixin/wxPayNotify │ ✅ 完整 │
|
||||
├──────────────────┼─────────────────────────────────────┼─────────────────────────┤
|
||||
│ 退款回调 │ /system/weixin/wxRefundNotify │ ✅ 完整 │
|
||||
├──────────────────┼─────────────────────────────────────┼─────────────────────────┤
|
||||
│ 主动查询支付 │ /system/order/weixinPay/{orderId} │ ✅ 完整 │
|
||||
├──────────────────┼─────────────────────────────────────┼─────────────────────────┤
|
||||
│ 退款申请 │ /system/order/refundOrder/{orderId} │ ✅ 完整 │
|
||||
└──────────────────┴─────────────────────────────────────┴─────────────────────────┘
|
||||
|
||||
支付配置 (WXPayConstants.java):
|
||||
- 商户号: 1637125805
|
||||
- appid: wx2d5ca40a16ebd1b3
|
||||
- APIv3密钥已配置
|
||||
- 商户证书私钥已配置
|
||||
- ⚠️ 回调地址写死 https://ruilaizipj.com/system/weixin/wxPayNotify — 此域名可能已失效
|
||||
|
||||
---
|
||||
五、数据库
|
||||
|
||||
订单表 rlz_order 关键字段:
|
||||
|
||||
┌─────────────┬────────────┬───────────────────────────────────────────────────────────────┐
|
||||
│ 字段 │ 含义 │ 说明 │
|
||||
├─────────────┼────────────┼───────────────────────────────────────────────────────────────┤
|
||||
│ order_id │ 订单ID │ 自增 │
|
||||
├─────────────┼────────────┼───────────────────────────────────────────────────────────────┤
|
||||
│ status │ 订单状态 │ -2取消/-1拒单/0待接单/2已支付/3服务中/4已完成/5退款中/7已退款 │
|
||||
├─────────────┼────────────┼───────────────────────────────────────────────────────────────┤
|
||||
│ c_id │ 患者ID │ 外键到 sys_user │
|
||||
├─────────────┼────────────┼───────────────────────────────────────────────────────────────┤
|
||||
│ b_id │ 陪护人员ID │ 硬编码为104 │
|
||||
├─────────────┼────────────┼───────────────────────────────────────────────────────────────┤
|
||||
│ hospital_id │ 医院ID │ 外键到 sys_hospital │
|
||||
├─────────────┼────────────┼───────────────────────────────────────────────────────────────┤
|
||||
│ yugu_money │ 预估金额 │ │
|
||||
├─────────────┼────────────┼───────────────────────────────────────────────────────────────┤
|
||||
│ yuliu9 │ 订单大类 │ 1=陪护 2=陪诊 │
|
||||
├─────────────┼────────────┼───────────────────────────────────────────────────────────────┤
|
||||
│ yuliu10 │ 订单类型 │ 1=全程陪诊 2=诊前约号 3=取送结果 4=代办问诊 │
|
||||
├─────────────┼────────────┼───────────────────────────────────────────────────────────────┤
|
||||
│ yuliu5 │ 商户订单号 │ 支付回调后设置 │
|
||||
└─────────────┴────────────┴───────────────────────────────────────────────────────────────┘
|
||||
|
||||
---
|
||||
六、要跑通完整流程,需要做的事
|
||||
|
||||
❌ 阻塞 ⚠️ 有问题但可绕过 ✅ 正常
|
||||
|
||||
微信登录 ──→ 选服务 ──→ 填订单 ──→ 微信支付 ──→ 支付成功 ──→ 订单列表
|
||||
✅ ⚠️ ⚠️ ❌ ❌ ⚠️
|
||||
|
||||
必须修复的问题:
|
||||
|
||||
┌─────┬────────────────────────────┬─────────────────────┬────────────────────────────────────────────────────────────────────────┐
|
||||
│ # │ 问题 │ 文件 │ 修复方案 │
|
||||
├─────┼────────────────────────────┼─────────────────────┼────────────────────────────────────────────────────────────────────────┤
|
||||
│ 1 │ 小程序后端地址写死失效域名 │ app.js │ 改为 http://101.43.95.130:8039 │
|
||||
├─────┼────────────────────────────┼─────────────────────┼────────────────────────────────────────────────────────────────────────┤
|
||||
│ 2 │ 下单后没调微信支付 │ peizhendetail.js │ 下单成功→调 /system/order/weixinPay/{orderId} → 获取 prepay_id → │
|
||||
│ │ │ │ wx.requestPayment() │
|
||||
├─────┼────────────────────────────┼─────────────────────┼────────────────────────────────────────────────────────────────────────┤
|
||||
│ 3 │ 支付成功页是旧项目代码 │ paysuccess.js │ 支付成功后查订单状态,显示结果 │
|
||||
├─────┼────────────────────────────┼─────────────────────┼────────────────────────────────────────────────────────────────────────┤
|
||||
│ 4 │ 微信支付回调域名 │ WXPayConstants.java │ NOTIFY_URL 需改为可公网访问的地址 │
|
||||
├─────┼────────────────────────────┼─────────────────────┼────────────────────────────────────────────────────────────────────────┤
|
||||
│ 5 │ 需要微信开发者工具 │ — │ 下载微信开发者工具,导入 coupon/ 目录 │
|
||||
├─────┼────────────────────────────┼─────────────────────┼────────────────────────────────────────────────────────────────────────┤
|
||||
│ 6 │ appid 所有权 │ — │ 确认 wx2d5ca40a16ebd1b3 是否还在用,或用新 appid │
|
||||
└─────┴────────────────────────────┴─────────────────────┴────────────────────────────────────────────────────────────────────────┘
|
||||
|
||||
建议的设计方案(可选):
|
||||
|
||||
┌─────┬─────────────────┬────────────────────────────────────────────┐
|
||||
│ # │ 建议 │ 说明 │
|
||||
├─────┼─────────────────┼────────────────────────────────────────────┤
|
||||
│ A │ 医院数据后端化 │ 删除硬编码,从 /system/hospital/list 加载 │
|
||||
├─────┼─────────────────┼────────────────────────────────────────────┤
|
||||
│ B │ 服务/价格后端化 │ 建 sys_service_type 表,从后端加载 │
|
||||
├─────┼─────────────────┼────────────────────────────────────────────┤
|
||||
│ C │ 陪护人员ID │ 去掉硬编码 bId: "104",由后端分配 │
|
||||
├─────┼─────────────────┼────────────────────────────────────────────┤
|
||||
│ D │ 加验证码登录 │ 调用 /system/msm 发验证码 + /smsLogin 登录 │
|
||||
└─────┴─────────────────┴────────────────────────────────────────────┘
|
||||
|
||||
---
|
||||
七、建议修复顺序
|
||||
|
||||
第一步:改小程序后端地址 + 跑通微信登录 (30分钟)
|
||||
第二步:修复下单→支付→支付完成完整链路 (2小时)
|
||||
第三步:修复支付成功页 (30分钟)
|
||||
第四步:清理硬编码,医院/服务数据后端化 (1小时)
|
||||
73
docs/Obsidian笔记体系/Projects/陪诊/修复计划0610.md
Normal file
73
docs/Obsidian笔记体系/Projects/陪诊/修复计划0610.md
Normal file
@@ -0,0 +1,73 @@
|
||||
微信小程序多角色系统测试报告
|
||||
|
||||
基于《多角色系统与分润方案》和《多角色系统需求目录》,对小程序的完整测试结果如下:
|
||||
|
||||
---
|
||||
Bugs(6个)
|
||||
|
||||
1. 🔴 TabBar switchTab 硬编码 — custom-tab-bar/index.js:31
|
||||
4个Tab页路径写死为 patient 页面。推广员(06)点击"推广数据"实际进入 pages/index/index
|
||||
显示患者首页,无法进入推广看板。调度/客服/运营同理。
|
||||
|
||||
2. 🔴 退款审核 API 参数不匹配 — refund/refund.js:52-53
|
||||
// 前端发送:
|
||||
data: { action: 'approve', reason: '' }
|
||||
// 后端期望(OrderViewController.java:279):
|
||||
Boolean approved = (Boolean) params.get("approved"); // 永远为 null
|
||||
通过/拒绝操作实际上不会生效。
|
||||
|
||||
3. 🔴 陪诊师接单调用错误API — index.js:118
|
||||
陪诊师接单调用了 /system/dispatch/assign/{orderId}/{uid},该接口要求 system:dispatch:assign 权限。陪诊师应调用
|
||||
/system/view/acceptOrderYes(无需特殊权限)。
|
||||
|
||||
4. 🟡 运营看板为占位页面 — ops/ops.wxml
|
||||
4个统计卡片全部显示 --,未调用任何后端 API 获取真实数据。
|
||||
|
||||
5. 🟡 Tab页缺少推广员/工作角色视图
|
||||
- index.js 只处理 B vs 非B(均走患者视图)。推广员(06)Tab1应显示推广看板,但目前显示患者首页
|
||||
- service.js 同样只处理 B vs 非B。推广员Tab2(团队)和调度员Tab2(全部订单)都走到患者服务列表
|
||||
|
||||
6. 🟡 手机号硬编码 — my.js:152
|
||||
phoneNumber: '4001234567' 为占位号码。
|
||||
|
||||
---
|
||||
功能缺失(3个)
|
||||
|
||||
7. 注册页缺少身份选择 — 需求5.1.2要求注册时三选一(我需要服务/我提供服务/我推广赚佣金),当前未实现
|
||||
|
||||
8. 分享页面未处理邀请码绑定 — share.js:50 分享路径带 promotionCode 参数,但 index.js 未读取该参数并调用绑定接口
|
||||
|
||||
9. 调度面板不支持改派 — 需求5.3.1要求改派功能(更换陪诊师+原因),当前 dispatch 页面只有指派,无改派操作
|
||||
|
||||
---
|
||||
验证通过(10项)
|
||||
|
||||
- ✅ Custom TabBar 组件按角色动态渲染(ROLE_TABS 配置正确)
|
||||
- ✅ My 页面角色切换功能(showRoleSwitch,C⇄B⇄06 可切换)
|
||||
- ✅ 陪诊师 TabBar 标签(待接单/进行中/已完成/我的)
|
||||
- ✅ 推广员 TabBar 标签(推广数据/我的团队/佣金/我的)
|
||||
- ✅ 调度/客服/运营 TabBar 标签正确
|
||||
- ✅ app.json 子包注册正确(pages-promoter、pages-work)
|
||||
- ✅ 推广子包4个页面文件完整(dashboard/team/commission/share)
|
||||
- ✅ 工作台子包4个页面文件完整(dispatch/refund/ops/search)
|
||||
- ✅ 后端6个API端点均存在并正常响应(promotion: myStats/team/myCommission/generateCode,dispatch: pending/caregivers/history)
|
||||
- ✅ 退款审核页面有驳回原因弹窗 + 前端校验
|
||||
|
||||
---
|
||||
建议修复顺序
|
||||
|
||||
┌────────┬────────────────────────────┬──────────────────────────┐
|
||||
│ 优先级 │ 问题 │ 影响 │
|
||||
├────────┼────────────────────────────┼──────────────────────────┤
|
||||
│ P0 │ Bug #1 — TabBar路由硬编码 │ 多角色Tab导航完全失效 │
|
||||
├────────┼────────────────────────────┼──────────────────────────┤
|
||||
│ P0 │ Bug #3 — 陪诊师接单API错误 │ 陪诊师小程序端无法接单 │
|
||||
├────────┼────────────────────────────┼──────────────────────────┤
|
||||
│ P1 │ Bug #2 — 退款API参数不匹配 │ 客服无法处理退款 │
|
||||
├────────┼────────────────────────────┼──────────────────────────┤
|
||||
│ P1 │ Bug #5 — 缺少角色视图 │ 推广员/工作角色Tab页空白 │
|
||||
├────────┼────────────────────────────┼──────────────────────────┤
|
||||
│ P2 │ Bug #4 — 运营看板占位 │ 运营经理看不到数据 │
|
||||
├────────┼────────────────────────────┼──────────────────────────┤
|
||||
│ P2 │ 缺失 #7 — 注册身份选择 │ 无法自选推广员身份 │
|
||||
└────────┴────────────────────────────┴──────────────────────────┘
|
||||
@@ -7,13 +7,14 @@ $env:ANTHROPIC_MODEL="deepseek-v4-pro"
|
||||
bun run dev
|
||||
|
||||
|
||||
|
||||
adb shell "dumpsys window | grep mCurrentFocus"
|
||||
|
||||
记忆:
|
||||
瑞来健康项目资料
|
||||
|
||||
云后台服务器
|
||||
1.连接D:\cd\tengxunyun\云服务器信息.md
|
||||
1.连接D:\zhiku\mkdocs\docs\Obsidian笔记体系\Projects\common\腾讯云服务器信息.md
|
||||
2./home/renjianbo/saars/rlz/目录下的项目包含java后台
|
||||
云服务器java后台目录/home/renjianbo/saars/rlz/目录下的项目已经git clone到本地D:\androidPj\rlz
|
||||
移动端android路径D:\androidPj\rlz\peizhen
|
||||
@@ -37,6 +38,13 @@ Gitea 和服务器 /home/renjianbo/saars/rlz/和本地 D:\androidPj\rlz 代码
|
||||
|
||||
|
||||
|
||||
提交代码
|
||||
git仓 http://101.43.95.130:3001/admin/rlz (Gitea),账户 admin 密码123456
|
||||
云服务器java后台目录/home/renjianbo/saars/rlz/目录下的项目已经git clone到本地D:\androidPj\rlz
|
||||
移动端android路径D:\androidPj\rlz\peizhen
|
||||
微信小程序路径D:\androidPj\rlz\coupon
|
||||
|
||||
|
||||
|
||||
|
||||
数据库配置
|
||||
@@ -45,4 +53,4 @@ DATABASE_URL=mysql+pymysql://root:!Rjb12191@gz-cynosdbmysql-grp-d26pzce5.sql.ten
|
||||
|
||||
|
||||
|
||||
|
||||
根据多角色系统与分润方案和多角色系统需求目录和http://101.43.95.130:3001/admin/rlz/issues?page=1里的需求,开始落地吧
|
||||
BIN
docs/assets/images/Pasted image 20260524215622.png
Normal file
BIN
docs/assets/images/Pasted image 20260524215622.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 67 KiB |
BIN
docs/assets/images/Pasted image 20260531234735.png
Normal file
BIN
docs/assets/images/Pasted image 20260531234735.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 62 KiB |
@@ -1,85 +0,0 @@
|
||||
# Java 学习笔记
|
||||
|
||||
## 基础语法
|
||||
|
||||
### 变量和数据类型
|
||||
|
||||
```java
|
||||
// 基本数据类型
|
||||
int age = 25;
|
||||
double price = 99.99;
|
||||
boolean isActive = true;
|
||||
String name = "Java";
|
||||
```
|
||||
|
||||
### 控制结构
|
||||
|
||||
```java
|
||||
// if-else
|
||||
if (age >= 18) {
|
||||
System.out.println("成年人");
|
||||
} else {
|
||||
System.out.println("未成年人");
|
||||
}
|
||||
|
||||
// for 循环
|
||||
for (int i = 0; i < 10; i++) {
|
||||
System.out.println(i);
|
||||
}
|
||||
```
|
||||
|
||||
## 面向对象
|
||||
|
||||
### 类和对象
|
||||
|
||||
```java
|
||||
public class Person {
|
||||
private String name;
|
||||
private int age;
|
||||
|
||||
public Person(String name, int age) {
|
||||
this.name = name;
|
||||
this.age = age;
|
||||
}
|
||||
|
||||
public void introduce() {
|
||||
System.out.println("我是 " + name + ",今年 " + age + " 岁");
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## 集合框架
|
||||
|
||||
### List
|
||||
|
||||
```java
|
||||
List<String> list = new ArrayList<>();
|
||||
list.add("Java");
|
||||
list.add("Python");
|
||||
list.add("Go");
|
||||
```
|
||||
|
||||
### Map
|
||||
|
||||
```java
|
||||
Map<String, Integer> map = new HashMap<>();
|
||||
map.put("Java", 1);
|
||||
map.put("Python", 2);
|
||||
```
|
||||
|
||||
## 常用工具类
|
||||
|
||||
### String 操作
|
||||
|
||||
```java
|
||||
String str = "Hello World";
|
||||
str.length(); // 长度
|
||||
str.substring(0, 5); // 子串
|
||||
str.split(" "); // 分割
|
||||
```
|
||||
|
||||
## 学习资源
|
||||
|
||||
- [Oracle Java 教程](https://docs.oracle.com/javase/tutorial/)
|
||||
- [Java 官方文档](https://docs.oracle.com/en/java/)
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
这是一个非常典型的提示词工程对比场景。我们可以从**结构性、专业性、可执行性、以及交付标准**四个维度进行详细对比。
|
||||
|
||||
### 综合结论:**第二个更好**
|
||||
|
||||
虽然两个提示词都具备很高的专业水准,但第二个提示词在**逻辑闭环**、**受众同理心**以及**交付物的实用性**上更胜一筹。第一个提示词更像一份“技术需求文档”,而第二个更像一份“课程设计蓝图”。
|
||||
|
||||
以下是详细的对比分析:
|
||||
|
||||
---
|
||||
|
||||
### 1. 结构性对比
|
||||
* **第一个**:结构非常清晰,采用了标准的工程文档格式(背景、规范、约束、交付、评估)。这种格式的好处是严谨,但略显生硬,像在给AI下达“开发任务”。
|
||||
* **第二个**:同样结构清晰,但加入了更多的引导性语言。例如在“背景”中解释了“为什么”要学(解决疑难杂症),在“质量”中强调了“平衡”。这使得提示词不仅是命令,更像是在与一个协作者沟通。
|
||||
|
||||
### 2. 专业性深度
|
||||
* **第一个**:技术点罗列非常密集,几乎覆盖了WMS的所有核心细节(如 `WindowManagerGlobalLock`、`TaskFragment`、`BadTokenException`)。适合作为一份技术检查清单。
|
||||
* **第二个**:不仅罗列了技术点,还梳理了**逻辑关系**。例如,它明确指出了 **“MeasureSpec如何从WMS传递到应用层”** 以及 **“WMS作为仲裁者”** 的概念。这比单纯列出“布局计算”更能帮助理解系统的运行机制,体现了“深度解析”而非“功能罗列”。
|
||||
|
||||
### 3. 可执行性(对AI的友好度)
|
||||
* **第一个**:对代码片段和文件路径的要求极其具体(如 `frameworks/base/services/core/java/com/android/server/wm/`),这在生成精确内容时非常有用。但它要求“可验证性”和“最新分支”,对于AI来说,知识截止日期可能导致无法保证“最新”。
|
||||
* **第二个**:对代码版本的要求更宽容(“建议以最新稳定版为主”),同时要求揭示“内部状态机”和“锁竞争”,这更侧重于**原理的通用性**。在提示词工程中,引导AI讲“道理”往往比讲“最新代码”更容易产生有深度的内容。
|
||||
|
||||
### 4. 交付标准与实用性
|
||||
* **第一个**:评估标准很量化(完整性、准确性、可验证性)。但其中“行号可追溯”的要求对于AI生成内容来说难度极高,且容易产生虚假信息。
|
||||
* **第二个**:评估标准更偏向**认知提升**。例如“超越了官方文档和普通博客的深度”、“能帮助高级工程师调试(分析dumpsys window命令输出)”。这表明第二个提示词的最终目标是**赋能听众**,而不是仅仅完成一份文档。
|
||||
|
||||
---
|
||||
|
||||
### 具体差异分析表
|
||||
|
||||
| 维度 | 第一个提示词 | 第二个提示词 | 胜出方 |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| **开场白** | 平铺直叙,直接进入背景 | 通过“问题域”和“核心价值”切入,建立学习动机 | 第二个 |
|
||||
| **核心概念讲解** | 列出了模块名(如 `WindowState`),但偏静态 | 不仅列出类名,还强调层级管理关系和交互链路(如从`ViewRootImpl`到WMS) | 第二个 |
|
||||
| **难点处理** | 提到了锁机制和优化策略 | 同样提到了锁机制,但强调了“避免陷入无关代码的逐行解读”,注重主干清晰 | 第二个 |
|
||||
| **对代码的要求** | 极严格(要求行号、最新分支),可能导致AI产生幻觉 | 严格但合理(要求核心逻辑片段,注重通用原理) | 第一个(理想状态下更精确),但第二个更务实 |
|
||||
| **交付物导向** | 更像一份技术手册目录 | 更像一份面向高级工程师的**培训课程大纲** | 第二个 |
|
||||
|
||||
### 总结
|
||||
|
||||
* **第一个提示词的优点**:极其严谨,适合用来生成一份**技术参考手册**或**源码导读文档**。如果你需要AI帮你整理一份包含大量精确代码路径和API用法的文档,第一个更好。
|
||||
* **第二个提示词的优点**:具备教学法和逻辑性,适合用来生成一份**培训课件**。它告诉AI不仅要输出“是什么”,还要输出“为什么”以及“如何思考”。
|
||||
|
||||
**建议:**
|
||||
如果你打算给团队做技术分享,**建议采用第二个提示词**,或者以第二个为主框架,将第一个中那些具体的“技术点清单”(如 `BadTokenException` 触发条件、多显示器支持)作为补充要求填入第二个的“高级主题”部分。这样既能保证课程的逻辑性,又能确保技术覆盖的完整性。
|
||||
@@ -1,119 +0,0 @@
|
||||
# 前端学习笔记
|
||||
|
||||
## HTML
|
||||
|
||||
### 基本结构
|
||||
|
||||
```html
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>页面标题</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>标题</h1>
|
||||
<p>段落内容</p>
|
||||
</body>
|
||||
</html>
|
||||
```
|
||||
|
||||
## CSS
|
||||
|
||||
### 样式定义
|
||||
|
||||
```css
|
||||
.container {
|
||||
width: 100%;
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
.button {
|
||||
background-color: #007bff;
|
||||
color: white;
|
||||
padding: 10px 20px;
|
||||
border: none;
|
||||
border-radius: 4px;
|
||||
cursor: pointer;
|
||||
}
|
||||
```
|
||||
|
||||
## JavaScript
|
||||
|
||||
### 基础语法
|
||||
|
||||
```javascript
|
||||
// 变量
|
||||
let name = "JavaScript";
|
||||
const age = 25;
|
||||
|
||||
// 函数
|
||||
function greet(name) {
|
||||
return `Hello, ${name}!`;
|
||||
}
|
||||
|
||||
// 箭头函数
|
||||
const greet = (name) => `Hello, ${name}!`;
|
||||
|
||||
// 异步函数
|
||||
async function fetchData() {
|
||||
const response = await fetch('/api/data');
|
||||
const data = await response.json();
|
||||
return data;
|
||||
}
|
||||
```
|
||||
|
||||
## 框架和库
|
||||
|
||||
### React
|
||||
|
||||
```jsx
|
||||
import React, { useState } from 'react';
|
||||
|
||||
function App() {
|
||||
const [count, setCount] = useState(0);
|
||||
|
||||
return (
|
||||
<div>
|
||||
<p>计数: {count}</p>
|
||||
<button onClick={() => setCount(count + 1)}>
|
||||
增加
|
||||
</button>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
```
|
||||
|
||||
### Vue
|
||||
|
||||
```vue
|
||||
<template>
|
||||
<div>
|
||||
<p>计数: {{ count }}</p>
|
||||
<button @click="increment">增加</button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
count: 0
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
increment() {
|
||||
this.count++;
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
```
|
||||
|
||||
## 学习资源
|
||||
|
||||
- [MDN Web 文档](https://developer.mozilla.org/)
|
||||
- [React 官方文档](https://react.dev/)
|
||||
- [Vue 官方文档](https://cn.vuejs.org/)
|
||||
|
||||
Reference in New Issue
Block a user