星期天逛B站发现一个挺有意思的卡片式AI写作助手项目,原视频2w+播放2k+收藏,收藏率接近10%。up主「良我叫什么」用Cursor开发了这个项目,GitHub有200多Star。
原视频和原项目的GitHub链接先放出来:
https://www.bilibili.com/video/BV1QYKWeFE16
https://github.com/ErSanSan233/prose-polish

好好,我知道你不愿看视频。那就祭出我之前我之前做的B站视频分析小网站——我让AI开发了一个自动分析B站弹幕的网站——交给AI总结一下:

插播一段,说到这个网站,最近我把AI又换回DeepSeek了,现在用的火山引擎的API,速度比别家快不少。不过公开发布出来以后tokens消耗还蛮快的,已经干掉我好几管豆包的50w体验tokens了,还充了点钱。
火山引擎的API怎么用之前发过,不再赘述了,可以看这篇文章的中间部分:
DeepSeek服务器总繁忙怎么办?不愿稍后,不如试试通过API续命你的聊天儿
说回这个「卡片式AI写作助手」项目。
其实它有点像工作流,但专门为文本工作而生,没有功能节点,只能串联文本节点。
它的基本工作流程是这样的,左边一栏是提示词卡片,右边是文本内容卡片,在提示词卡片中,以占位符{{text}}指代需要处理的文本(段落是{{p1}},这个看预制卡片的内容就懂了)。
当我们使用连线将提示词卡片和文本卡片相连,点击提交时,这个操作的意思就是将这段提示词应用于它连接的文本。如下图,就是将原文卡片中这段文字进行规范表述处理,得到了结果卡片中的这段文字。

又例如下图,意思就是在原文段落1和段落2中间生成一个过渡的段落,让这两段文字的衔接不那么突兀。

如果你已经分别处理好了多个分段落,想对整个大段落进行处理,那要怎么办呢?不需要多余的复制粘贴,看到文本卡片左下角还有紫色的插头没?把它跟下一张卡片连接起来即可。
例如这样,进行一个翻译:

被翻译的内容就是这三小段连接成的一大段。
当然能实现的不止于此,你可以根据自己的需求无限添加适合自己的提示词。这么说吧,凡是你在聊天窗口能写的提示词,在这里一样能写。例如昨天早上我就写了一个叫做「工作嘴替」的提示词,放在了这里面。

昨天早上我比较忙,处理事儿来不及做太多思考,所以记事儿都是记的一些第一直觉想到的细碎的片段,且措辞稀碎,像这样:

就读起来很吃力是吧?说的些啥啊这是……
然后我把上面的这个「嘴替」卡片,跟我这段说的乱七八糟的话相连,选择DeepSeek-R1模型,提交。
得到的结果:

怎么样?清晰多了吧。
这就是这套卡片式AI系统的基本运作机制。
那么如何在自己的电脑上部署使用呢?
推荐查看原作者「良我叫什么」的视频,Win和Mac的方式都有介绍:
https://www.bilibili.com/video/BV1QYKWeFE16
不是我懒得写,视频确实讲得很清楚。
接下来就来说说我改的部分了。
同样的,先把GitHub页面放在这里:
https://github.com/Liu-Bot24/prose-polish-fork
如果你看了原视频,应该能发现我上面的截图跟原视频稍稍有点不一样。
因为我也用Cursor,对原作者的这个项目做了一些小小的易用性优化:
1.双击添加和快速复制卡片
原项目添加新的文本卡片,必须点击右下角的添加按钮,且添加出来的卡片需要双击才能进入编辑状态(粘贴文本)。

我修改的这个版本,你可以通过在任意你想添加文本卡片的空白位置双击,实现卡片的添加。并且新添加的卡片,默认就是编辑状态,方便你直接粘贴文字。右下角的新建卡片按钮依旧保留,新加的卡片也是,默认进入编辑状态。
并且还支持了按住ctrl键拖动卡片复制的功能。

2.快速模型选择选项
原项目切换不同大模型,需要在提交按钮的右侧展开菜单进行选择,频繁切换有些繁琐。

这里我在保留了下拉菜单的同时,加入了快速选择选项。
比如说你上一个需求使用GLM-4-FLASH处理,这个需求需要用到DeepSeek-R1这样的推理模型,然后下一次处理一个另外的需求的时候可能要用到GEMINI,这样频繁的菜单操作就很麻烦。现在,还可以直接在提交上面进行点选,点到哪个用哪个,十分方便。

并且,这里的选择,跟在菜单里的选择是相互关联同步的。唯一不同的是,「自定义」模型我没有加入到快速选择里。如果你在菜单中选择并配置了自定义模型,这时候自定义模型就会生效,但快速选择中不会有任何模型被选中。

3.预制提示词卡片的复制和排序
原项目的预制提示词卡片虽然可新建,但是不支持排序和复制。
我在原项目的基础上加入了卡片复制功能。点击右上角的复制按钮,就会在原卡片下方自动复制出一个相同卡片,但标题后面会添加序号以做区分。你可以在原卡片的模版上进行修改,创作新的提示词卡片。
并且在左下角添加了拖动柄,拖动拖动柄可以对这些卡片进行排序操作。

4.多预制提示词并行执行
原版每次只支持激活一个提示词卡片。如果要继续执行下一张卡片,需要等这次的流程跑完。

经过我的修改后,现在它支持一次选中多个提示词卡片,同时启动执行。
比如说我想同时对两段话进行翻译。
那我就可以把翻译卡片复制一份「翻译2」,然后都选中启用,再点击提交。

这时候就会双线程执行,同时翻译这两张卡片。

如果你暂时只想翻译其中之一,也可以保持连线,取消不想启用的提示词卡片的选择,再点提交,就会执行你选中的提示流程。

多线程执行的时候,原版左下角的一个输出位自然是不够的了。
所以我把结果输出改成了直接生成卡片,就生成在该条提示流最后的一个文本卡片旁边。原来的结果输出位置,改成了生成状态指示器。

5.预制提示词卡片自动保存入本地浏览器缓存
原项目的提示词卡片支持新建添加,但无法自动保存。需要手动导出,下次使用时再进行导入,否则每次刷新页面都是默认的三个卡片。

我在这里加入了浏览器缓存功能。只要你不清除浏览器缓存,刷新页面后,所有自建提示词卡片仍然会保留,不会像原来一样消失,需要你重新手动导入回来。
卡片的排列顺序也会自动保存,你可以把最常用的一张卡片放在最上方。每次刷新时,排序在最上方的一张提示词卡片会被默认选择,你可以直接连线并提交处理。而不需要像原版一样,每次都要先手动点击提示词卡片激活。

当然你要更换浏览器和设备,或是清除浏览器缓存,还是需要进行手动的提示词导出和导入操作的。

缓存难免有小概率出bug,所以我也加入了仅针对本网站的浏览器缓存清除功能,叫做重置所有卡片。点击这个按钮后,本应用对应的缓存会被清除,提示词卡片恢复到默认三张卡片的状态。
值得一提的是,这里原版有一个删除所有卡片功能,因为跟重置卡片效果有重叠,所以被我删除了。如果使用重置,但要达到删除所有卡片的效果,你还要手动把三个初始卡片再删一下。但这个应该是小概率事件吧,好像没有什么动机非要全部删除……
不过有一点啊,原项目的apikey是写在js文件里的,会暴露到前端。所以如果发布到互联网上,使用的用户有心的话,是可以获取到你的apikey并拿到其他地方去使用的。
一般比较好的做法是像下面那个头脑风暴项目一样,把敏感信息放到环境变量.env文件里,这样就不会在前端泄露。
我已经改完了上面说那些才发现这个问题,折腾不动了就没有继续改。然后很遗憾也没有办法直接把网站放出来了。
如果有真正自己会写代码的大佬看到,可以帮忙修复一下。
提醒下大家,如果要把这个写作助手部署到服务器上,还是避免下大规模发给生人。
本地下载后的使用方法依旧可以参考原UP主视频,说的很详细,我就不再文字敲一遍了。
我来说说怎么把这个套东西部署到自己的服务器上,让你自己可以脱离空间的限制,随时随地使用,并且还能发给别人用。
我的整个部署方案基于宝塔面板,基本不怎么涉及命令行和代码操作,你应该很容易看懂。
(如果你不知道怎么装宝塔面板,等我写完这段到文末继续说,送佛送到西。)
之前写这个AI脑暴项目《开源一个由AI生成的AI头脑风暴项目》的时候,就有人问应该要怎么用,这次干脆也一起说了。你可以结合这两个项目的部署一块儿来理解。
先说头脑风暴的。
进入GitHub页面:
https://github.com/Liu-Bot24/AI-BrainStorm
我们尽量避免命令行操作,就不用git clone了,直接下载ZIP包。

然后在宝塔面板左侧菜单点击文件,打开文件管理器,进入到这个目录:/www/wwwroot/。

然后把刚才下载的压缩包上传并解压。

如果是在GitHub下载的,那文件夹应该如下:

在文件管理器打开这个文件夹,修改.env.example文件中的AI模型模型ID、API KEY、接口地址为自己的。(豆包、智谱、通义、讯飞星火、DeepSeek等等都有免费额度赠送。) 然后把.env.example文件名修改成.env即可。

如果你更换了模型,记得到/static/js/文件夹下把main.js文件开头这里也改一下:

(这里看着像在操作代码,实际上只是在改文件名和复制粘贴密钥。)
然后找到左侧菜单,网站——Python项目——添加Python项目。

然后项目路径选择刚才上传的文件的文件夹,项目名称会自动填写,Python版本安装3.8版本,启动方式选择命令行启动,启动命令填写:
/www/server/pyporject_evn/AI-BrainStorm-main_venv/bin/python3 -m uvicorn app.main:app –host 0.0.0.0 –port 8000
(记得防火墙开启8000端口)
环境变量无,启动用户www,安装依赖包。
然后等待一段时间,宝塔这时会自动创建虚拟环境并安装依赖。


完事儿后项目状态自动变成运行中状态(还没有就手动启动一下)。

然后,在浏览器地址栏输入http://你的服务器ip:8000/,就可以打开AI头脑风暴页面了。(如果打不开,多半是防火墙没有放行8000端口。)

这就完成了,简单吧?
然后是今天的这个卡片式AI写作助手项目。
依旧是进入GitHub页面:
https://github.com/Liu-Bot24/prose-polish-fork
直接下载ZIP包。
但要注意,Branches选择update-project这个分支,另一个分支下是原版。

同样是上传到/www/wwwroot/,解压。

刚才的脑暴是Python项目,而这是个基于Node.js的项目,所以来到网站——Node项目。

先进入Node管理器,安装一个比较新的LTS稳定版本的Node版本即可。

然后添加一个Node项目。

项目目录选择刚才解压的目录。
项目名称自定义即可。
启动选项选择自定义启动命令,输入npm start。
端口5888。
(一样需要到防火墙设置放行这个端口;我在代码中使用的是这个端口,如果需要更改,要连同代码一块更改)
运行用户www,包管理器npm,Node版本选择刚才安装的版本。
然后保存设置,同样等待宝塔自动创建完成后,项目自动运行。

接下来访问http://你的服务器ip:5888,就可以打开WEB界面了。

注意,你需要到项目目录下,找到config.example.js这个文件,填写上相应的apikey,保存后修改文件名为config.js,才能正常调用AI能力。

这里我使用的几个接口说一下,如果你要继续沿用就到对应平台获取key:
通义的apikey去阿里云百炼平台获取,模型调用的是qwen-max-2025-01-25,有100w免费tokens赠额;
DeepSeek使用的硅基流动接口,apikey需要去硅基流动获取;
(以上两个平台的apikey获取方法,在DeepSeek服务器总繁忙怎么办?不愿稍后,不如试试通过API续命你的聊天儿中都有提到)
智谱使用的glm-4-flash免费模型,apikey直接去智谱开放平台官网获取;
GEMNI的apikey稍微麻烦了一点,需求使用美国IP,前往Google AI Studio(https://aistudio.google.com/apikey)获取,我使用的也是免费模型,gemini-2.0-flash。
你也可以自己去script.js这个文件修改api的base_url,比如说你想把DeepSeek的API改回官方的,只需要修改下面红框部分:
把base_url改成https://api.deepseek.com/v1,V3和R1模型分别改成deepseek-chat和deepseek-reasoner。

如果你想彻底更换成自己喜欢的AI,还涉及到前端的修改,我建议你使用 Cursor 或 Trae,让它们帮你一键修改。
接下来再说宝塔面板。
如果你有一个现成的Linux服务器,其实可以直接到宝塔面板的官网
https://www.bt.cn/new/download.html
通过SSH使用这个在线安装工具,直接一键安装。

官方页面也有常见问题的问答。
同时他们也有Window版本的面板,但这个我就没用过了,需要你自己探索。
另外还有个更快捷的方法:在购买服务器直接一键部署。
主流云服务器基本都支持直接在购买时部署好宝塔面板,以阿里云为例:
https://www.aliyun.com/minisite/goods?userCode=r18u1tal
一般我们最常买的就是轻量应用和ECS经济e实例这两款2G的服务器,搭个API网页应用完全够用。

这两款性能差不多,差别在于68的次年续费涨价,99的续费同价。年抛选前者,一直用选后者。
如果选择轻量应用服务器,部署宝塔面板的方法:
直接在下单时,镜像选择应用镜像中的宝塔面板镜像。

如果选择ECS服务器,部署宝塔面板则是:
下单时,把镜像切换到云市场镜像,然后在下拉菜单中选择宝塔面板。


而后进入到服务器控制台,按照提示获取到管理员账号密码和登入端口,就可以登入宝塔面板了。

腾讯云等平台大同小异。
进入宝塔面板后,套件选择推荐的LNMP一键安装即可。

现在,就能接上上一段文件上传的步骤了。
如果你准备使用Cursor直接在服务器上修改代码。
需要先在「安全」菜单中开启SSH密钥登录,然后下载密钥,文件名应该是「ip地址_id_XXXX」的形式,先存起来,稍后会用到。

在Cursor的应用市场中,安装Remote – SSH这个插件。

然后在Cursor的新窗口中,就可以选择通过SSH连接SSH主机了。

首先要先点击「配置SSH主机…」进行一下配置。
这里一般默认会有两个config文件,用哪个都行,比如我用第一个。

C:\Users\用户名.ssh是个本地文件夹,你可以找到这个路径打开,然后把刚才下载的密钥粘贴过来,并修改密钥的文件名为key.id_rsa。
操作好后,密钥应该跟config文件同级。

编辑config文件的内容为:
Host 服务器ip(就是刚才密钥没改名之前文件名里的ip)
然后再次SSH连接,你就能看到你的服务器主机(显示为IP地址)了,点击它即可。
第一次连接的时候需要选一下系统,选Linux。(前面用了Windows版宝塔的除外,那个真没用过,要靠你自己摸索一下。)

SSH连接成功后,打开刚才在宝塔面板解压出来的项目文件夹。

然后,你就可以通过Cursor,尽情地远程开发你的项目了。

发表回复