Press "Enter" to skip to content

2023,我做了几个 AI 项目

前言

2023 已经过完好几天了,一直在犹豫要不要写个年终总结,迟迟不能下笔,已经过了通过年终总结记流水账的年纪。

2023 是 AI 大爆发的一年,我也做了几个 AI 项目,觉得还是有必要记录一下,成功或失败,总结经验,可以更好的投入后面的事情。

我与 ChatGPT

2023 最火的产品,毋庸置疑是 OpenAI 发布的 ChatGPT,让普罗大众第一次体验到了什么是人工智能,围绕 ChatGPT 也发生了很多故事。

我与 ChatGPT 的故事开始于 2022 年 12 月,当时看朋友圈很多人都在讨论一个叫 ChatGPT 的产品,一开始我没有太在意,也没怎么关注。

直到有一天,一个微信好友在朋友圈说建了一个 ChatGPT 首席体验群,入群门槛是要有 ChatGPT 的账号,我才开始去了解什么是 ChatGPT。

当初 ChatGPT 的注册门槛还是有一点点高,首先需要能科学上网,使用邮箱注册后,需要绑定一个境外手机号。邮箱大家都有,科学上网和境外手机号的问题难倒了不少人。

在网上搜索了一圈,了解到有一个俄罗斯的产品 sms-activate 可以提供虚拟手机号接收短信服务,我就用这个产品解决了 ChatGPT 手机号验证的问题,顺利注册上了第一个 ChatGPT 账号,开始了我的 AI 探索之旅。

我的第一个 AI 开源 SDK

有了 ChatGPT 账号之后,登录 ChatGPT 网页端体验了几次,感受到了神奇。

之前遇到问题都是 Google 搜索,现在只需要在对话框输入问题就能马上得到答案,解决问题的效率有了很大的提升。

我当时有个想法,能不能把这种 AI 对话的功能接入到我们习惯的微信对话框?

要实现这个功能,需要有一个可以调用的对话 API,然而当时 ChatGPT 并没有开放 API。我想到了模拟登录,以前爬学校教务系统实现查成绩功能的时候经常用。

我用 Chrome 控制台研究了一下 ChatGPT 的网页接口,花了几个小时,写了一个 SDK,模拟浏览器请求,调用 ChatGPT 的网页版接口。

我在 Github 开源了这个 SDK:https://github.com/all-in-aigc/chatgpt-webapi,当时取名叫 chatgpt-go,后来改名成了 chatgpt-webapi

这个 SDK 的使用非常简单,只需要拿到 ChatGPT 登录后的 Cookie,即可实现模拟请求:

token := `copy-from-cookies`
cfValue := "copy-from-cookies"
puid := "copy-from-cookies"

cookies := []*http.Cookie{
    {
        Name:  "__Secure-next-auth.session-token",
        Value: token,
    },
    {
        Name:  "cf_clearance",
        Value: cfValue,
    },
    {
        Name:  "_puid",
        Value: puid,
    },
}

cli := chatgpt.NewClient(
    chatgpt.WithDebug(true),
    chatgpt.WithTimeout(60*time.Second),
    chatgpt.WithCookies(cookies),
)

// chat in independent conversation
message := "say hello to me"
text, err := cli.GetChatText(message)
if err != nil {
    log.Fatalf("get chat text failed: %v", err)
}

log.Printf("q: %s, a: %s\n", message, text.Content)

我在即刻社区发布了这个 SDK👇

20240104110640

这个 SDK 在 Github 累计收获 140 多个 star,后来 OpenAI 加了 cloudflare 验证,风控策略越来越严格,对抗了几次,模拟登录越来越难,只能放弃。模拟登录不上,这个 SDK 也就失去了使用价值。

我第一次使用 AI 画图

开源完 ChatGPT 模拟登录 SDK 之后,我研究了一下 OpenAI 的开放平台,看到 OpenAI 开放了 GPT-3 相关的 API,其中也有图像生成的接口。

于是我又写了一个 SDK,把 OpenAPI 开放平台的接口做了一层封装:https://github.com/all-in-aigc/openai-go,之前取名叫 gpt3,后来改名成了 openai-go

基于这个 SDK,我第一次使用了 AI 画图,也是我目前全网都在使用的这个头像的由来👇

20240104113016

我做了一款 AI 对话产品

在有 API 可用之后,我很自然的想到,可以做一个面向国内用户的版本,让被 ChatGPT 使用门槛卡住的朋友可以很方便的用上 AI 对话的能力。

我让 ChatGPT 给我想个名字,ChatGPT 列了几个,我选择了 GPTalk 作为我的 AI 对话产品的名字。

最初的版本,我把 AI 对话的功能放在了微信客服里面,然后挪到了微信公众号,交互也很简单,你发个问题,AI 给你一个回答👇

20240104114325

微信客服 / 微信公众号此类的 IM 工具,不支持流式对话,有时候一个问题要等几分钟才能回复,体验不太好。最关键的问题是容易被封号。

于是我又写了一个 H5 版本👇

20240104171125

后来 ChatGPT 发布了 Plus 账号,可以在网页版使用智能程度更高的 GPT-4 对话模型。

在 GPT-4 API 发布之前,我使用模拟登录 SDK 拿到了最新的接口,应用在了 GPTalk 上面,在回答质量方面比其他对接 GPT-3 模型的产品有优势。

我在即刻社区和 V2EX 发帖推广了一下 GPTalk,趁着 GPT-4 的热度,引来了一波流量。3 月份最高每天有大几千的 UV。

模拟请求的 ChatGPT 网页版接口不支持并发,多人同时使用就会出现响应不了的情况。我又人工注册了一批 ChatGPT 账号,使用 depay 虚拟信用卡开通了 Plus 账号。

我用 go 写了一个调度程序,使用 8 个 ChatGPT Plus 账号,响应 GPTalk 用户的对话请求。使用了一段时间,基本上还算稳定,只是需要人工更新 Cookie,偶尔会遇到 ChatGPT 的风控限制。

在 GPT-4 API 发布之前,GPTalk 率先支持了 GPT-4 模型,在回复质量方面给了用户比较好的体验,在那段时间迎来了用户增长和充值变现的高光时刻。

再后来,ChatGPT 发布了 GPT-4 API,市面上其他做 AI 对话的产品,都升级到了 GPT-4 模型,GPTalk 也就失去了竞争优势,加上我不擅长推广营销,使用 GPTalk 的用户慢慢流失了。

之后的几个月,我对 GPTalk 进行了几次 UI 改版,新增了提示词应用等功能,还用 tauri 开发了多端版本,支持了 Mac / Windows / Ubuntu 几个平台。

8 月份之后,因为用的人少了,再加上一些政策问题,这个项目慢慢也就只维护不更新了。

20240104121216

总结这个项目,我的第一个 AI 对话产品,俗称套壳。3/4/5 三个月,用户充值收入平均有一万块/每月,扣除 ChatGPT Plus 升级费用 / API Token 费用 / 服务器等成本,小赚了一两万块钱,算是 2023 年我唯一赚到钱的一个 AI 产品了。

遗憾的点在于 GPT-4 API 发布之前,我没有扩大我的技术优势,没有通过一些营销方案带来更多的增长,错过了增长的黄金时期。

我做了一款群聊总结产品

七月份的时候,我突发奇想打算做一个群聊总结产品,出发点是因为我加了很多的 AI 交流群,时不时要点开看看有没有错过重要的消息,挺焦虑的。

我希望有一个工具,帮我总结我关注的群里每天都在讨论什么内容。

于是我写了一个工具,取名叫 ChatSum

20240104151558

使用开源的 wechaty 把自己的微信小号变成了一个机器人,拉到我关注的微信群里面,监控群内的聊天消息,把消息存储在 sqlite 数据库。

艾特机器人进行提问,通过 function calling 识别出指定的时间范围 / 消息条数 / 用户昵称等参数,从 sqlite 查询到消息记录,再请求 LLM 做总结。

把消息条数控制在 100 条以内,上下文长度不算太长,LLM 选择了 gpt-3.5-turbo,效果还不错。

20240104153547

接下来,我在 ChatSum 新增了按天总结群聊话题的功能,把每个群的消息记录按天汇总成一个个 txt 文件,再请求 Claude2 做总结。当时 Claude2 刚发布,最长支持 100k 的上下文,在处理长文本方面很有优势,不过还未开放 API。

老办法,我用模拟登录的方式实现了一个 SDK:https://github.com/all-in-aigc/claude-webapi,在 ChatSum 用上了 Claude2 模型。总结效果还不错👇

20240104153945

为了让群里的用户更方便回顾历史讨论话题,我写了个 web 页面,以时间轴的形式按天展示总结的群聊话题👇

20240104154937

又写了一个对话框,针对群聊天消息进行对话,可以提取讨论内容 / 做用户画像分析等👇

20240104155051

在即刻社区简单推广了一下,引来了很多人加群,申请试用,包括一些做私域社群的群主和一些投资人。

迭代了一两个月后,我放弃了这个产品。

总结来说,ChatSum 此类的群聊总结产品,需求是非常大的,用户普遍处在一个信息焦虑的状态之下,希望能有此类的 AI 摘要产品,帮助其高效提取信息 / 缓解焦虑。

我放弃做下去,主要是因为:

  1. 用户隐私问题。拉机器人进群收集群内用户的发言记录,很难得到群内所有用户的同意,也没法要求每个人都签订隐私协议,这种情况下收集用户消息,是不合规不合法的,追究起来会很麻烦,也没有特别好的解决办法。
  2. 技术合规问题。微信对机器人一向是打压的,用机器人收集微信群消息,是不符合微信的使用规定的,很难做成一个稳定提供服务的产品。
  3. 产品变现问题。想了很久,没想明白应该向群主收钱,还是向群内用户收钱。只提供话题摘要功能,价值点是不是太薄了点。是应该为某个群总结话题,还是为某个用户跨群总结话题。

有人建议我在其他 IM 产品做群消息摘要,简单调研了一下,也不太好做。

  1. 企业微信虽然开放了消息归档能力,但是对接起来太麻烦,还需要先给企业微信交钱,代价太大。
  2. 飞书 / 钉钉好像自己在做,第三方入场有点难。
  3. Telegram 开放了获取群消息的 API,但是需要把 bot 设置为管理员才能收集消息,如果是个 SAAS 服务,估计群运营者不太愿意。
  4. Discord 自己在试点群消息定时总结话题的功能。

思考再三,还是决定放弃。ChatSum 这款产品告一段落了。

我做了一款文章摘要产品

在做 ChatSum 的那段时间,我发现很多人都喜欢往群里分享文章。每篇文章都点开去看,挺费时间的。只看标题,总觉得会漏掉什么重要信息。

于是我想,能不能在文章分享到群里的时候,自动生成一个摘要,用 AI 做一遍读前筛选,帮助群里用户决定要不要点进去看。

花了两天时间,我写了一个 MVP 版本,取名 知了阅读 👇

20240104150310

实现起来挺容易的👇

  1. 通过 wechaty 实现微信机器人,拿到群里分享的文章链接
  2. 通过无头浏览器获取到链接对应的文章内容
  3. 带上文章内容请求 LLM 做摘要
  4. 用文字或者图片的形式,把摘要回复到群里

本质上是一个很简单的提示词工程产品,门槛很低。所以文章摘要这个赛道,同类型的产品挺多的,有的已经做了大半年。

我做这款产品,是因为自身确实有需求,倒不是一定要在这个赛道卷。不想跟别人做的完全一样,我做了挺多差异化的探索。

比如我用思维导图的形式输出摘要,结构化摘要效果更好👇

20240104161534

比如我精心设计了输出的摘要图片样式,加入了一些 AI 讨论群,只要有人分享文章,就自动输出一张摘要图片,给群里第一次看到此类产品的用户眼前一亮的感觉。再通过二维码引流到 web 页面,让用户扫码添加摘要助手,进行裂变传播。在摘要图片的底部,我预留了广告位,一方面给自己的产品引流,也随时期待着以后会接到一些商业赞助👇

20240104161737

比如在很早期的版本,我就把文章摘要的功能以 API 的形式开放,吸引了一部分创作者使用知了 API 落地到更多的摘要场景👇

20240104183235

独自做了一两个月之后,我认识了一些志同道合的朋友,然后我们几个人一起做,希望把产品体验在这个赛道做到第一。

从最初的文章摘要切入,后来增加了多模态输入 / 向量检索等功能,定位转变成了一款 AI-Native 的个人知识库产品。产品名字也从 知了阅读 进化到了 知了 zKnown

我们参加了一些比赛,在极客公园举办的 hackson 比赛上,拿到了创意赛道第三名。

在阿里云创客松比赛上,拿到了生产力工具赛道的冠军。

在百度飞桨五周年的活动上,我做了一次关于知了 zKnown 的分享

20240104162626

现在的知了 zKnown,已经能在微信助手 / 移动 H5 / PC 网页 / 桌面客户端 / iOS App 多端使用,还在不断的迭代功能,也有一批用户每天在使用。

我写了一篇文章对知了 zKnown 进行了详细的介绍:我写了一款 AI-Native 产品

20240104163108

这是一款长线产品,短时间内很难赚到钱,但是值得长期投入。我们对这款产品抱有很多期待,希望能做的足够好看,足够好用,2024 年也会持续投入。

我做了一款 GPTs 导航产品

2023 年 11 月 6 号,OpenAI 在第一届开发者大会上发布了 GPTs,一下子炸开了锅,都在传 OpenAI 即将拥有一个 AI 时代的 App Store。

我在 11 月 10 号早上才拿到 GPTs 的使用权限,上手体验了一番,用知了阅读的 API 制作了一个 GPTs 应用,整个流程非常顺畅,我很看好 GPTs 的发展。

我写了一篇文章介绍了 GPTs 应用如何创建: 创建一个可调用第三方 API 的 gpts 应用

也是在 11 月 10 号,我机缘巧合之下加入了 @哥飞的朋友们 付费社群,在群里看到了一个做 GPTs 导航的网站 gptshunter.com 非常火,这个网站收录了 4000+ 个 GPTs 应用。

当天晚上,我在群里看到了 gptshunter 作者共享 GPTs 数据的消息,我发邮件申请了数据。

接下来的三天时间,我写了一个新的项目: GPTs Works,并在 Github 开源了。

很幸运的是,这个项目小 🔥 了一把👇

  1. 发布第三天拿到了商业赞助,实现了变现闭环
  2. Github 累计 star 破 1k,是我 star 数最多的开源项目
  3. 在 Google 搜索 “chatgpt gpts”, GPTs Works 排第一位置

我写了一篇文章记录了这个项目从零到一的创作过程和取得的一些成绩:出海第一周,我的 GPTs 导航站🔥了

我拿这个项目参加了 Founder Park 的 GPTs Demo Show 比赛,拿到了技术匹配度第一名的成绩👇

20240104192937

我在腾讯会议在线分享 GPTs Works 向量检索系统搭建实操,有将近 300 人来听(由于操作失误,最终只进来了 100 人),现在每天还有人在申请观看会议回放。

听说有人拿我这个 GPTs Works 项目做了课程训练营,收了上百个学员。

在最近的版本,我新增了付费上首页的功能,探索了另一种变现模式。虽然付费的人不多,但帮我跑通了海外收款的全流程。

20240104192613

总结这个项目,是我的第一次出海尝试,让我明白了流量的重要性,初步了解了 SEO 的玩法,坚定了我出海的决心。

总结与感悟

总结 2023 年我做过的这些 AI 项目,有一些遗憾,更多的是收获。

虽然没赚到什么钱,但是在折腾这几个项目的过程中,学会了很多新技能,比如👇

  • 在实现模拟登录 SDK 的过程中,学会了跟风控策略对抗,积累了充分的爬虫经验;
  • 在做群聊总结的过程中,学会了 RPA(Robotic Process Automation 机器人流程自动化),以后能熟练的使用微信机器人了;
  • 在做 GPTalk 项目过程中,学会了用 tauri 开发跨平台桌面客户端;
  • 在做 知了 zKnown 项目过程中,学会了用无头浏览器抓网页内容,学会了用 canvas 画好看的文字图片,了解了向量数据库和向量相似度匹配,第一次用 python fastapi 做项目,学会了用 llamaindex 实现语意化检索;
  • 在做 GPTs Works 项目过程中,学会了用 nextjs 做全栈开发, 学会了用 vercel 部署项目,学会了用 plasmo 做浏览器插件开发,第一次使用 postgres 数据库替代 mysql,第一次实现 Google 登录,第一次对接 stripe 支付;

然而,也有一些小遗憾👇

  • 一直在做 AI 文字生成类的产品,一直在使用 LLM 厂家的接口,没有买过 GPU 服务器,没有自己跑过模型;
  • 对 AI 画图领域不怎么了解,对 Stable Diffusion / SDXL / Lora 等技术不熟悉,Midjourney 也只是简单的用过,连 API 都没折腾过;
  • 对一些重量级产品 Runway / HeyGen / Suno / Pika 了解太少,对新事物的商业敏感度不够;

我最大的优势是具备全栈开发能力,擅长应用层产品的开发与快速落地。

不足之处是不懂算法,做不了大模型层面的事情。

最大的短板是不懂或者说不太愿意搞营销推广,大部分时间处在闭门造车的状态。

1024,我从腾讯裸辞了,现在是非常自由的状态,有时候想太多了,容易焦虑和迷茫。

2024 年,我希望能持续拥抱 AI,做出更多的 AI-Native 产品。

All in AI,未来可期。

我的 AI 项目资料


用知了 zKnown 跑了个总结👇

20240105091339