Skip to content

怎么让 siri 帮我记账 (不推荐使用,Just for fun) #1

@sword-jin

Description

@sword-jin

背景

看到一条有趣的 Twitter,感觉非常有意思,于是我马上复刻了一个。

因为有工作流相关的工作背景知识,所以对于这个自动记账的功能原理大概是明白的。不过最大的不一样的点在于:如何把自然语言转成结构化的数据(一条账目本质上就是记账表里面的一条记录)。

借助最近非常火爆的 ChatGPT ,能非常简单处理自然语言。你可以非常直接的告诉 GPT 帮助分析问题,回复输出 JSON,这里实际操作很难保证完全的回复 JSON,有时候会带上一点文字(没调教好 🐶)。

目前 ChatGPT 背后的 openai 也提供了一定额度免费接口来供你使用,个人或者家庭场景使用完全不担心会超额。

数据存储

免费的数据存储现在也有很多服务提供一定量的免费额度,由于一直在使用 Notion,同时 Notion 提供一整套 API 给外部接入,非常方便。同时,未来需要做账单数据的统计,无论是在 Notion 的 UI 端创建表格来完成或者自己调用 API 来获取都是可以的。

很多年前大学的时候在用挖财记账,于是找了一下市面上的记账软件,没有发现好用的且能提供免费接口来记账的一款。

总之,数据还是存在自己能有一定控制权的地方比较好。

工作流设计

外部资源申请

OpenAI Token

https://platform.openai.com/account/api-keys 申请一个 OpenAI 的 API Token,需要使用 ChatGPT 的账号。

Notion Token & Database ID

Notion 通过自己应用接入的方式来进行集成,需要在开发者后台先新建一个应用,然后就可以获取这个 Token (不要随意泄露)。

CleanShot 2023-02-22 at 11 40 26@2x

然后,新建一个要记账的 Notion 表单,同时把新建的应用授权给这个页面(或者叫数据库)。

✨ Notion 表单模版 ✨

CleanShot 2023-02-22 at 11 43 29@2x

通过上面的浏览地址栏可以获取到这个表单的 Database ID
例如,这是 Notion 的链接,https://www.notion.so/b620?v=ga68h62k,其中,数据库 id 是 b620

这样,通过这个 Token 就可以调用 Notion API 来进行各种数据读写了。

创建 Siri 捷径

已经分享到 icloud,可自行获取,建议使用最新版:

  • v1.3
    • 接入 chat-gpt 模型
    • 增加时间计算(时间里面会带上时分秒)
      • 可使用 昨天上午我买了 ***,上周五,早上8点...
  • v1.2
    • 增加了计算账目时间(昨天,上周...)
    • 修复了一些流程问题
  • v1.1
  • v1.0

导入到本地之后,需要修改一些数据:

  • Username (记账的用户名)
  • Notion token
  • Notion database id
  • Gpt token (OpenAI Token)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions