更新知识库文档:新增 agent、aitsc、claude code、组织架构等笔记
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,241 @@
|
||||
|
||||
aitsc 是一个功能完整、架构清晰的 AI 提示词生成平台,具备以下优势:
|
||||
|
||||
1. 产品定位准确:抓住 AI 提示词优化市场痛点
|
||||
2. 技术栈合理:Python/Flask 生态成熟稳定
|
||||
3. 功能覆盖全面:从核心提示词生成到多场景 AI 应用
|
||||
4. 部署方案完备:支持从开发到生产的全链路部署
|
||||
|
||||
主要风险集中在安全方面:硬编码的数据库密码和 API 密钥一旦泄露,可能导致数据泄露和 API
|
||||
滥用。建议优先解决此问题后再投入生产使用。
|
||||
|
||||
项目具备良好的商业化潜力,只需进行适当的安全加固和架构优化,即可成为成熟的 AI 应用平台。
|
||||
|
||||
---分析完成时间:2026-04-02
|
||||
分析工具:Claude Code (Sonnet 4.6)
|
||||
|
||||
● aitsc 项目分析报告
|
||||
|
||||
项目概述
|
||||
|
||||
项目名称:提示词大师 (aitsc / flask_prompt_master)
|
||||
项目定位:基于大语言模型(LLM)的智能提示词生成与多场景 AI 应用平台
|
||||
技术栈:Python 3.12、Flask、Gunicorn、SQLAlchemy、MySQL、DeepSeek API(OpenAI 兼容)、Docker、Kubernetes
|
||||
目标用户:Web 用户、微信小程序用户、管理员
|
||||
部署方式:本地开发、Docker 容器化、K8s 云部署、Windows 服务
|
||||
访问端口:5002
|
||||
|
||||
项目结构分析
|
||||
|
||||
目录结构
|
||||
|
||||
aitsc/
|
||||
├── src/flask_prompt_master/ # 主应用核心
|
||||
│ ├── __init__.py # 应用工厂函数
|
||||
│ ├── app.py # 模拟 API 服务(测试用)
|
||||
│ ├── config.py # 应用配置
|
||||
│ ├── models/ # 数据模型
|
||||
│ │ ├── models.py # 核心数据模型
|
||||
│ │ ├── favorites.py # 收藏模型
|
||||
│ │ ├── history_models.py # 历史记录模型
|
||||
│ │ ├── optimization_history.py # 优化历史模型
|
||||
│ │ └── poetry_favorites.py # 古诗词收藏模型
|
||||
│ ├── routes/ # 业务路由(蓝图)
|
||||
│ │ ├── routes.py # 主路由
|
||||
│ │ ├── auth.py # 认证路由
|
||||
│ │ ├── favorites.py # 收藏路由
|
||||
│ │ ├── meal_planning.py # 饭菜规划路由
|
||||
│ │ ├── poetry.py # 古诗词解析路由
|
||||
│ │ ├── history_routes.py # 历史记录路由
|
||||
│ │ ├── weekly_report.py # 智能周报路由
|
||||
│ │ ├── travel_planning.py # 旅行攻略路由
|
||||
│ │ ├── meeting_minutes.py # 会议纪要多路由
|
||||
│ │ ├── resume_optimization.py # 简历优化路由
|
||||
│ │ ├── prompt_optimization.py # 提示词优化路由
|
||||
│ │ ├── smart_prompt_optimization.py # 智能提示词优化路由
|
||||
│ │ ├── expert_generate_2.py # 专家提示词2号
|
||||
│ │ ├── expert_generate_3.py # 专家提示词3号
|
||||
│ │ ├── android_tools.py # Android 工程师工具
|
||||
│ │ └── placeholder_apps.py # 占位应用
|
||||
│ ├── services/ # 业务逻辑服务
|
||||
│ │ ├── auth_service.py # 认证服务
|
||||
│ │ ├── favorite_service.py # 收藏服务
|
||||
│ │ └── poetry_favorite_service.py # 古诗词收藏服务
|
||||
│ ├── forms/ # 表单类(待完善)
|
||||
│ ├── templates/ # HTML 模板
|
||||
│ ├── static/ # 静态资源
|
||||
│ ├── utils/ # 工具函数
|
||||
│ ├── admin/ # 后台管理
|
||||
│ └── promptsTemplates.py # 提示词模板数据(144KB)
|
||||
├── config.py # 全局配置(含腾讯云数据库)
|
||||
├── docker-compose.yml # Docker Compose 配置
|
||||
├── docker-compose.prod.yml # 生产环境配置
|
||||
├── docker-compose.simple.yml # 简化配置
|
||||
├── Dockerfile # 应用 Dockerfile
|
||||
├── Dockerfile.log-manager # 日志管理 Dockerfile
|
||||
├── Dockerfile.monitor # 监控 Dockerfile
|
||||
├── requirements.txt # Python 依赖
|
||||
├── run_dev.py # 开发环境启动脚本
|
||||
├── run_dev_fixed.py # 修复版启动脚本
|
||||
├── run_production_public.py # 生产环境启动脚本
|
||||
├── k8s/ # Kubernetes 配置
|
||||
├── wechat-miniprogram/ # 微信小程序代码
|
||||
├── exampleAiApp01/ # 示例 AI 应用
|
||||
├── scripts/ # 部署和管理脚本
|
||||
├── tests/ # 测试文件
|
||||
├── migrations/ # 数据库迁移
|
||||
├── logs/ # 日志目录
|
||||
├── docs/ # 文档
|
||||
├── backups/ # 备份文件
|
||||
└── 大量中文文档(功能设计、部署指南、优化报告等)
|
||||
|
||||
架构设计
|
||||
|
||||
- MVC 模式:清晰的数据模型(Model)、视图模板(View)、路由控制器(Controller)
|
||||
- 蓝图模块化:功能按业务模块划分,便于维护和扩展
|
||||
- 服务层分离:业务逻辑集中在 services 目录,路由层保持简洁
|
||||
- 配置管理:支持多环境配置(开发、测试、生产)
|
||||
- 数据库:MySQL + SQLAlchemy ORM,支持本地和腾讯云双数据库
|
||||
|
||||
功能模块分析
|
||||
|
||||
1. 核心 AI 功能
|
||||
|
||||
- 提示词生成:用户输入简短描述,基于模板调用 LLM 生成高质量提示词
|
||||
- 意图识别:分析用户输入,推荐模板类别(新闻获取、生成图片、网站开发等)
|
||||
- 专家提示词:两阶段生成(意图分析 → 领域专家模板生成)
|
||||
|
||||
2. 多场景 AI 应用
|
||||
|
||||
- 智能饭菜规划:根据人数、餐型、家乡、预算等生成地区化饭菜清单
|
||||
- 古诗词解析:提供原文、译文、注释、解读(支持收藏功能)
|
||||
- 智能周报/日报:根据工作要点生成结构化报告
|
||||
- 旅行攻略规划:基于目的地、天数、人数、预算生成详细攻略
|
||||
- 会议纪要整理:原始内容转写为结构化纪要
|
||||
- 简历/求职信优化:根据岗位描述针对性优化简历内容
|
||||
- Android 工程师工具:Crash 解读、依赖冲突分析等专业工具
|
||||
|
||||
3. 用户系统
|
||||
|
||||
- Web 用户认证:注册、登录、个人资料、Session 管理
|
||||
- 微信小程序登录:code 换 openid/session_key,返回自定义 uid
|
||||
- 权限控制:登录验证装饰器保护敏感接口
|
||||
|
||||
4. 数据管理
|
||||
|
||||
- 收藏功能:通用收藏管理,支持增删改查、统计
|
||||
- 历史记录:提示词历史、优化历史的查看、标签、批量操作
|
||||
- 模板管理:内置行业模板(写作、故事、短视频、设计、营销等)
|
||||
|
||||
5. 管理功能
|
||||
|
||||
- Flask-Admin 后台:用户/内容/系统/数据分析管理
|
||||
- 监控服务:系统运行状态监控
|
||||
- 日志管理:集中式日志收集和分析
|
||||
|
||||
代码质量分析
|
||||
|
||||
优点
|
||||
|
||||
1. 结构清晰:符合 Flask 最佳实践,模块划分合理
|
||||
2. 文档完善:大量中文文档覆盖功能设计、部署指南、优化报告
|
||||
3. 部署方案全面:支持 Docker、K8s、Windows 服务多种部署方式
|
||||
4. 测试覆盖:包含大量测试文件,覆盖主要功能
|
||||
5. 错误处理:全局 500 错误处理,记录完整堆栈信息
|
||||
|
||||
安全问题
|
||||
|
||||
硬编码敏感信息(高风险):
|
||||
- 数据库密码:!Rjb12191(腾讯云数据库)
|
||||
- DeepSeek API 密钥:sk-fdf7cc1c73504e628ec0119b7e11b8cc
|
||||
- 微信小程序密钥:89aa97dda3c1347c6ae3d6ab4627f1f4
|
||||
- 位置:config.py 和 src/flask_prompt_master/config.py
|
||||
密码哈希安全性不足:
|
||||
- 使用 MD5 加盐哈希,建议升级为 bcrypt 或 Argon2
|
||||
- 位置:auth_service.py 的 hash_password 方法
|
||||
CORS 配置过于宽松:
|
||||
- CORS_ORIGINS = ['*'] 生产环境应限制具体域名
|
||||
|
||||
代码规范问题
|
||||
|
||||
6. 配置文件重复:根目录和 src/flask_prompt_master 下都有 config.py
|
||||
7. 大型数据文件:promptsTemplates.py 文件过大(144KB),应考虑数据库存储
|
||||
8. 模拟数据与真实代码混合:app.py 包含模拟 API,可能与真实路由混淆
|
||||
9. 中英混合命名:部分文件和变量使用中文,不利于国际化协作
|
||||
|
||||
依赖管理
|
||||
|
||||
- 主要依赖:Flask、SQLAlchemy、OpenAI、PyMySQL、Redis 等
|
||||
- 版本管理:requirements.txt 指定版本范围,但缺少 lock 文件
|
||||
- Windows 特定依赖:pywin32 用于 Windows 服务部署
|
||||
|
||||
部署与运维
|
||||
|
||||
支持的部署方式
|
||||
|
||||
1. 本地开发:Python 虚拟环境 + Flask 开发服务器
|
||||
2. Docker 容器化:完整微服务栈(App + MySQL + Redis + Nginx)
|
||||
3. Kubernetes:生产级容器编排配置
|
||||
4. Windows 服务:通过 pywin32 部署为系统服务
|
||||
5. 腾讯云集成:支持腾讯云数据库直连
|
||||
|
||||
监控与维护
|
||||
|
||||
- 日志管理:Docker 日志卷 + 独立日志管理服务
|
||||
- 系统监控:独立的监控服务和管理器
|
||||
- 数据库迁移:Flask-Migrate 支持数据库版本管理
|
||||
- 备份机制:定期备份目录和脚本
|
||||
|
||||
改进建议
|
||||
|
||||
高优先级
|
||||
|
||||
修复安全漏洞:
|
||||
- 移除硬编码的敏感信息,全部改为环境变量
|
||||
- 更新密码哈希算法为 bcrypt 或 Argon2
|
||||
- 生产环境限制 CORS 域名
|
||||
配置文件优化:
|
||||
- 统一配置管理,消除重复配置
|
||||
- 实现多环境配置自动切换
|
||||
|
||||
中优先级
|
||||
|
||||
代码重构:
|
||||
- 将 promptsTemplates.py 大文件内容迁移到数据库
|
||||
- 清理测试和模拟代码,分离测试环境
|
||||
- 统一命名规范,减少中英混合
|
||||
依赖管理:
|
||||
- 添加 requirements.lock 文件确保依赖一致性
|
||||
- 考虑使用 Poetry 或 Pipenv 管理依赖
|
||||
API 设计:
|
||||
- 统一 API 响应格式和错误码
|
||||
- 添加 API 版本控制(目前部分使用 /api/v1/,部分没有)
|
||||
|
||||
低优先级
|
||||
|
||||
性能优化:
|
||||
- 考虑添加 Redis 缓存层减少数据库压力
|
||||
- 优化大型查询的分页性能
|
||||
文档完善:
|
||||
- 添加 API 接口文档(OpenAPI/Swagger)
|
||||
- 补充部署环境的详细配置说明
|
||||
测试增强:
|
||||
- 增加集成测试和端到端测试
|
||||
- 添加 CI/CD 流水线自动化测试
|
||||
|
||||
总结
|
||||
|
||||
aitsc 项目是一个功能丰富、架构清晰的 AI 应用平台,具备以下特点:
|
||||
|
||||
优势:
|
||||
- 功能全面,覆盖多场景 AI 应用需求
|
||||
- 架构设计合理,模块化程度高
|
||||
- 部署方案多样,适应不同环境需求
|
||||
- 文档完善,便于理解和维护
|
||||
|
||||
风险:
|
||||
- 安全漏洞较为严重(硬编码敏感信息)
|
||||
- 部分代码需要重构优化
|
||||
- 生产环境配置需要加固
|
||||
|
||||
建议:立即修复安全漏洞,然后进行代码重构和性能优化,可发展为成熟的企业级 AI 应用平台。
|
||||
126
docs/Obsidian笔记体系/Projects/aitsc/wk1.md
Normal file
126
docs/Obsidian笔记体系/Projects/aitsc/wk1.md
Normal file
@@ -0,0 +1,126 @@
|
||||
● 高优先级安全改进状态分析
|
||||
|
||||
基于对 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 密钥获取逻辑
|
||||
|
||||
总结:配置架构已改进,但代码层面仍有严重的安全漏洞需要立即修复,否则新的配置系统无法提供实际安全保护。
|
||||
227
docs/Obsidian笔记体系/Projects/aitsc/wk2.md
Normal file
227
docs/Obsidian笔记体系/Projects/aitsc/wk2.md
Normal file
@@ -0,0 +1,227 @@
|
||||
● 根据分析,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. 还是您有其他特定的要求?
|
||||
|
||||
迁移完成后,项目的安全性、可维护性和部署便利性将显著提升。
|
||||
151
docs/Obsidian笔记体系/Projects/aitsc/wk3 Windows 运行.md
Normal file
151
docs/Obsidian笔记体系/Projects/aitsc/wk3 Windows 运行.md
Normal file
@@ -0,0 +1,151 @@
|
||||
✅ 完全支持 Windows 运行
|
||||
|
||||
aitsc 项目完全支持在 Windows 系统上运行,并且提供了多种运行方式,从开发环境到生产部署都有完整支持。
|
||||
|
||||
🚀 支持的运行方式
|
||||
|
||||
1. 开发环境运行(最简单)
|
||||
|
||||
# 激活虚拟环境(推荐)
|
||||
.venv\Scripts\Activate.bat
|
||||
|
||||
# 启动开发服务器
|
||||
python run_dev.py
|
||||
- 访问地址:http://localhost:5002
|
||||
- 调试模式开启,代码修改自动重载
|
||||
|
||||
2. 生产环境运行
|
||||
|
||||
# 使用生产启动脚本
|
||||
start_production.bat
|
||||
# 或
|
||||
python run_production_public.py
|
||||
- 关闭调试模式,优化性能
|
||||
- 监听所有网络接口(支持外网访问)
|
||||
- 多线程处理请求
|
||||
|
||||
3. Windows 系统服务(推荐用于生产)
|
||||
|
||||
# 以管理员身份运行安装脚本
|
||||
install_service.bat
|
||||
|
||||
# 或手动安装服务
|
||||
python flask_prompt_master_service.py install
|
||||
python flask_prompt_master_service.py start
|
||||
- 支持开机自启动
|
||||
- 后台运行,无需保持命令行窗口
|
||||
- 作为系统服务管理(启动/停止/重启)
|
||||
|
||||
4. 简化版开机启动
|
||||
|
||||
# 使用任务计划程序实现开机启动
|
||||
python simple_windows_service.py install
|
||||
- 基于 Windows 任务计划程序
|
||||
- 系统启动时自动运行
|
||||
- 不需要完整服务框架
|
||||
|
||||
📋 Windows 运行前提条件
|
||||
|
||||
1. Python 环境
|
||||
|
||||
- Python 3.12(推荐)
|
||||
- 已安装 pip
|
||||
|
||||
2. 虚拟环境(推荐)
|
||||
|
||||
# 创建虚拟环境
|
||||
python -m venv .venv
|
||||
|
||||
# 激活虚拟环境
|
||||
.venv\Scripts\Activate.bat
|
||||
|
||||
3. 安装依赖
|
||||
|
||||
pip install -r requirements.txt
|
||||
关键 Windows 依赖:
|
||||
- pywin32 - Windows API 接口(服务部署必需)
|
||||
- waitress - WSGI 服务器
|
||||
- bcrypt - 密码哈希(已升级安全算法)
|
||||
|
||||
🔧 Windows 特定配置
|
||||
|
||||
1. 环境变量配置
|
||||
|
||||
- 复制 .env.example 为 .env
|
||||
- 编辑 .env 文件,配置数据库连接等参数
|
||||
- 注意:Windows 路径使用反斜杠或双反斜杠
|
||||
|
||||
2. 端口配置
|
||||
|
||||
- 默认端口:5002(开发)/ 5000(服务)
|
||||
- 如果端口冲突,可在 .env 中修改 PORT 变量
|
||||
|
||||
3. 防火墙配置
|
||||
|
||||
# 允许端口通过防火墙
|
||||
New-NetFirewallRule -DisplayName "FlaskPromptMaster" -Direction Inbound -LocalPort 5000 -Protocol TCP
|
||||
-Action Allow
|
||||
|
||||
📁 关键 Windows 文件
|
||||
|
||||
aitsc/
|
||||
├── install_service.bat # 服务安装脚本(管理员运行)
|
||||
├── install_startup.bat # 开机启动安装脚本
|
||||
├── service_manager.bat # 服务管理脚本(图形菜单)
|
||||
├── simple_service_manager.bat # 简化版服务管理
|
||||
├── start_production.bat # 生产环境启动脚本
|
||||
├── flask_prompt_master_service.py # 完整 Windows 服务脚本
|
||||
├── simple_windows_service.py # 简化版服务脚本
|
||||
└── docs/development/
|
||||
└── Windows服务配置总结.md # 详细配置指南
|
||||
|
||||
⚡ 快速开始指南
|
||||
|
||||
方案一:开发测试
|
||||
# 1. 安装依赖
|
||||
pip install -r requirements.txt
|
||||
|
||||
# 2. 配置环境变量
|
||||
copy .env.example .env
|
||||
# 编辑 .env 文件(数据库、API密钥等)
|
||||
|
||||
# 3. 启动开发服务器
|
||||
python run_dev.py
|
||||
|
||||
方案二:生产部署
|
||||
# 1. 安装依赖和服务组件
|
||||
pip install -r requirements.txt
|
||||
|
||||
# 2. 安装 Windows 服务
|
||||
install_service.bat
|
||||
# 或右键"以管理员身份运行"
|
||||
|
||||
# 3. 服务会自动启动,开机自启动
|
||||
# 访问 http://localhost:5000
|
||||
|
||||
🛠️ 故障排除
|
||||
|
||||
┌──────────────────┬──────────────────────────────────────────┐
|
||||
│ 问题 │ 解决方案 │
|
||||
├──────────────────┼──────────────────────────────────────────┤
|
||||
│ 权限不足 │ 右键脚本 → "以管理员身份运行" │
|
||||
├──────────────────┼──────────────────────────────────────────┤
|
||||
│ 端口冲突 │ 修改 .env 中的 PORT 变量 │
|
||||
├──────────────────┼──────────────────────────────────────────┤
|
||||
│ pywin32 安装失败 │ 使用预编译版本:pip install pywin32==306 │
|
||||
├──────────────────┼──────────────────────────────────────────┤
|
||||
│ 虚拟环境激活失败 │ 确认 Python 路径正确:where python │
|
||||
├──────────────────┼──────────────────────────────────────────┤
|
||||
│ 服务启动失败 │ 查看日志:logs\service.log │
|
||||
└──────────────────┴──────────────────────────────────────────┘
|
||||
|
||||
🎯 推荐方案
|
||||
|
||||
个人使用/开发 → 使用 run_dev.py(简单快捷)
|
||||
|
||||
小型部署 → 使用 simple_windows_service.py + 开机启动
|
||||
|
||||
企业级部署 → 使用完整的 Windows 服务 (install_service.bat)
|
||||
|
||||
总结:aitsc 在 Windows 上的支持非常完善,既有简单的开发运行方式,也有专业的 Windows
|
||||
服务部署方案,完全可以满足从开发到生产的全链路需求。
|
||||
56
docs/Obsidian笔记体系/Projects/aitsc/wk4 aitsc 项目添加版本号 v1.0.0.md
Normal file
56
docs/Obsidian笔记体系/Projects/aitsc/wk4 aitsc 项目添加版本号 v1.0.0.md
Normal file
@@ -0,0 +1,56 @@
|
||||
● ✅ 已为 aitsc 项目添加版本号 v1.0.0
|
||||
|
||||
📋 版本配置详情
|
||||
|
||||
核心版本定义:
|
||||
- src/flask_prompt_master/__init__.py:添加 __version__ = '1.0.0' 和 __version_info__ = (1, 0, 0)
|
||||
- VERSION 文件:包含纯文本版本号 1.0.0
|
||||
|
||||
启动日志增强: 所有环境配置现在都会显示版本信息
|
||||
- config/development.py:开发环境启动时显示版本
|
||||
- config/production.py:生产环境启动时显示版本
|
||||
- config/testing.py:测试环境启动时显示版本
|
||||
- config/local.py:本地环境启动时显示版本
|
||||
- config/base.py:基础配置启动时显示版本
|
||||
|
||||
文档更新:
|
||||
- README.md:在标题下方添加版本信息 **版本**: v1.0.0
|
||||
|
||||
🔧 技术实现
|
||||
|
||||
1. 版本导入机制:通过 from src.flask_prompt_master import __version__ 安全导入版本信息
|
||||
2. 错误处理:导入失败时显示 "版本: 未知" 而不是崩溃
|
||||
3. 日志输出:在现有启动日志中追加版本信息,格式为 开发环境启动 - 版本: 1.0.0
|
||||
|
||||
🚀 验证结果
|
||||
|
||||
服务器重启后,启动日志已显示版本信息:
|
||||
[2026-04-02 17:51:04,431] INFO in development: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20>汾: 1.0.0
|
||||
2026-04-02 17:51:04,431 INFO: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20>汾: 1.0.0
|
||||
|
||||
📁 文件变更
|
||||
|
||||
aitsc/
|
||||
├── src/flask_prompt_master/__init__.py # 添加版本变量
|
||||
├── VERSION # 创建版本文件
|
||||
├── README.md # 更新文档
|
||||
├── config/
|
||||
│ ├── development.py # 开发环境版本日志
|
||||
│ ├── production.py # 生产环境版本日志
|
||||
│ ├── testing.py # 测试环境版本日志
|
||||
│ ├── local.py # 本地环境版本日志
|
||||
│ └── base.py # 基础配置版本日志
|
||||
|
||||
⚡ 使用说明
|
||||
|
||||
- 查看版本:服务器启动时自动在日志中显示
|
||||
- 代码引用:在代码中可通过 from src.flask_prompt_master import __version__ 获取
|
||||
- 文件查看:直接读取 VERSION 文件或查看 README.md
|
||||
|
||||
🔄 后续建议
|
||||
|
||||
1. 版本升级:修改 src/flask_prompt_master/__init__.py 和 VERSION 文件
|
||||
2. Git 标签:建议配合版本号创建 git tag:git tag -a v1.0.0 -m "Release v1.0.0"
|
||||
3. API 端点:如需通过 API 获取版本,可添加 /api/version 端点
|
||||
|
||||
版本号 v1.0.0 已成功集成到项目中,所有环境启动时都会明确显示当前版本。
|
||||
296
docs/Obsidian笔记体系/Projects/aitsc/wk5.md
Normal file
296
docs/Obsidian笔记体系/Projects/aitsc/wk5.md
Normal file
@@ -0,0 +1,296 @@
|
||||
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
|
||||
开始,确保安全基础稳固后再进行架构优化。
|
||||
134
docs/Obsidian笔记体系/Projects/aitsc/wk6.md
Normal file
134
docs/Obsidian笔记体系/Projects/aitsc/wk6.md
Normal file
@@ -0,0 +1,134 @@
|
||||
● 基于对 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. 创建完整的帮助系统
|
||||
|
||||
总结
|
||||
|
||||
这个应用已经有了很好的基础,主要需要优化的是用户引导、操作效率和移动端体验。最关键的改进点是让用户更快理解
|
||||
如何使用,并减少操作步骤的认知负担。
|
||||
|
||||
建议先从添加筛选状态显示和优化移动端交互开始,这两项改进成本低但用户体验提升明显。
|
||||
145
docs/Obsidian笔记体系/Projects/aitsc/wk7.md
Normal file
145
docs/Obsidian笔记体系/Projects/aitsc/wk7.md
Normal file
@@ -0,0 +1,145 @@
|
||||
当前设计的优点
|
||||
|
||||
- 现代科技感设计:深蓝色主题、渐变效果、卡片布局
|
||||
- 响应式布局:适配桌面、平板、手机
|
||||
- 功能完整:侧边栏筛选、模板卡片、搜索、用户系统
|
||||
- 交互反馈:悬停效果、过渡动画
|
||||
- 技术先进: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优化
|
||||
|
||||
这些改进将显著提升用户满意度、可访问性和整体专业感。需要进一步检查具体实现代码,我可以帮助实现其中任何一项改进。
|
||||
217
docs/Obsidian笔记体系/Projects/aitsc/wk8.md
Normal file
217
docs/Obsidian笔记体系/Projects/aitsc/wk8.md
Normal file
@@ -0,0 +1,217 @@
|
||||
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重构建议需要根据团队实际情况调整
|
||||
实施节奏。
|
||||
9
docs/Obsidian笔记体系/Projects/aitsc/下任务.md
Normal file
9
docs/Obsidian笔记体系/Projects/aitsc/下任务.md
Normal file
@@ -0,0 +1,9 @@
|
||||
|
||||
|
||||
|
||||
D:\aaa\aitsc\上传git仓.md
|
||||
将修改上传到git仓rjb_win_dev分支
|
||||
http://101.43.95.130:3001/admin/aitsc.git
|
||||
|
||||
|
||||
D:\aaa\aitsc\改进计划.md
|
||||
Reference in New Issue
Block a user