作者:小傅哥
博客:https://bugstack.cn
2022年12月25日,我把 ChatGPT 通过 API Keys 的对接方式,拉倒了微信群。经过群友热情噼里啪啦的一顿提问后,ChatGPT $18 的配额就被干没了🤨!而且整理群友的提问,其实大部分都是没啥意义的,比如问:“一天吃几顿饭能撑死?” 所以小傅哥希望用这个东西做点有意义的事!
一、前言:我要干啥?
经过对 ChatGPT 的了解和使用,尤其是对技术问题的广度和深度回答,某些时候甚至比在浏览器检索还要有用,ChatGPT 可以更精准、更简单、更直接。
所以,小傅哥研究着把 ChatGPT 接入到知识星球,当粉丝伙伴需要提问一些常见技术问题时可以直接提问给星球中的 ChatGPT 来回答。而那些星球中的项目学习问题和需要参考小傅哥的过往经验来处理的问题,再提问给小傅哥。
这样一方面可以提高粉丝伙伴的问题回答的时效性,另外一方面也可以帮助小傅哥减少一定的工作量。岂不美哉!说干就干,搞!
二、爬虫:要怎么干?
1. 设计
🤔 我要开发一个程序,把知识星球与ChatGPT连接起来!
左侧是知识星球,右侧是ChatGPT的OpenAI。我希望通过我开发的这个应用程序,从知识星球拉取用户提给我的问题,之后把问题塞给OpenAI,得到答案以后再推给知识星球中提问者。
2. 开发
反手就搭建了一个 ZSXQ-Api SpringBoot 领域驱动设计 DDD 架构工程,在工程中封装知识星球 API 以及 OpenAI 调用 API,当然这里还得有一个定时的随机任务来处理需要回答的问题。
哈哈哈,小傅哥这里留了个心眼。不能让程序一直有规律的跑,也不能半夜还在跑。首先这样的调用可能会触发风控机制,也会让你自己的 OpenAI 大量消耗。虽然知识星球或者任何一个网站你都可以只用自己的信息模拟浏览器行为,但也不能作死。
3. 部署
接下里就是打包镜像文件和部署 Docker 了,你可以在自己的 Docker中跑,有钱的也可以放到云服务器上跑。
# 基础镜像
FROM openjdk:8-jre-slim
# 作者
MAINTAINER xiaofuge
# 配置
ENV PARAMS=""
# 时区
ENV TZ=PRC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 添加应用
ADD target/zsxq-api.jar /zsxq-api.jar
# 执行镜像
ENTRYPOINT ["sh","-c","java -jar $JAVA_OPTS /zsxq-api.jar $PARAMS"]
三、机器:回答问题!
在小傅哥的知识星球【码农会锁】中添加了一个叫 @ChatGPT 的机器人,只有对它的提问才会被 OpenAI 回答,其他的提问仍旧是小傅哥来回答。—— 希望用这样的技术手段,帮助到很多小白学习。
🤔 考虑到 OpenAI 回答问题的频繁性,以及很多问题可能比较初级,所以设定为不提醒。只回答给提问的用户可见,所以你对他提问只有你自己会收到回复。
一次OpenAI接口调用的费用在1.2毛左右,这相当于你不用付费就免费获得一个问答的老师。与此同时还有一个小傅哥,不只是给你提供提问和回答,还给你了一堆实战项目学习。如下;
四、星球:项目学习
小傅哥的知识星球不只是回答问题的星球,还是带着读者伙伴干项目的星球。干一些有技术深度的、能符合大厂工作诉求的、能为未来几年职业生涯续期的实战项目。
在源码层面教会你;手写Spring、手写MyBatis。但没有手写 SpringMVC 因为大厂都是用 RPC 加网关,所以星球里还有手写 API网关,每节课程都配有视频,让大家可以更容易的上手学习,也更方面理解每节课程的设计思想和落地方案。
《API网关:中间件设计和实践》视频截图

很多来自中小公司、外包公司或者尚未毕业的本科生、研究生,手里都没有什么能拿的出手的项目,到大厂去刚一下。
而加入星球就可以学习到小傅哥为你编写的在大厂水平以上的实战项目,包括你会学习到:分布式架构、微服务设计、领域驱动设计、设计模式时间、规则引擎决策树、秒杀分段锁、API网关通信等等,只有加入大厂才能学习到的核心技能。加入星球,这些项目你都可以学到!