AI 写作助手
这篇解决什么
撰写和回复落哪张表、流式接口是哪条。读完能对上 ai_write.type 和固定角色「写作助手」,不要去改聊天会话表。
默认端口 48080。先开模块并有对话模型,见 AI 功能设计。
示意图:模型取角色 modelId,没有就用第一条启用的对话模型。
从哪改
| 名称 | 说明 | 仓库路径 |
|---|---|---|
| 写作 | @RequestMapping("/ai/write") | ruoyi-office/yudao-module-ai/.../controller/admin/write/AiWriteController.java |
| 生成 | POST /generate-stream | SSE,Flux<CommonResult<String>> |
| 记录表 | ai_write | AiWriteDO |
| 用户页 | 写作 | ruoyi-office-vben/apps/web-antd/src/views/ai/write/index/ |
| 管理页 | 记录 | views/ai/write/manager/ |
官方菜单:AI 写作 2792,写作管理 2793。权限 ai:write:query、ai:write:delete。
角色常量 AiChatRoleEnum.AI_WRITE_ROLE,名称是「写作助手」。没有这个角色时实现会退回默认对话模型。
字段
AiWriteTypeEnum:1 撰写,2 回复。
| 名称 | 说明 | 仓库路径 |
|---|---|---|
type | 撰写 / 回复 | AiWriteDO |
prompt / originalContent | 提示、原文 | 同上 |
generatedContent | 生成结果 | 同上 |
length / format / tone / language | 长度、格式、语气、语言 | 同上 |
platform / modelId | 实际用的平台和模型 | 同上 |
字典:ai_write_format、ai_write_length、ai_write_language、ai_write_tone。示例里格式 1 是自动。
没有独立「写作模型」类型
AiModelTypeEnum 没有写作项。写作复用 type=1 的对话模型。配错成图片模型会失败。
和对话一样是 SSE
前端 api/ai/write/index.ts 用 fetchEventSource。管理页只查、删记录,不能在后台重放生成。
按本仓库 DO 生成的 ER。一笔生成一行。
配置与操作
走 AI 写作(2792)。选 type:1 撰写,2 回复,填 prompt / originalContent,以及 length / format / tone / language。生成走 POST /ai/write/generate-stream。角色名「写作助手」,没有这个角色时退回默认对话模型。
保存后一笔生成一行 ai_write。写作复用 type=1 的对话模型,配成图片模型会失败。管理页写作管理 2793 只查、删记录,不能在后台重放生成。
