一个基于大模型的本地可跑的智能写作助手
开源一个本地可跑的智能写作助手Node Flask RAG Ollama LoRA写在前面日常写作里我们经常会遇到这些场景作文卡壳、开题报告结构乱、文案要反复润色、实验报告语言要更学术……如果只靠通用大模型「裸聊」效果往往不稳定如果再叠一层本地知识库范文、术语、写作规范再配合结构化 Prompt体验会好很多。于是我做了一个可本地部署的智能写作助手并把完整代码开源了。它支持大纲生成、续写、改写、润色、摘要侧栏对话式写作辅助可选RAG 知识库先检索再生成用户登录、草稿同步与版本回滚对接本地Ollama也可用 Mock 模式先体验适用场景覆盖日常写作初高中作文、日记、短篇小说、营销文案等和部分专业写作开题报告、实验报告等。项目能做什么界面上是「写作区 侧栏」的经典布局能力说明写作工具栏一键生成大纲 / 续写 / 改写 / 润色 / 摘要风格控制正式学术、中性、轻松、营销文案中英文短中长知识库开关开启后先走本地向量检索再把相关片段注入模型上下文写作模板一键插入常用结构再交给模型细化草稿管理本地缓存登录后可同步到 MySQL支持版本列表与回滚模型设置可切 Mock / 真实 Ollama方便没有 GPU 时也能演示流程核心思路不是「做一个聊天框」而是把写作动作续写、润色等产品化用 Prompt 工程把需求结构化让输出更可控。整体架构项目采用前后端分离、本地多服务协作浏览器 (HTML/CSS/JS) │ ▼ Node.js 网关 (server.js) ├─ 静态页面托管 ├─ 用户认证 (JWT) ├─ 草稿 / 版本 / 会话 API (MySQL) ├─ 代理 Ollama Chat API └─ 可选请求前向 RAG 服务检索并注入 system prompt │ ├──────────────► Ollama本地大模型 │ └──────────────► Flask RAG (rag_server.py) ├─ LangChain 文档切块 ├─ EmbeddingHF / Ollama └─ FAISS 向量检索另外仓库里还包含基于DeepSeek-R1-Distill-Qwen-1.5B的LoRA 适配器用于在特定写作风格/任务上做轻量微调增强可按需接入本地推理链路。技术栈一览前端原生 HTML / CSS / JavaScript无重型框架部署简单业务后端Node.js认证、草稿、Ollama 代理、RAG 注入RAG 服务Python Flask LangChain FAISS数据库MySQL用户、草稿、版本、聊天会话等本地推理Ollama微调相关LoRA AdapterDeepSeek-R1-Distill-Qwen-1.5B/工程点Prompt 工程、RAG检索增强生成、JWT 鉴权几个值得说的实现点1. Prompt 工程把「写作意图」结构化续写、润色、改写这类能力不能只丢一句「帮我写好点」。项目里会结合用户选中的文本、语气、语言、长度等约束组装更稳定的指令例如明确任务类型polish / continue / rewrite约束风格与篇幅要求保留原意、只优化表达这样比自由对话更适合「写作工具」场景。2. RAG先检索再生成开启「是否采用知识库」后流程大致是取当前用户问题 / 写作上下文Node 网关请求 Flask RAG 的/query从 FAISS 中取出相关文本片段把片段写入 system / 上下文再转发给 Ollama知识库内容来自RAG_backend/data/如范文、名言、语料等通过ingest.py切块并建索引。这样模型在写开题、作文时可以参考你本地准备的材料而不是只靠参数记忆。3. Node 网关做「编排层」Node 不只是静态服务器还负责MySQL 持久化与 JWT 登录统一代理本地 Ollama避免前端直连带来的跨域/密钥问题在真正调用模型前按开关决定是否做 RAG 增强这层把「产品逻辑」和「模型推理」拆开了后续换模型、换向量库都更方便。4. LoRA小成本适配写作任务全量微调成本高LoRA 可以在参数量很小的适配器上学习写作偏好。仓库中提供了适配器权重目录适合作为课程设计/毕设里「微调实验」的落地材料对比基座模型与 LoRA 后在润色、续写等任务上的差异。本地快速跑起来依赖Node.js、MySQL可选 Python3、Ollama。1初始化数据库mysql-uroot-p-eCREATE DATABASE IF NOT EXISTS ai_writing DEFAULT CHARSET utf8mb4;mysql-uroot-pai_writingai_writing_db_init.sql2配置环境变量cp.env.example .env填写 MySQL 密码、JWT_SECRET等。3启动 Node 服务npminstallnpmstart终端会打印访问地址PORT0时自动分配端口。4可选启动 RAGcdRAG_backend python-mvenv .venv# Windows: .venv\Scripts\activatepipinstall-rrequirements.txt python ingest.py python rag_server.pyWindows 也可直接运行启动RAG.bat。5在设置里关闭 Mock改为真实 Ollama 模型即可开始正式写作。适合谁用 / 能学到什么如果你在做这些方向这个项目会比较有参考价值大模型应用落地不是只调 API DemoRAG 全流程ingest → 向量库 → 检索 → 注入 PromptPrompt 工程在写作产品中的拆解LoRA 微调结果如何放到实际应用旁路里前后端 本地推理的工程串联写在最后这个项目的目标很明确本地可控、可扩展、可演示。你可以先用 Mock 跑通交互再接 Ollama需要领域知识时打开 RAG想做风格定制时再引入 LoRA。欢迎 Star、Fork也欢迎提 Issue 交流改进想法。开源地址GitHubhttps://github.com/FZH27icecream/ai-writing-assistant

相关新闻

【软考信息安全】第1章 网络信息安全概述

【软考信息安全】第1章 网络信息安全概述

第1章 网络信息安全概述 考频:选择 3–4 分,案例 0–2 分(⚠️ 案例最多考 CIA 表述,法规不出案例题) 一、网络信息安全基本属性 属性英文对应威胁(关键词)定义攻击与防范机密性Confidentiali…

2026/9/26 18:37:21 阅读更多 →
冒险岛V192单机版电脑端安装教程

冒险岛V192单机版电脑端安装教程

大家好,我是怀旧单机小罗,专门给大家整理,收集上古怀旧单机游戏安装教程,供大家娱乐。今天带来的是“ 新版冒险岛192 30职业” 单机架设教程,教程需要VM虚拟机,我会介绍的很简单,让我们一起来探…

2026/10/11 18:22:24 阅读更多 →
冒险岛V118单机版电脑端安装教程

冒险岛V118单机版电脑端安装教程

大家好,我是怀旧单机小罗,专门给大家整理,收集上古怀旧单机游戏安装教程,供大家娱乐。今天带来的是“ 冒险岛单机版V118” 单机架设教程,教程无需虚拟机,安装超级简单。自运行截图:一、环境准备…

2026/10/12 15:40:27 阅读更多 →

最新新闻

进销存管理系统数据库设计:从建表SQL到存储过程触发器实战

进销存管理系统数据库设计:从建表SQL到存储过程触发器实战

简介:这是一份数据库课程设计完整参考项目——某商店进销存管理系统,面向计算机类专业学生、数据库初学者及需要完成课设的开发者,用于解决数据库原理课程设计中从系统分析到数据库实现的全流程问题。资源为RAR压缩包,共3个文件&a…

2026/10/13 5:38:34 阅读更多 →
轻量级任务流引擎 rea:把重复操作变成一条命令行流水线

轻量级任务流引擎 rea:把重复操作变成一条命令行流水线

周五下午,我盯着屏幕上那个快要跑完的批处理任务,心里很清楚:今天这已经是第七次重复同样的操作了。从压缩日志、生成报表、按规则归档,到清理临时目录、把结果文件挪到共享目录,每一步单独看都不复杂,合在…

2026/10/13 5:38:34 阅读更多 →
Spring Boot集成AI对话接口:从零搭建HR政策问答机器人

Spring Boot集成AI对话接口:从零搭建HR政策问答机器人

1. 项目定位:为什么是 Spring Boot AI 对话接口1.1 HR 政策问答机器人的核心需求拆解这个项目叫“AI全栈12-02”,名字里已经透露出完整的信息:它属于一条 AI 全栈学习路线的中期实践,前一步多半是把模型 API 跑通,从这…

2026/10/13 5:38:34 阅读更多 →
CS2启动器Overflow闪退根源与显存调度修复指南

CS2启动器Overflow闪退根源与显存调度修复指南

1. 问题本质:这不是“闪退”,而是内存管理机制被触发的保护性中断 “CS2更新后Valve界面闪退、Overflow溢出错误”——这个标题里藏着一个被广泛误读的关键点。很多用户一看到“闪退”就下意识归因于显卡驱动或系统兼容性,甚至反复重装客户端…

2026/10/13 5:38:34 阅读更多 →
x64dbg动态调试实战:环境配置、脚本自动化与避坑指南

x64dbg动态调试实战:环境配置、脚本自动化与避坑指南

简介:x64dbg 2025版逆向调试工具,面向软件安全分析人员、恶意代码逆向工程师以及CTF竞赛爱好者,用于在缺少源码、难以静态阅读的场景下开展动态调试,覆盖断点控制、单步跟踪、内存与寄存器监控、异常处理等核心操作,并…

2026/10/13 5:38:34 阅读更多 →
大厂Python编码规范的核心要点与工程实践

大厂Python编码规范的核心要点与工程实践

1. 为什么大厂如此重视Python编码规范?第一次接触Google的Python代码时,我盯着那些整齐划一的import分组和严格的命名规则发了半天呆。当时很不理解为什么要把时间花在这些"表面功夫"上,直到后来自己维护了三个月前的代码才恍然大悟…

2026/10/13 5:37:33 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →