【AI写作】参考“文思助手”写作功能,使用LLM+RAG实现一个简单的写作小助手 文档撰写功能实现说明功能定位:类“文思助手”的长文写作 —— 输入写作需求 → 自动识别意图 → 生成标题目录 → 流式生成正文 → 在线编辑 / 导出 Word。支持参考资料增强(RAG):上传参考资料后,生成目录与正文时可参考这些资料。目录一、技术栈二、整体架构三、核心流程四、接口清单五、关键实现步骤与代码六、存储与数据设计七、关键设计与注意事项一、技术栈层次技术用途后端框架FastAPI + UvicornHTTP / 流式接口数据校验Pydantic v2请求/响应模型(ChatCompletionRequest、ComplexMenuParams、GenerateContext…)大模型调用OpenAI SDK(OpenAI 兼容)意图识别、目录生成、正文生成(llm_client,模型setting.llm_api_model)流式输出StreamingResponse(media_type=text/event-stream)目录 / 正文逐段返回(注意:内容为裸 JSON 片段,非标准 SSE 帧)向量库Milvus(pymilvus)参考资料存储与检索(正文 / 段落 / 目录三类)向量化sentence-transformers(bge 中文模型)参考资料切片向量化文档解析pymupdf / python-docx / 内置文本读取txt / md / pdf 解析文本切分langchain-text-splittersRecursiveCharacterTextSplitter日志loguru运行日志前端框架Vue 3.4(script setup)页面与组件UI 组件Element Plus 2.x + @element-plus/icons-vue表单、上传、卡片、对话框等状态管理Pinia登录 token(useUserStore)构建Vite 5(已配置/chat_py_server→127.0.0.1:5020代理)开发/构建Markdown 渲染marked + DOMPurify正文流式渲染与 XSS 清洗Word 导出原生 Blob(application/msword)导出.doc,无需第三方库流式解析fetch + ReadableStream前端按 JSON 对象边界解析流二、整体架构chat_py_server / FastAPIchat_py_front / Vue3 + Element PlusHTTP / 流DocumentWriting.vue写作概要 / 大纲 / 正文documentWriting/OutlineTree.vue大纲树增删改api/documentWriting.js接口封装 + JSON 流解析document_writing_controller.py7 个接口document_writing_service.py提示词与业务逻辑document_loader_service.py解析 + 切片openai_model.pyget_completion / get_completion_in_stream大模型OpenAI 兼容Milvus参考资料集合分层职责:Controller:参数校验、文件落盘、组装响应(普通RestResp/ 流式StreamingResponse);Service:提示词构造、目录解析(编号 → 层级)、参考资料入库、正文分段调用;Model(openai_model):统一的大模型同步/流式调用封装;System 服务:document_loader_service(文档解析/切片)、milvus_service(集合与数据操作)、embedding_service(向量化)。三、核心流程3.1 完整使用链路Milvus大模型后端(controller/service)前端(DocumentWriting)用户Milvus大模型后端(controller/service)前端(DocumentWriting)用户