Skip to content

智能写作 ​

功能概览 ​

智能写作提供两种生成模式:

  • 撰写:根据一个主题或提示词,直接生成一篇完整的文章/段落。

image-20260930104041879

  • 回复:在给定原文的基础上,结合回复提示词,生成符合场景的对话或文字回复。

image-20260930104814076

每次生成都可组合以下控制维度(通过标签点选,未选择即「自动」):

  • 长度:自动、短、中等、长
  • 格式:自动、电子邮件、消息、评论、段落、文章、博客文章、想法、大纲
  • 语气:自动、友善、随意、友好、专业、诙谐、有趣、正式
  • 语言:自动、中文、英文、韩语、日语

后端架构 ​

智能写作模块位于 backend/app/api/v1/module_ai/write,采用与平台其他模块一致的分层结构:

  • model.py:数据模型 AiWriteModel(表 ai_write)与各类枚举、内置系统提示词。
  • schema.py:请求/响应校验与序列化模型,AiWriteGenerateSchema 用于生成入参。
  • service.py:AiWriteService 业务层,负责模型解析、Prompt 组装、流式调用与落库。
  • crud.py:基于 CRUDBase 的数据访问层。
  • controller.py:路由层,对外暴露接口。

写作任务通过数据权限策略 PermissionFilterStrategy.OWN 按 user_id 隔离,普通用户只能访问自己的记录。

前端页面 ​

前端入口位于 frontend/apps/web-ele/src/views/ai/write,分为「用户写作页」与「管理端列表页」两部分。

用户写作页采用左右分栏布局:

  • 左侧(modules/left.vue)为参数面板,提供「撰写 / 回复」切换标签,并实时填写提示词、原文以及长度、格式、语气、语言四个维度的标签选择;内置「示例」入口可一键填充 Vue 介绍、请假回复等样例。
  • 右侧(modules/right.vue)为结果展示区,使用富文本编辑器承载流式生成的内容,支持在生成过程中随时停止(通过 AbortController 中断 SSE)。

交互关键点:

  • 通过 fetchEventSource 消费 SSE,收到 [DONE] 或 error 时结束并清理连接。
  • 「回复」模式要求先填写原文,再填写回复提示词;「撰写」模式仅需提示词。
  • 切换「撰写 / 回复」标签时,会保留各自已填写的数据,避免相互覆盖。

管理端列表页(manager/index.vue)基于 vxe-table 表格,提供分页查询、单条删除与批量删除能力,并受 ai:write:delete 权限控制;顶部内置指向官方文档的 DocAlert 引导。