From 1a87798b8af3080b3ba032e6cecc5a292e46a6fa Mon Sep 17 00:00:00 2001
From: rjb <263303411@qq.com>
Date: Mon, 23 Feb 2026 17:50:22 +0800
Subject: [PATCH] temp
---
(红头)启动和停止.txt | 3 +
AI项目功能需求文档.md | 202 ++++
docs/饭菜规划易用性改进建议.md | 98 ++
logs/app.log | 8 +
logs/gunicorn.log | 296 +-----
logs/gunicorn.pid | 2 +-
logs/gunicorn_access.log | 990 ++++++++++++++++++
logs/gunicorn_error.log | 446 ++++++++
src/flask_prompt_master/__init__.py | 7 +
.../__pycache__/__init__.cpython-312.pyc | Bin 2858 -> 3151 bytes
.../__pycache__/meal_planning.cpython-312.pyc | Bin 14950 -> 14434 bytes
.../routes/__pycache__/routes.cpython-312.pyc | Bin 52053 -> 52053 bytes
.../travel_planning.cpython-312.pyc | Bin 0 -> 4498 bytes
.../__pycache__/weekly_report.cpython-312.pyc | Bin 0 -> 3799 bytes
.../routes/meal_planning.py | 103 +-
.../routes/travel_planning.py | 78 ++
.../routes/weekly_report.py | 63 ++
src/flask_prompt_master/templates/base.html | 3 -
.../templates/generate.html | 68 +-
.../templates/meal_planning.html | 7 +-
.../templates/meal_planning_history.html | 334 +++---
.../templates/travel_planning.html | 154 +++
.../templates/weekly_report.html | 124 +++
23 files changed, 2471 insertions(+), 515 deletions(-)
create mode 100644 AI项目功能需求文档.md
create mode 100644 docs/饭菜规划易用性改进建议.md
create mode 100644 src/flask_prompt_master/routes/__pycache__/travel_planning.cpython-312.pyc
create mode 100644 src/flask_prompt_master/routes/__pycache__/weekly_report.cpython-312.pyc
create mode 100644 src/flask_prompt_master/routes/travel_planning.py
create mode 100644 src/flask_prompt_master/routes/weekly_report.py
create mode 100644 src/flask_prompt_master/templates/travel_planning.html
create mode 100644 src/flask_prompt_master/templates/weekly_report.html
diff --git a/(红头)启动和停止.txt b/(红头)启动和停止.txt
index c15ebde..682907f 100644
--- a/(红头)启动和停止.txt
+++ b/(红头)启动和停止.txt
@@ -124,6 +124,9 @@ pip list | grep -E "(flask|gunicorn|openai)"
启动成功后,可以访问以下地址:
+- **本机浏览器**:使用 `http://localhost:5002/` 或 `http://127.0.0.1:5002/`
+- **其他电脑/手机访问**:必须使用**服务器 IP**,不能使用 localhost(localhost 指向访问者本机,会连接失败)
+
- **主页**:`http://101.43.95.130:5002/`
- **饭菜规划**:`http://101.43.95.130:5002/meal-planning`
- **古诗词解析**:`http://101.43.95.130:5002/poetry/`
diff --git a/AI项目功能需求文档.md b/AI项目功能需求文档.md
new file mode 100644
index 0000000..b9c6402
--- /dev/null
+++ b/AI项目功能需求文档.md
@@ -0,0 +1,202 @@
+# AI 项目功能需求文档
+
+| 项目 | 说明 |
+|------|------|
+| **目标** | 定义「提示词大师」AI 项目的功能范围、模块划分与 AI 能力需求 |
+| **版本号** | v1.0 |
+| **责任人** | 项目组 |
+| **最后更新日期** | 2026-02-23 |
+
+---
+
+## 变更记录
+
+| 版本 | 日期 | 修改人 | 修改内容 |
+|------|------|--------|----------|
+| v1.0 | 2026-02-23 | 系统 | 初稿:基于代码分析整理功能与 AI 需求 |
+
+---
+
+## 1. 项目概述
+
+### 1.1 项目名称与定位
+
+- **项目名称**:提示词大师(aitsc / flask_prompt_master)
+- **定位**:基于大语言模型(LLM)的智能提示词生成与多场景 AI 应用平台
+- **技术栈**:Python 3.12、Flask、Gunicorn、SQLAlchemy、MySQL、DeepSeek API(OpenAI 兼容)
+
+### 1.2 目标用户
+
+- **Web 用户**:通过浏览器使用提示词生成、饭菜规划、古诗词解析、收藏与历史
+- **微信小程序用户**:通过小程序使用提示词生成、意图识别、专家提示词、饭菜规划等
+- **管理员**:通过 Flask-Admin 后台进行用户/内容/系统/数据分析管理
+
+### 1.3 访问与部署
+
+- **服务端口**:5002
+- **运行方式**:Gunicorn + run_dev:app,conda 环境 myenv
+- **文档**:参见《(红头)启动和停止.txt》
+
+---
+
+## 2. 功能模块需求
+
+### 2.1 提示词生成(核心 AI 功能)
+
+| 需求编号 | 功能描述 | 优先级 |
+|----------|----------|--------|
+| F-101 | 用户输入简短描述,系统根据所选模板(或默认)调用 LLM 生成高质量提示词 | P0 |
+| F-102 | 支持按分类/行业/职业选择提示词模板,模板含系统提示词(system_prompt) | P0 |
+| F-103 | 生成结果持久化(Prompt 表),并写入历史(PromptHistory)供后续查看与优化 | P0 |
+| F-104 | 对生成结果支持反馈(评分、评论),写入 Feedback 表 | P1 |
+| F-105 | Web 端与微信端共用生成逻辑,微信端通过 /api/wx/generate 调用 | P0 |
+
+### 2.2 意图识别与专家提示词(微信端增强)
+
+| 需求编号 | 功能描述 | 优先级 |
+|----------|----------|--------|
+| F-201 | 根据用户输入进行意图识别,返回推荐模板类别(如新闻获取、生成图片、网站开发、文案创作等) | P1 |
+| F-202 | 两阶段专家提示词:先做意图分析(返回 core_intent、domain、key_requirements 等 JSON),再按领域(技术/创意/分析/咨询)选用专家模板生成最终提示词 | P1 |
+| F-203 | 提供专家提示词生成页与 API:/expert_generate、/api/wx/generate/expert | P1 |
+
+### 2.3 模板管理
+
+| 需求编号 | 功能描述 | 优先级 |
+|----------|----------|--------|
+| F-301 | 模板数据存储在 PromptTemplate 表(name、description、category、industry、profession、system_prompt、is_default) | P0 |
+| F-302 | 提供按分类/意图/关键词的模板查询 API,供 Web 与微信端使用 | P0 |
+| F-303 | 支持内置/预置行业模板(写作、故事、短视频、设计、营销、开发、医疗、法律等)的初始化与维护 | P1 |
+
+### 2.4 智能饭菜规划(AI)
+
+| 需求编号 | 功能描述 | 优先级 |
+|----------|----------|--------|
+| F-401 | 用户输入人数、餐型、家乡、喜好、禁忌、预算等,系统调用 LLM 生成地区化、可执行的饭菜清单(Markdown) | P0 |
+| F-402 | 支持保存规划到 MealPlan 表,支持历史列表与单条查看、删除 | P0 |
+| F-403 | 提供 Web 页 /meal-planning、/meal-planning/mobile、/meal-planning/history 及对应 API | P0 |
+
+### 2.5 古诗词解析(AI)
+
+| 需求编号 | 功能描述 | 优先级 |
+|----------|----------|--------|
+| F-501 | 用户提供诗词标题、作者、朝代、翻译风格、解读深度等,系统调用 LLM 生成原文、译文、注释、解读(Markdown) | P0 |
+| F-502 | 支持收藏解析结果到 PoetryFavorite,支持列表、编辑、删除、统计、是否已收藏检查 | P0 |
+| F-503 | 提供古诗词示例页、解析页、收藏页及对应 API(/poetry/、/poetry/analyze、/poetry/examples、/poetry/favorites 等) | P0 |
+
+### 2.6 收藏与历史
+
+| 需求编号 | 功能描述 | 优先级 |
+|----------|----------|--------|
+| F-601 | 通用收藏:Favorite 管理,支持增删改查、统计、快速添加,路由 /favorites 及 /api/favorites/* | P1 |
+| F-602 | 提示词历史:PromptHistory 的查看、标签、批量操作、导出、统计、按模板筛选、保存为模板 | P0 |
+| F-603 | 优化历史:OptimizationHistory 及相关标签、收藏、用户使用统计(UserUsageStats) | P1 |
+
+### 2.7 用户与认证
+
+| 需求编号 | 功能描述 | 优先级 |
+|----------|----------|--------|
+| F-701 | Web 用户注册、登录、登出、个人资料、修改密码,登录态通过 Session 维护 | P0 |
+| F-702 | 微信小程序登录:code 换 openid/session_key,返回自定义 uid,后续接口按 uid 鉴权 | P0 |
+| F-703 | 部分接口需登录(如收藏、历史、个人数据),支持 /api/check-login、/api/profile/stats 等 | P0 |
+
+### 2.8 管理后台(Flask-Admin)
+
+| 需求编号 | 功能描述 | 优先级 |
+|----------|----------|--------|
+| F-801 | 管理员独立登录(AdminUser),角色:admin、super_admin、system_admin | P0 |
+| F-802 | 用户管理、提示词管理、模板管理、系统管理、批量操作、系统监控、高级报表、数据备份、API 管理 | P1 |
+| F-803 | 数据分析(Analytics):仅 super_admin、system_admin 可访问,提供统计与图表(如 Plotly) | P1 |
+| F-804 | 后台登录/登出:/admin/login、/admin/logout | P0 |
+
+---
+
+## 3. AI / LLM 能力需求
+
+### 3.1 使用的模型与服务
+
+| 项目 | 说明 |
+|------|------|
+| **服务** | DeepSeek API(OpenAI 兼容接口,base_url: https://api.deepseek.com/v1) |
+| **模型** | deepseek-chat |
+| **鉴权** | 通过 API Key(建议从环境变量 LLM_API_KEY 读取,避免硬编码) |
+
+### 3.2 AI 场景与提示词策略
+
+| 场景 | 系统角色/提示策略 | 输出形式 |
+|------|-------------------|----------|
+| 提示词生成 | 使用 DB 模板的 system_prompt 或默认「提示词工程师」 | 自然语言提示词 |
+| 意图识别 | 固定「意图识别专家」提示,仅返回类别 | 单一类别标签 |
+| 意图分析(专家) | 「意图分析专家」要求返回 JSON(core_intent、domain、key_requirements 等) | JSON |
+| 专家提示词生成 | 按 core_intent 选领域专家模板再生成 | 自然语言提示词 |
+| 饭菜规划 | 「地区智能饭菜清单规划师」,用户输入人数/餐型/家乡/喜好/禁忌/预算 | Markdown 清单 |
+| 古诗词解析 | 「古典文学专家/古诗词翻译家」,用户输入标题/作者/朝代/风格/深度 | 原文、译文、注释、解读(Markdown) |
+
+### 3.3 调用参数与可靠性
+
+| 项目 | 要求 |
+|------|------|
+| **temperature** | 通用生成 0.7;意图类 0.1 |
+| **max_tokens** | 约 500~2000(按场景配置) |
+| **超时** | 约 30~60 秒 |
+| **重试** | 提示词生成支持 max_retries(如 3 次) |
+
+### 3.4 配置与安全
+
+- **需求**:LLM API 的 base_url、api_key 应从配置/环境变量(如 LLM_API_URL、LLM_API_KEY)读取,禁止在生产环境硬编码。
+- **现状**:部分路由仍存在硬编码 Key,需在后续迭代中统一为配置项。
+
+---
+
+## 4. 数据与配置需求
+
+### 4.1 主要数据模型
+
+| 模型 | 用途 |
+|------|------|
+| User | Web 用户(登录名、密码、昵称、手机、邮箱等) |
+| WxUser | 微信用户(openid、session_key、unionid、昵称、头像等) |
+| Prompt | 单次生成的输入与输出 |
+| Feedback | 对 Prompt 的评分与评论 |
+| PromptTemplate | 提示词模板(分类、行业、职业、system_prompt) |
+| MealPlan | 饭菜规划参数与结果内容 |
+| Favorite | 通用收藏 |
+| PoetryFavorite | 古诗词解析收藏 |
+| PromptHistory / HistoryTag | 提示词历史与标签 |
+| OptimizationHistory / OptimizationTag / OptimizationFavorite | 优化历史与标签、收藏 |
+| UserStatistics / UserUsageStats | 用户与使用统计 |
+| AdminUser | 后台管理员(用户名、密码、角色) |
+| SystemConfig | 系统配置项 |
+
+### 4.2 环境与配置
+
+- **多环境**:通过 FLASK_ENV 选择 development / production / testing / local,对应 config 目录下配置类。
+- **关键配置项**:SECRET_KEY、DATABASE_URL、LLM_API_URL、LLM_API_KEY、WX_APPID、WX_SECRET、CORS_ORIGINS、LOG_LEVEL、SESSION_LIFETIME_HOURS、REDIS_URL(生产)、CACHE_TYPE 等。
+
+### 4.3 第三方依赖(核心)
+
+- Flask、flask-cors、flask-sqlalchemy、flask-migrate、flask-admin、flask-login
+- openai(兼容 DeepSeek)、requests、pymysql、python-dotenv
+- redis、waitress、psutil 等
+
+---
+
+## 5. 非功能需求(摘要)
+
+| 类型 | 要求 |
+|------|------|
+| **可用性** | 服务端口 5002 稳定监听,支持多 worker 部署 |
+| **安全** | 管理员按角色控制;数据分析仅高权限角色;API Key 与密钥走配置/环境变量 |
+| **可维护性** | 日志输出到 logs/(gunicorn、app),便于排查 |
+| **兼容性** | Web 与微信小程序共用后端 API,需 CORS 与小程序域名配置 |
+
+---
+
+## 6. 关联资源
+
+- **代码库**:/home/renjianbo/aitsc
+- **启动与停止说明**:(红头)启动和停止.txt
+- **主入口**:run_dev.py,应用工厂 src/flask_prompt_master/__init__.py create_app()
+
+---
+
+*文档结束*
diff --git a/docs/饭菜规划易用性改进建议.md b/docs/饭菜规划易用性改进建议.md
new file mode 100644
index 0000000..d2c6c1f
--- /dev/null
+++ b/docs/饭菜规划易用性改进建议.md
@@ -0,0 +1,98 @@
+# 智能饭菜规划 - 易用性改进建议
+
+| 文档 | 说明 |
+|------|------|
+| 目标 | 提升用户在使用「生成规划 → 保存 → 查看历史」全流程时的易用性 |
+| 版本 | v1.0 |
+| 更新日期 | 2026-02-23 |
+
+---
+
+## 一、当前流程简要回顾
+
+- **生成**:填写参数(家乡必填)→ 点击「生成饭菜规划」→ 展示结果,出现「复制」「保存」按钮。
+- **保存**:点击「保存规划」→ 调用 API,提示「保存成功」。
+- **查看历史**:通过右上角「我的规划」或规划页「查看已保存的规划」进入列表;列表为卡片 + 分页,支持删除;**复制功能当前未实现**(显示「复制功能开发中」)。
+
+---
+
+## 二、改进建议(按优先级)
+
+### 1. 生成规划阶段
+
+| 建议 | 说明 | 优先级 |
+|------|------|--------|
+| **一键填充示例** | 在表单旁增加「填充示例」按钮,点击后自动填入示例参数(如家乡、喜好、禁忌),新用户可快速体验生成。 | P1 |
+| **参数说明/占位** | 在「个人喜好」「饮食禁忌」「预算」旁增加简短说明或更具体的 placeholder,减少用户不知道填什么的困惑。 | P2 |
+| **上次参数记忆** | 使用 localStorage 记住上次使用的家乡、人数、餐型等(不记敏感信息),下次进入页面自动填充,减少重复输入。 | P2 |
+| **生成中可取消** | 生成请求时间较长时,提供「取消」按钮或至少明确「生成中,请稍候」的进度提示。 | P2 |
+
+### 2. 保存规划阶段
+
+| 建议 | 说明 | 优先级 |
+|------|------|--------|
+| **保存后跳转/引导** | 保存成功后,除了 toast 提示外,可增加「前往查看」按钮或短文案「已保存,可到【我的规划】查看」,并可选自动跳转到历史页。 | P0 |
+| **保存前可选标题/备注** | 保存时弹窗让用户输入「规划名称」或「备注」(如「周末家庭餐」),便于在历史列表中识别。若后端暂无字段,可先存到现有字段或延后实现。 | P1 |
+| **防止重复保存** | 保存成功后可将当前结果标记为「已保存」,同一内容再次点击保存时提示「本规划已保存过」或禁用按钮,避免重复记录。 | P1 |
+| **未登录提示** | 未登录用户保存时使用默认身份,在保存按钮旁或保存前提示「未登录时规划将保存到本地身份,登录后可统一查看」,并引导登录。 | P2 |
+
+### 3. 查看历史阶段
+
+| 建议 | 说明 | 优先级 |
+|------|------|--------|
+| **实现复制功能** | 历史页「复制」按钮当前为「复制功能开发中」,建议实现:复制当前条目的 `meal_plan_content` 纯文本到剪贴板,并提示「已复制到剪贴板」。 | P0 |
+| **列表摘要展示** | 历史卡片除参数外,可展示规划内容的**前 1~2 行或前 80 字**作为摘要,便于不展开即可区分不同规划。 | P1 |
+| **单条详情页/展开** | 支持点击某条规划进入详情页,或在当前页展开完整内容(含 Markdown 渲染),避免只在长列表中滚动。 | P1 |
+| **排序与筛选** | 支持按时间、餐型、家乡等排序;可选按「早餐/午餐/晚餐」筛选,方便查找。 | P2 |
+| **空状态强化** | 历史为空时,除「创建饭菜规划」按钮外,可补充一句「从智能饭菜规划页生成并保存后,会出现在这里」,降低新用户困惑。 | P2 |
+
+### 4. 导航与入口
+
+| 建议 | 说明 | 优先级 |
+|------|------|--------|
+| **规划页与历史页统一顶栏** | 历史页使用独立 navbar,与主站风格不一致。建议历史页也继承 base.html,与「饭菜规划」页共用顶栏和用户菜单,保证「我的规划」入口统一、不 404。 | P1 |
+| **面包屑** | 在规划页、历史页增加面包屑(如 首页 > 智能饭菜规划 > 我的规划),方便理解层级与返回。 | P2 |
+
+### 5. 反馈与容错
+
+| 建议 | 说明 | 优先级 |
+|------|------|--------|
+| **生成失败重试** | 生成接口失败时,除提示错误信息外,提供「重试」按钮,避免用户重新填表单。 | P1 |
+| **保存失败保留内容** | 保存失败时,不清空当前生成结果,方便用户检查网络后再次保存或复制。 | P1 |
+| **加载与空状态区分** | 历史列表加载中、空列表、加载失败三种状态区分明确(已有加载/空状态,可再补充「加载失败,点击重试」)。 | P2 |
+
+---
+
+## 三、可优先实现的 3 项(高性价比)
+
+1. **保存成功后引导去历史**
+ 保存成功 toast 旁增加「去查看」按钮,跳转到 `/meal-planning/history`,减少用户「不知道保存到哪了」的困惑。
+
+2. **历史页复制功能**
+ 在历史列表的每条规划上,复制按钮调用 `navigator.clipboard.writeText(plan.meal_plan_content)`,并提示「已复制到剪贴板」,补齐当前缺失能力。
+
+3. **历史页继承 base 模板**
+ 将 `meal_planning_history.html` 改为继承 `base.html`,只保留列表、分页、删除等主要内容块,顶栏与用户菜单与全站一致,「我的规划」从右上角进入不再 404,体验统一。
+
+---
+
+## 四、后续可选增强
+
+- **规划命名/备注**:数据模型增加可选字段,保存时让用户填名称或备注,列表展示名称。
+- **导出**:单条或列表导出为 PDF/纯文本,方便打印或分享。
+- **移动端**:对 `meal_planning_mobile.html` 做同样的「保存后引导」「历史入口」与复制逻辑,保持与 PC 一致。
+
+---
+
+## 五、关联文件(便于开发)
+
+| 功能 | 文件 |
+|------|------|
+| 生成/保存流程 | `src/flask_prompt_master/templates/meal_planning.html` |
+| 历史列表/复制/删除 | `src/flask_prompt_master/templates/meal_planning_history.html` |
+| 列表/详情 API | `src/flask_prompt_master/routes/meal_planning.py`(list/detail) |
+| 顶栏/我的规划入口 | `src/flask_prompt_master/templates/base.html` |
+
+---
+
+*以上建议可直接作为需求条目或迭代任务使用。*
diff --git a/logs/app.log b/logs/app.log
index e87b93f..cc7925d 100644
--- a/logs/app.log
+++ b/logs/app.log
@@ -2136,3 +2136,11 @@ Traceback (most recent call last):
File "/home/renjianbo/aitsc/src/flask_prompt_master/routes/routes.py", line 225, in index
OSError: [Errno 5] Input/output error
2025-10-28 08:04:36,598 INFO: 应用启动 [in /home/renjianbo/aitsc/config/base.py:82]
+2025-12-30 17:49:30,433 INFO: 应用启动 [in /home/renjianbo/aitsc/config/base.py:82]
+2026-02-20 09:32:46,882 INFO: 应用启动 [in /home/renjianbo/aitsc/config/base.py:82]
+2026-02-23 12:23:17,495 INFO: 应用启动 [in /home/renjianbo/aitsc/config/base.py:82]
+2026-02-23 14:59:27,125 INFO: 应用启动 [in /home/renjianbo/aitsc/config/base.py:82]
+2026-02-23 15:11:37,371 INFO: 应用启动 [in /home/renjianbo/aitsc/config/base.py:82]
+2026-02-23 17:38:55,248 INFO: 应用启动 [in /home/renjianbo/aitsc/config/base.py:82]
+2026-02-23 17:39:42,847 INFO: 应用启动 [in /home/renjianbo/aitsc/config/base.py:82]
+2026-02-23 17:43:32,860 INFO: 应用启动 [in /home/renjianbo/aitsc/config/base.py:82]
diff --git a/logs/gunicorn.log b/logs/gunicorn.log
index 09aa4d4..ba0e54c 100644
--- a/logs/gunicorn.log
+++ b/logs/gunicorn.log
@@ -1,295 +1 @@
-nohup: ignoring input
-[2025-09-19 00:44:50,891] INFO in base: 应用启动
-
-=== API 响应结果 ===
-生成的提示词: 基于您提出的"优化页面"需求,我将从多个维度提供专业的前端优化方案:
-
-## 🎯 核心优化目标
-
-### 1. 性能优化
-```javascript
-// 代码分割与懒加载
-const LazyComponent = React.lazy(() => import('./HeavyComponent'));
-
-// 图片优化策略
-const imageOptimization = {
- format: 'WebP/AVIF',
- lazyLoading: true,
- responsive: 'srcset'
-};
-```
-
-### 2. 用户体验优化
-```css
-/* 交互动效优化 */
-.interactive-element {
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
- will-change: transform, opacity;
-}
-
-/* 骨架屏加载状态 */
-.skeleton-loader {
- background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
- background-size: 200% 100%;
- animation: loading 1.5s infinite;
-}
-```
-
-### 3. 技术实现方案
-
-#### 组件结构优化
-```jsx
-// 优化后的组件结构
-const OptimizedPage = () => {
- const [visibleSections, setVisibleSections] = useState([]);
-
- return (
-
根据目的地与天数,AI 生成行程与实用建议
+填写目的地与天数,点击「生成旅行攻略」开始
+输入工作要点,一键生成规范周报/日报
+选择报告类型并填写工作要点,点击「生成」开始
+