ChatGPT-FeiShu 为什么能火?

MacBook Pro on brown wooden table

复盘 – ChatGPT-Feishu 项目 之后,我的项目也经历了一些迭代,OpenAI 也将最新的 ChatGPT 所使用的 API 版本进行了开放,对于我们开发者来说,无疑是一场狂欢。

而在这个过程中,ChatGPT-Feishu 也收获到了不少的关注,用户越来越多,在这个时候,我开始思考 Why?

一方面,是 ChatGPT 本来就很热,毕竟是一个 AI 新物种,看起来比过去的各种 NLP 产品都更有意思。再加上各种媒体的渲染, ChatGPT 成功的出圈了。

另一方面,是 ChatGPT 在注册和使用上存在限制,大部分的普通人是无法直接使用的,所以使得 ChatGPT 又有了一些神秘感。这种限制使得我们这些能够将 ChatGPT 的能力提供出来的项目得到了更多的关注。

而最后,则是 ChatGPT 和企业协作场景的契合,如果你将 ChatGPT 接入到企业的聊天工具中(如飞书、企业微信),就可以让一个企业的人用起来 ChatGPT,且可以在不损失企业上下文的场景下使用,可以达到非常好的日常使用的效果。

说起企业协作的场景契合,让我想起了多年前的 ChatOps。我前几天去看,Hubot 项目已经被 Archive 掉了,真的是时代的眼泪💧。

OpenAI 的 API 使用的三种层次

MacBook Pro on brown wooden table

随着 ChatGPT 的逐步推广,我看到了大量基于 OpenAI 的产品出现,如果要将其分层,我认为可以分为三层:

Connect 层:只是在使用 OpenAI 的 API ,并没有做太多的功能提升

比如我自己做的 ChatGPT-Feishu,其实就是在这个层次,更多是将 ChatGPT 和一些现成的应用进行连接,所以差异性不大,大家大多是在技术上卷一些新的 Feature。

在我看来,这个层次的卷动是非常有限的,因为现成的应用和场景就这些,大部分时候我们能做到的也就是将 ChatGPT 和现有的生态更好的结合,但没有什么本质上的变化。

Prompt Engineering 层:预制 Prompt,帮助用户问出好问题

当我们仔细去看社交网络上的那些 ChatGPT 的用法之后,其实你会发现, 大多数人对于 ChatGPT 的用法是非常简单粗暴的 —— 问一些过去问搜索引擎的问题。ChatGPT 会给你一个看起来还不错的答案。

这个问题背后其实是大部分人是问不出一个精确、明晰、易于理解的好问题的。

而 Prompt Engineering 层的产品则可以实现对于问题的解构,将一个复杂问题拆解为一套模板 + 一些用户可以理解和输入的内容,从而降低提问的难度。

这一层的应用更多是在卷不同的场景以及对于 Prompt 的优化,以实现更加精准和优质的返回内容,从而帮助用户解决问题。

Finetune 层:对模型进行微调,以符合应用和业务的场景

OpenAI 对于模型提供了 Finetune 的能力,开发者可以准备自己的数据集,将其上传至 OpenAI,由 OpenAI 对模型进行微调,后续开发者可以使用经过微调的模型来进行自动的补全。

这个层面大家卷的就是行业领域认知和干净的数据了,就回到了 AI 经典的行业落地场景了:收集行业数据 – 清晰数据 – 训练模型 – 实际应用。只是 OpenAI 将这件事的难度给降低了。对于开发者来说,可以更加低成本完成整个流程。

如果你只是玩票,那我觉得第一层和第二层都是不错的。但如果你打算正经做个事情,那么第二层可能是必备的基础。

纪念一下我遗失的 Kindle Voyage

kindle voyage

我又双叒叕遗失了我的 Kindle Voyage。

上一次遗失,还是我在医院住院时,找不到了我的 Voyage,于是我买了一个 Kindle Oasis 2。但后来出院时又找到了我的 voyage,Oasis 进入吃灰状态。

相比于 Paperwhite、Oasis,Voyage 算是我最喜欢的阅读器了:他的体积刚刚好,可以直接放进口袋里(这也是为什么我总是带着 Voyage,以及为什么这一次 Voyage 会丢掉)。

d2b5ca33bd970f64a6301fa75ae2eb22
丢失前我还在地铁上看【巨人的工具】

Voyage 我买于刚上大学的时候,彼时 Kindle Voyage 刚出,我便直接购买了最贵的 Voyage。从 2015 ,到如今的 2023 ,Kindle Voyage 陪伴我了 8 年时间,陪伴我走过了几百本图书的风风雨雨。

感谢 Voyage !感谢你的陪伴,让我的生命从不孤单。

接下来的日子里,就要让 Kindle Oasis 来陪伴我了(以及微信读书阅读器 2 代)。

走正道,可能有点慢,但更安全

man in black jacket sitting on white chair

我在开发 ChatGPT-Feishu 这个项目的时候,并没有选择使用网页版的 chat.openai.com 的服务来进行 Hack。我在社区里看到大量通过 Hack 的方式,来提供了 ChatGPT 的 API 能力。

d2b5ca33bd970f64a6301fa75ae2eb22 19

不可否认,网页版的能力是要比其通过 API 的方式提供的产品能力更强(毕竟模型更新),但对于一个成型的产品而言,稳定是远比能力更强更重要的。能力更强,我们可以通过一些技术手段来实现 — 比如通过数据库来实现多轮对话,可能功能不够强,但确是一个明确可以演进的方向。

Hack 官方未开放的 API ,虽然可以使用,但也带来了极高的维护成本。你可能需要不停的去更新和维护未开放的 API 的实现方式,与官方斗智斗勇。

作为一个 Side Project,没必要做的那么累。

如何处理 Github Action 报出的 remote: Permission to xx x denied to github-actions[bot] 问题

black and white penguin toy

在帮 @MikeyWei 搭建 Beyond-the-World 的网站时,他希望我能够实现 Hexo 自动的部署能力,这样作为一个写作者,他可以只关注于写作(只需要复制粘贴 Markdown)本身,不需要去处理 Hexo 本身的配置问题。所以我便借助 GitHub Action 来实现自动部署,帮助他实现想要的目标。

不过,在执行过程中遇到了一个问题,Github 提示 remote: Permission to xx x denied to github-actions[bot]

d2b5ca33bd970f64a6301fa75ae2eb22 20
GitHub 提示

但我使用的是 Github 默认的 Secret Token ,并没有手动配置,所以并没有发现有配置权限的地方。而过去同样方式又是可以的,所以可能的问题便是 Github 提供了新的配置,导致这个 Token 默认没有权限了。

d2b5ca33bd970f64a6301fa75ae2eb22 21
我的配置文件

仔细研究后发现, Github 的确是新增了一个配置,在项目的 Settings – Actions – General 当中,新增了一个选项 workflow permissions。你可以通过直接修改这个选项,来为你的 Flow 提供默认的读写权限。

d2b5ca33bd970f64a6301fa75ae2eb22 22

不过,由于我不是组织的管理员,所以没办法设置,所以我选择了另外一个方式,在 Action 的 yaml 中添加了 permission 的描述,为这个 Job 新增了写权限,默认的 Token 便拥有了写权限。

d2b5ca33bd970f64a6301fa75ae2eb22 23

延展阅读

https://docs.github.com/en/actions/security-guides/automatic-token-authentication#modifying-the-permissions-for-the-github_token

ChatGPT 与聊天软件的结合

man in black jacket sitting on white chair

ChatGPT 与聊天软件的结合会是一个不错的爆点。因为机器人的出现,可以让你在不丢失上下文的同时,完成你的工作,这样的形态会帮助 ChatGPT 快速的完成拓展。

网页版的 ChatGPT 虽然更强,但终归还是可以通过 API 来体验到的,但集成在各种工作的上下文当中,可以帮助机器人达成更强的能力。

对于 ChatGPT 来说,飞书、Slack、Telegram、Discord、Teams 来说,都有一定的空间可以用来做一些事情。

值得你去进行一定的投入。

ChatGPT,为独立开发者提供了更多可能

man in black jacket sitting on white chair

独立开发者很大的一个问题是能力范围有限,但有了 ChatGPT,你可以成为一个更强大的独立开发者。

自立的这条 Tweet 给了我灵感。

作为一个独立开发者,我们其实会面临很多不同场景下的需求,比如我们需要写软件的更新日志、写用户教程、做活动推广,这些对于独立开发者来说,都是需要耗费精力才能完成,有了 ChatGPT,我们(可能)可以快速获得一个80分的对应角色的人,我们可以问他们各种需要的能力,从而来提升我们做事的效率。

AI 不会让专业的人失业,但的确可能会让半吊子失去了工作。但对于 AI 的用户来说,真的是科技普惠众生了。

你生活的地方,才是家

living room set with green dumb cane plant

自大学以来,我便常年在外,每年回家的时间,不过是过年那七天。其他时间,我大多在一线城市奋斗。

而对于我来说,家也成了一个陌生的词汇 —— 焦作是我家,我在焦作生长,我熟悉我家附近的道路。但焦作也不是我家, 我早已不知道家门口的商铺是什么?他们在卖些什么、他们的生活里都是什么样的日常。

对于我来说,家是我生活的地方,它可能很大,如天津我租的房子一般;它可能很小,如我在深圳住的 10 平米的小隔间。

家是你生活的地方 —— 而不是家乡的地方。你在村里修建再好的房子,可那终究不是你的家 —— 那里只有一座气宇轩昂的房子,却没有你。你在城里住的再落魄,那终究是你的家,因为它有你。

那么,为什么一年只住几天的地方可以是家呢?

使用 Github 作为 Logseq 的数据同步

person using iMac

继之前体验 Obsidian ,如今我在使用 Logseq 作为我的日常信息记录:

  1. 有想法就放在 Journal 当中,并通过大纲的方式,让我的想法逐渐变得丰满。
  2. 使用 TAG 来区分不同的内容分类(比如编程、生活之类的)

在使用 Logseq 的时候,必然会涉及到需要做数据同步的问题 —— 没有同步万一跪了怎么办?

好在是 Logseq 提供了 Git 版本控制的能力,你只需要在设置当中开启 Git Commit 的能力,就可以让其自动使用 Git 来添加版本,从而实现将你的变更通过 Git 本身的能力来记录。

d2b5ca33bd970f64a6301fa75ae2eb22 16
Logseq 自带的 Git 功能

当完成了 Logseq 的 Git 初始化后,自然而然的,我们便会想 —— 我能不能将其上传到 GitHub 上来完成存储?即使不分发协作,也可以很好的用来存储。答案当然是可以的,配置版本控制之后,Logseq 的仓库就是一个标准的 Git 仓库,你直接推送即可。

当发现可以推送之后,也就不担心数据的版本化问题了。那随之而来的便是 —— 我如何做数据同步?如何不让我手动上传数据到 Github 当中?

你可以借助 Git 的 Hooks 机制来完成:Github 上的开发者 CharlesChiuGit 有一个项目 Logseq Git Sync 101,其中介绍了如何实现自动的 Git 同步。

你只需将其仓库中的 Pre-commit 和 Post Commit 两个文件放置在 Logseq 目录下的 .git/hooks 目录中,即可借助 Git 自身的 Hook 能力,实现在 Commit 前主动拉取配置,避免出现数据冲突的问题,并在 Commit 之后自动推送结果,实现数据的及时上 Github。

d2b5ca33bd970f64a6301fa75ae2eb22 17

具体操作也不复杂,只需要在 Logseq 根目录的 .git/hooks 目录下创建 pre-commitpost-commit文件即可;随后,将 Logseq-Git-Sync-101 中的文件内容复制到这两个文件中;最后执行 chmod a+x post-commit pre-commit 来实现给其添加可执行权限,即可实现在 Logseq 当中执行操作提前推送一次更新 & 拉取一次内容。

d2b5ca33bd970f64a6301fa75ae2eb22 18
tree 效果

有了 Git Sync 101 ,我几乎可以不用担心同步数据了 —— 毕竟做研发的人,谁电脑上还能没有个 Git 了?

汝之蜜糖,彼之砒霜

man in gray shirt sits on cliff

不同的人性格是不同的。

以我为例,是一个偏社牛的性格,什么活动总想去凑一下。什么样的事情都希望去了解一下,因此也造就了我什么都知道一点的习惯。对于这样性格的我来说,参与社交活动是一种享受。

而对于社恐来说,我所做的一切,可能都是令他反感的。

而现实生活中可能并不一定能总能如愿,比如可能社牛并不会被邀请到活动当中,而社恐则总是被带到各种不同的场合当中去锻炼。

社牛和社恐都不能如愿,这大概就是社会与个人预期的错配。

生活好物:小厨宝

d2b5ca33bd970f64a6301fa75ae2eb22 15

来天津租房住以后,租房的成本下降了不少,在深圳同样的房租,我可以租到接近两倍面积的房子。而在这个过程中,也发现了一些不错的生活好物,其中我首先推荐的便是 — 小厨宝。

这个东西我之前是不知道的,因为我家过去在老房子的时候,使用的是电热水器(那种巨大的一个储水箱的),而搬到新家后,则是燃气热水器。在深圳的时候也基本上是燃气热水器和电热水器交替着使用。

d2b5ca33bd970f64a6301fa75ae2eb22 14
大家伙电热水器

电热水器的好处是储水量较大,所以一般来说都装在厕所,可以用来洗澡。但由于没有全屋 0 冷水系统,所以厨房用水常常是凉水。这就导致我一直以来对于洗碗不是很有好感。特别是冬天洗碗。

而小厨宝则算是一个很适合放在厨房或者是做老房子改造的设备。和电热水器原理类似,都是通过电能转化成热能来加热水。不同的是小厨宝突出的是一个小字,可以方便的藏在厨房的柜子当中,从而实现给厨房供给用于刷碗的热水。

d2b5ca33bd970f64a6301fa75ae2eb22 15

而且,其小巧的大小可以储存 5 ~ 6L 的水,日常洗碗用水完全没问题。对于环境来说,要求也不高,有个三通管道,配合一个三相插座,即可完成安装,如果你是老房子,也可以比较轻松的达成安装的条件。

小厨宝算是我最近发现的一个不错的生活好物,推荐给你 — 如果你需要给家里的老人做适老化改造,不妨从小厨宝开始。

投资领域的 Alpha 收益和 Beta 收益

8ec24eb1d2165bf6f329b41438de1442

最近币圈复苏,各种新的 Token 出现,让不少人一夜暴富。自然也就有人来写 —— 我是如何获得这个 Alpha 收益的?

那问题来了,什么才是 Alpha 收益?

Alpha 收益可以理解为是由人为因素所影响的部分,我们希望提升的收益,往往也是因为 Alpha 收益带来的。但同样的, Alpha 收益的提升也是困难的,你需要对抗市场,在市场当中总结出自己的经验,并发现其中的收益点。

Beta 收益则是那些无需手动操作就可以享受的收益 —— 比如国家的发展、时代的变化,都是可以为我们带来 Beta 收益的事情。对于绝大多数的普通人来说,都可以相对简单的获得 Beta 收益 —— 比如购买大盘的指数基金。

微信读书阅读器 2.0 使用体验分享

d2b5ca33bd970f64a6301fa75ae2eb22

微信读书阅读器我购买于 2022 年 4 月,截止到现在,已经到手使用了超过半年,我也终于敢放心的来说这个阅读器的好与坏了。

1761ce9c11a62b04119bacb8283a3025
订单截图

TL;DR

微信读书阅读器的优势是非常明显的,配置不低,背靠微信读书的海量内容,加上一年 168 的年费,确实可以让你达成类似于曾经 KIndle 的阅读体验。而 7.8 英寸的大屏,则可以让你更好的阅读图书和查看漫画,非常舒服。但大屏幕和 268 克的重量,决定了微信读书阅读器并不适合都市打工人,它更适合你坐在沙发上、椅子上、草地上,认真的阅读,在地铁上的话,你可能会容易小手指疼。如果你只想读书、只关心读书、只在乎读书,那微信读书的阅读器就和 Kindle 一样,值得你选择和信赖。

技术规格

微信读书阅读器 2.0 和 一代一个很大的不同是不再由文石代工,整体的设计都由微信读书团队把控。好处是更符合微信读书自己的诉求,可以更加的“微信风”,但同样的,也造成危险读书阅读器的外设不多,如果你想要买一些外设,可能是比较困难的,需要对着尺寸去找,而不是可以像其他产品那样直接搜型号。我后续会写一篇文章来介绍我自己购买的外设。

d2b5ca33bd970f64a6301fa75ae2eb22 42
阅读器配置

大尺寸给微信读书带来一个很重要的劣势是重量,268g 接近半斤,作为对比,你可以看到, iPhoen 14 Prox Max 也比微信读书阅读器小了近 20 g,你如果拿 iPhone 14 Pro Max 比较吃力,那你拿微信读书阅读器 2.0 可能也不会太舒服,基于文石 Poke 3 改造的微信读书阅读器 1.0 可能会更适合你。

d2b5ca33bd970f64a6301fa75ae2eb22 6

微信读书阅读器 2.0 的设计

微信读书阅读器 2.0 由于是自己设计的,所以在颜值上非常的能打。我购买的是青石灰。正面除了屏幕,就没有什么东西了,而背面,也是只有一个微信读书的 Logo。

和 Kindle 不同,微信读书阅读器 2.0 使用了四四方方的边框,虽然做了包边的处理,但和 Kindle 比依然略显锐利。

d2b5ca33bd970f64a6301fa75ae2eb22
正面
d2b5ca33bd970f64a6301fa75ae2eb22 1

系统

微信读书阅读器 2.0 的系统自然是不用多说,来自微信官方定制的封闭式系统,好处就是你可以无需关心太多操作(对于懒得去研究开放式系统的人来说,是个不错的选择),但坏处就是可以自定义的项目说实话不多。

d2b5ca33bd970f64a6301fa75ae2eb22 2

系统级别的阅读设置就只有「点击左侧向后翻页」的设置项可以选择,剩下的便是 Wi-Fi、时间、系统文字大小等。这个左侧翻页的逻辑也挺奇怪的,我能理解是为左撇子设计的,但开启后,点击左侧向后翻页,点击右侧也向后翻页。。。我无法向前翻页了,不得已只能关掉这个功能,一直使用右手举着(加重了右手的压力)。

d2b5ca33bd970f64a6301fa75ae2eb22 4
简洁的设置项目

阅读时的设置项目还不错,有比较多的选项,行距、边距、字体字号粗细等,都可以直接在阅读页面的设置进行修改。其中还包含微信读书团队选择出来的适合墨水屏阅读的字体。在减少配置的同时,提供了一些优选的选项,挺好。

d2b5ca33bd970f64a6301fa75ae2eb22 5
阅读设置

电脑链接

不好意思,微信读书阅读器没有这个功能, 你并不能像 Kindle 那样,将微信读书阅读器插入到电脑上,然后做笔记 Notes 的导出,你只能在微信读书 App 当中管理你的微信读书的笔记。这个我认为算是一个败笔,好在我有一些自己的工具可以来完成导出(这个会在外设的那一篇当中介绍)。

图书缓存

微信读书阅读器 2.0 支持离线阅读,你只需要将图书添加到你的书架里,便会自动进行缓存,如果你发现图书名字前面的小黑点变成了实心打对勾✅的,说明这本书就已经完成缓存了,你就可以在离线的情况下阅读了。(不过需要注意的是,如果你的笔记还没有上传,不要在离线情况下删除图书,会导致你的笔记也一起丢失)。

d2b5ca33bd970f64a6301fa75ae2eb22 2

使用体验总结

如果你问我,微信读书阅读器 2.0 值不值得买,我会说,还是值得的,阅读体验不差,配合微信读书海量的图书,它的价值依然远超价格。但如果你没有阅读习惯,或者你日常是在通勤时读书,那手机上的微信读书 App 会更适合你,可以让你在通勤的时候用零散的时间来阅读。如果你的阅读场景是在家里坐在沙发上,或者是坐在椅子上看书,那微信读书阅读器是不错的。

安迪比尔定律的变种 — AI 和需求定律

photo of girl laying left hand on white digital robot

安迪-比尔定律,是对硬件升级与软件升级之间关系的陈述,是指新软件总将耗尽新硬件所提高的任何计算能力。

安迪 – 比尔定律,维基百科

最近在看 ChatGPT ,突然想起来了安迪比尔定律。在安迪比尔定律中,我们描述新的软件将会耗尽硬件提升的计算能力。

如果将其放在 AI 能力,则意味着,AI 节省的那些工作岗位,都将会因为人类无穷的需求和变化而重新出现。

AI 终究只是一个工具,是一个提升生产力的工具,他所提升的生产力,很快会因为社会平均生产力的提升而降低其效益。

当然,短期还是会有很大的价值,拥有 AI 能力,你就有超出平均水平的收益。

人生有台阶

person stepping on blue stairs

法不轻传为什么 2022 年了,依然让堂弟入 IT 的坑当中,我其实提到过,我希望堂弟能够走 IT 的路线,从而摆脱黄土朝天的现状和未来。

但说实话,如今我觉得,我可能过于高估了自己,以及低估了阶级之间的代差。

我父亲是从村里走出来的学生,到城里上学,并考入了公务员。而我如今能够成为一个软件工程师,很大程度上得益于从小学习 IT。大伯则是一直留在村里,虽然中间做生意、搞绵羊养殖,但总的来说,都是做的和土地相关的事情,堂弟也从小耳濡目染,给大伯帮忙。

对于我来说,我站在一个更高的起点上,从而走出了自己的路。堂弟的起点更低,我的路线未必适合他。甚至我的选择可能就是一个错误的选择,他需要走的,是曾经我父亲的路,从村里到城里,再从城里到更好的城市里去。

优秀的人当然可以跨越这个步步前进的设定,但终归只是少数人。

想起来之前知乎上的一个段子 —— 凭什么别人几代人的努力,被你努力一下自就给超越了?

法不轻传

a man and woman holding a skateboard

表弟跟我学了半年的编程了,进展不多,所以开始有些畏难心理。

作为堂兄,我是希望他能够有所成,奈何基础确实差距比较大,没有成果也实属正常。

回过头来思考这半年的问题,我觉得最大的点在于 —— 我没管住我自己。

教堂弟一个他自己可能并不是很喜欢的东西。喜欢是一切成就的源泉,只有喜欢,才能做到极致,但堂弟并不喜欢,所以在这个事情上投入难免不足。而投入不足,也就更难有所成就,形成了负向的飞轮。

而我在其中,则扮演了一个替他做决策的人,实际上,能够做决策的人只有他自己。他需要找到自己真正喜欢的东西,然后从这个喜欢出发,发展出自己的事业。

😮‍💨

学而不思则罔?学而不用则罔

love to learn pencil signage on wall near walking man

在论语当中,有一句非常经典的句子 ——

学而不思则罔,思而不学则殆

孔子,《论语 · 为政》

我们从小就学习这句话,它也伴随我们走过了我们的学习生涯。但直到最近,我才更加深刻的理解和感悟这句话,并将其进一步拓展 —— 学而不用则罔

在学校学习的时候,我们学习的往往是理论知识,无需专门的去实践,所以就如同孔夫子所言,我们只需要学习并思考,便可将知识融入到我们脑海中,成为我们自己的知识和智慧。

而当我们走上社会之后,我们的学习则更加的功利 —— 你不太会去学习一些纯理论的,你所学习的东西,往往是需要解决一个现实存在的问题。因此,我们需要将「学而不思则罔」改一改,变成「学而不用则罔」。

学然后致用,才能让我们不至于迷失在不同的理论当中,相互冲突。实践不同的理论,并因此来改变自己的生活。

工程师,除了互联网,还有很多选择

orange camping tent near green trees

2022 年景不好,看到不少裁员的,也看到不少人面对裁员显得悲观,甚至也看到有些人提到「如果不做成管理层,感觉这一生可以看到尽头」。

但工程师其实还有很多选择 — 这世界并不是只有互联网公司才需要工程师,任何一个和数字化强相关的企业,也都需要工程师。大部分时候,如果你放弃了高薪,你其实完全可以找到一个可以轻松做到 Work Life Balance 的工作,他们可能偶尔加班,但绝对不卷。你每天可以接送孩子,周末可以出去玩,而不是每到周末就整个人被榨干,没有力气。

我们现在面临的社会是一个阶级逐渐固化的时代,你其实希望通过在互联网大厂实现的是阶级越迁。但时间窗口已经消失,已经不存在阶级越迁的可能性了,你还会选择继续在互联网大厂卷么?

既然上升无望,不如好好过你的生活,静待下一个周期。