扣子 + 快捷指令 + moneythings 自动记账

903 阅读3分钟

背景

记账是一个很有意义的事情,但是日常记账本身这个操作还是会略显繁琐。一直以来,我都想做一个自动化记账的工具,但是消费归属的类目,很难用代码去定义。如果做了一个自动记账的工具,但类目要每次自己输入,好像跟自己记账没啥区别。好在大模型的发展提供了一个新的思路。

这里简单介绍下实现的思路给大家一些参考。

效果展示

Picsew_20250228181232.jpeg

核心思路

手机侧通过在支付的页面,使用图像识别获取消费的信息,在 coze 平台配置一个工作流,使用大模型从输入中提取消费的金额、类目以及支出的账户。将手机识别到的信息发送给工作流处理,获取解析后的信息,并将相关信息传递给 moneythings 完成记账。以上这些过程使用快捷指令串联起来,实际的效果是只需要触发快捷指令,即可完成记账。

graph LR
    A[支付完成页截图] --> B(OCR文字提取)
    B --> C[Coze工作流]
    C --> D[大模型解析]
    D --> E[金额/类目/账户/备注]
    E --> F[MoneyThings 快捷指令调用]

前置条件

  1. IOS 系统,使用快捷指令
  2. 开通 coze 平台,并有充足的调用次数和大模型资源
  3. moneythings 开通了会员(支持快捷指令调用)

手机侧

使用快捷指令,利用其中内置的一些小组件(如截图,提取图片中的文字)完成信息的提取。再使用【获取 url 的内容】来实现通过 post 调 coze 的 api,api 部分可以参考 coze 的官方文档来实现。

Picsew_20250228180820.jpeg

这里的难点在由于 monythings 的快捷指令,选择分类是一个筛选器,不能通过文本来写入,这里的替代方案是将大模型返回的分类信息传入这个筛选器,选择 top 1,即可返回一个正确的分类。由于记账支持多级分类,可以将获取分类的快捷指令独立出来作为一个方法在主流程中调用。

Coze 平台侧

接收传入的文案,使用模型提取其中信息(因为任务很简单,可以使用较小的模型),再使用代码节点将上一步解析出来的信息做一次整合,最终将结果返回。

Pasted image 20250228175407.png

这里边比较复杂的点是:大模型返回的类目需要和本地记账软件中有的类目保持一致才能正常记账。例如,若记账软件中定义的午餐消费就叫做【午餐】,而非【餐饮】或【吃饭】,大模型需要返回【午餐】,否则就会因为类目不一致导致记账失败。这里是通过在提示词中让 AI 从给定的类目中选择最合适的来实现,这样可以保证大模型的类目和记账软件中一致。账户的处理也是同样的方式。

使用流程

日常消费支付完毕后,触发快捷指令(可以配合 action button 实现一键触发)。等待 1-2 秒后,通知栏提示记账完毕,如果遇到异常,快捷指令中设置了打开记账软件并填充可以填充的信息,再完成手动的补全。