Files
aitsc/AI项目功能需求文档.md

203 lines
9.3 KiB
Markdown
Raw Normal View History

2026-02-23 17:50:22 +08:00
# 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 APIOpenAI 兼容)
### 1.2 目标用户
- **Web 用户**:通过浏览器使用提示词生成、饭菜规划、古诗词解析、收藏与历史
- **微信小程序用户**:通过小程序使用提示词生成、意图识别、专家提示词、饭菜规划等
- **管理员**:通过 Flask-Admin 后台进行用户/内容/系统/数据分析管理
### 1.3 访问与部署
- **服务端口**5002
- **运行方式**Gunicorn + run_dev:appconda 环境 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 APIOpenAI 兼容接口base_url: https://api.deepseek.com/v1 |
| **模型** | deepseek-chat |
| **鉴权** | 通过 API Key建议从环境变量 LLM_API_KEY 读取,避免硬编码) |
### 3.2 AI 场景与提示词策略
| 场景 | 系统角色/提示策略 | 输出形式 |
|------|-------------------|----------|
| 提示词生成 | 使用 DB 模板的 system_prompt 或默认「提示词工程师」 | 自然语言提示词 |
| 意图识别 | 固定「意图识别专家」提示,仅返回类别 | 单一类别标签 |
| 意图分析(专家) | 「意图分析专家」要求返回 JSONcore_intent、domain、key_requirements 等) | JSON |
| 专家提示词生成 | 按 core_intent 选领域专家模板再生成 | 自然语言提示词 |
| 饭菜规划 | 「地区智能饭菜清单规划师」,用户输入人数/餐型/家乡/喜好/禁忌/预算 | Markdown 清单 |
| 古诗词解析 | 「古典文学专家/古诗词翻译家」,用户输入标题/作者/朝代/风格/深度 | 原文、译文、注释、解读Markdown |
### 3.3 调用参数与可靠性
| 项目 | 要求 |
|------|------|
| **temperature** | 通用生成 0.7;意图类 0.1 |
| **max_tokens** | 约 5002000按场景配置 |
| **超时** | 约 3060 秒 |
| **重试** | 提示词生成支持 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()
---
*文档结束*