惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

IT之家
IT之家
Microsoft Azure Blog
Microsoft Azure Blog
人人都是产品经理
人人都是产品经理
博客园 - 聂微东
博客园_首页
阮一峰的网络日志
阮一峰的网络日志
V
V2EX
小众软件
小众软件
F
Fortinet All Blogs
Microsoft Security Blog
Microsoft Security Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
H
Hackread – Cybersecurity News, Data Breaches, AI and More
量子位
Google DeepMind News
Google DeepMind News
Jina AI
Jina AI
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
aimingoo的专栏
aimingoo的专栏
B
Blog RSS Feed
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
宝玉的分享
宝玉的分享
有赞技术团队
有赞技术团队
J
Java Code Geeks
WordPress大学
WordPress大学
The Cloudflare Blog

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派
MCP+传统软件:给自己的开源项目加上AI的翅膀,从开发者到产...
2025-06-11 · via 少数派

本篇文章讲述的内容是我给自己的开源软件添加AI功能的历程,不感兴趣的同学可以直接关掉哈

前言

去年10月的时候,我曾经在少数派上发布过一个我自己的记账软件的开发过程,链接在下方,感兴趣想了解是一个什么项目的,可以点击看一下,下面我要讲的内容,是基于这个项目进行开发的

彼时的我在开发项目的过程中就在github上面写到过,想着添加AI相关的功能

并非想当时代的弄潮儿,实则我因为工作的缘故,从2020年开始开发NLP相关的应用,再到22年年底的ChatGPT平地惊雷,因为工作的缘故也第一时间跟进

后来基于LangChain做的RAG相关的应用,再到后来使用知识图谱、Dify,等等等等,在LLM生成式AI方向上,感觉自己走过了很漫长的道路

So,基于工作上面的经验+自己的开源项目,就产生了奇妙的反应,引申出下面的内容


添加LLM的方式

当我的记账软件开发版本从1.0再到1.5、2.0、2.4、2.5,版本号的递增导致了我功能完善的同时,也开始逐渐厌倦,功能点是逐渐减少的,到了增无可增的时候了

然后人类一思考,上帝就发笑

一个记账软件+大语言模型,应该是一个怎么样的产品形态?

这是一个从开发者跨入产品经理的思考

最终我对自己的记账软件解构化之后,就剩下两个大功能,一个是‘记’,一个是‘查’

其余的,均为花架子

所以我给自己提出了一个较为发散的问题列表:

  1. 对比一下上个月和去年同期的支出,什么占大头?
  2. 我今年哪天买的枕头?
  3. 整理一下我去年各个月份的支出
  4. 我儿子去年生病花了多少钱?今年呢?
  5. 今年第一季度和去年第一季度比,收入少到哪里了?
  6. 统计一下近三年我车的保险钱
  7. .......

如果上述问题都能回答,我觉得AI功能算是添加成功了

带着目标我做了如下的尝试:

方案1:LLM+数据库

这是一个早期方案,如果我没记错的话,在23年7月份尝试的

思路:既然要查,我一步到位,让LLM生成SQL语句,查询数据库,得到数据,再进行总结

操作:使用 文心4.0模型生成SQL后,直接使用该SQL进行查询

结果:失败,我无奈的发现,这个弱鸡模型在当年干点别的还行,但是他根本对付不了几个简单的表,还有每个表的结构

方案2: RAG检索增强生成

在尝试了数据库的路行不通的时候

我想到了另一条路,RAG

思路:每个月的账单数据,使用Embdding模型,加入到向量库,使用用户问题进行召回并回答+LLM模型回答

操作:为了简化操作,我部署了一套Dify,手动导入了我的全部账单,Embdding+Rerank模型均使用硅基流动的API,大模型选用Qwen2-72B

这是我工作用的dify知识库

结果:失败,这次是卡在了知识库召回这里,知识库召回存在天然的短视问题,无法处理更大更全局视野的问题,举例子就是:“查一下这半年大头花销”,结果就是他只能召回3个月的数据,并且时间错误


其实到这里我就已经搁置了我的想法,既然无法用技术手段实现,那就交给时间吧

柳暗花明又一村,时间来到了去年年底,MCP被Anthropic提出,并且迅速发展

这时的LLM模型,百花齐放

DeepSeek-R1、Claude、Qwen3家族等等等等

他们都有一个特殊加强功能,instruct指令,时机也许到了...


方案3:MCP Server+API接口

今年5月初,又是工作中的调研,我开始探索MCP,这个新兴的工具

MCP的组成部分有两个:

  1. MCP Server
  2. MCP Client

MCP Server:

职责:提供一系列的工具,然后通过工具调用记账软件的接口,提供数据

开发:基本需要自己开发,根据实际业务来进行开发

MCP Client:

职责:链接大模型,与用户提供交流的窗口,并与解析模型给的JSON后与MCP Server通信

开发:可以自己开发,也可以直接选择带有MCP Client功能的软件来直接使用

至此,选型结束,我开始了项目的开发改造


MCP Server开发与结果

千看万看不如手试一遍

基于Github上的mcp官方仓库,我开始了开发

MCP Client选用的是Cursor,客户端开发不在本次内容中

主要的开发内容是MCP Server

开发的过程很无聊而且coding过程大部分人不关心,这里我不多赘述

得益于我自己的开源记账软件预先设计好了接口与swagger文档

所以工具开发工作量并不是很大

这里贴一下我的工具列表,鉴于是实验性质的内容,我也没有创建太多的工具

字有点小

断断续续搞了几天,最终成功部署


下面Callback一下我之前的几个问题,来看一下他的回答吧,请开始你的表演

  1. 对比一下上个月和去年同期的支出,什么占大头?

2.  我今年哪天买的枕头?

3. 整理一下我去年各个月份的支出

4. 我儿子去年生病花了多少钱?今年呢?

小孩生病太贵了

5. 今年第一季度和去年第一季度比,收入少到哪里了?

6. 统计一下近三年我车的保险钱

如你所见,上述的几个问题算是均得到了我比较满意的答复


关于给传统软件插上AI的翅膀

在接入MCP Server前,我的记账软件EasyAccounts只是一个普通的前后端分离的项目(现在77个star了呦)

在我外挂了一个MCP Server的端后,真的碰撞出来了奇妙的化学反应,无需繁琐的手动查询,打开界面,直接问问题,就可以总结回答

这次实践,让我思考了一个问题,如果是公司级的传统项目,是否可以在某一些开放式的业务场景,例如查询等业务开创新的用户体验?

把传统的API接口,化作工具,组合使用,交于LLM大模型,这是否是未来呢?

还是那句话,技术手段没办法解决,把一切交给时间吧


最后说一下MCP Client

关于客户端的开发,其实我觉得很多人都是忽略的一点

与我个人来看,MCP Client的重要性,要强与MCP Server

我并不觉得所有人都有Cursor,也不觉得普通的用户会煞费苦心的配置自己的api key到一个第三方的大模型应用上

虽然我觉得Cursor以及我现在用的CherryStudio用户体验已经不错了

Cherry Studio 另一款支持MCP的LLM客户端

但是依旧是增加了用户的使用成本、学习成本

LLM相关产品,应该是简化用户的操作的

所以,想要打造一个普罗大众都能开心用起来的的AI应用,MCP Client是要融入自己的产品的,第三方的MCP Client终究不是一个终极的产品形态


写在最后

我的记账软件虽然开源了,但是本次开发配套的MCP Server我还没有开源,这里等我开发好MCP Client在考虑后续的开源事项吧

如果你有什么更好的MCP相关的idea或者经验,欢迎交流