docs: 新增文章标签自动推荐功能需求文档
根据文章内容自动推荐3-5个合适标签,复用AI能力简化标签维护流程 Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,94 @@
|
||||
# 文章标签自动推荐功能需求文档
|
||||
|
||||
## 1. 功能概述
|
||||
|
||||
根据文章内容,自动推荐 3-5 个合适的标签或分类,减少手动维护的麻烦。博主可一键确认添加推荐标签。
|
||||
|
||||
## 2. 业务背景
|
||||
|
||||
- 当前标签需要手动维护,增加博主工作量
|
||||
- 手动维护的标签不够准确或全面
|
||||
- 希望通过 AI 能力简化标签选择流程
|
||||
|
||||
## 3. 功能需求
|
||||
|
||||
### 3.1 标签推荐
|
||||
|
||||
- 当博主在编辑器中撰写或编辑文章时,提供标签推荐入口
|
||||
- 点击推荐按钮后,系统自动分析文章内容
|
||||
- 调用大语言模型,分析文章主题和内容
|
||||
- 生成 3-5 个合适的标签词
|
||||
- 推荐结果以标签卡片形式展示
|
||||
- 博主可选择全部采纳或部分采纳
|
||||
- 采纳的标签自动添加到文章的标签列表中
|
||||
|
||||
### 3.2 AI 调用
|
||||
|
||||
- 调用模型时使用提示词:`"这篇文章适合哪些标签?只返回标签词,用逗号分隔。"`
|
||||
- 传递文章标题和正文内容给模型
|
||||
- 模型返回结果后,前端解析并展示
|
||||
- 如模型调用失败,提示用户手动添加标签
|
||||
|
||||
### 3.3 前端展示
|
||||
|
||||
- 推荐按钮:位于文章编辑页标签区域,文字为"智能推荐"或图标形式
|
||||
- 加载状态:推荐过程中显示加载动画
|
||||
- 推荐结果:展示 3-5 个标签按钮
|
||||
- 交互:点击标签按钮可取消选中,已选中的标签高亮显示
|
||||
- 确认按钮:"确认添加"将选中的标签添加到文章
|
||||
|
||||
## 4. 交互流程
|
||||
|
||||
```
|
||||
1. 博主进入文章编辑页面
|
||||
2. 博主在标签区域点击"智能推荐"按钮
|
||||
3. 系统显示加载状态
|
||||
4. 系统调用 AI 模型分析文章内容
|
||||
5. 前端展示推荐标签列表(3-5个)
|
||||
6. 博主勾选想要添加的标签
|
||||
7. 博主点击"确认添加"
|
||||
8. 选中的标签添加到文章标签列表
|
||||
```
|
||||
|
||||
## 5. 接口设计
|
||||
|
||||
### 5.1 推荐标签接口
|
||||
|
||||
- 请求路径:`/api/article/recommend-tags`
|
||||
- 请求方法:`POST`
|
||||
- 请求参数:
|
||||
```json
|
||||
{
|
||||
"title": "文章标题",
|
||||
"content": "文章正文内容"
|
||||
}
|
||||
```
|
||||
- 返回参数:
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"data": {
|
||||
"tags": ["标签1", "标签2", "标签3", "标签4", "标签5"]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## 6. 技术实现
|
||||
|
||||
- 后端:复用现有的 AI 服务调用能力
|
||||
- 模型:使用项目现有的 AI 模型配置
|
||||
- 前端:在文章编辑页面添加推荐按钮和交互
|
||||
|
||||
## 7. 非功能需求
|
||||
|
||||
- 推荐响应时间应在 5 秒内完成
|
||||
- 如果模型服务不可用,应给出友好提示
|
||||
- 推荐结果应基于文章实际内容,确保标签相关性
|
||||
|
||||
## 8. 验收标准
|
||||
|
||||
- [ ] 在文章编辑页面能看到"智能推荐"按钮
|
||||
- [ ] 点击推荐按钮后,3-5 秒内显示推荐结果
|
||||
- [ ] 推荐结果以标签形式展示,可勾选
|
||||
- [ ] 确认添加后,标签成功添加到文章
|
||||
- [ ] 模型服务异常时,有友好提示
|
||||
Reference in New Issue
Block a user