# 5.1假期代码旅游,卷个新项目!

作者:小傅哥
博客:https://bugstack.cn (opens new window)

沉淀、分享、成长,让自己和他人都能有所收获!😄

9天假期写了8天代码和10篇文章,这个5.1过的很爽🤨!

如假期前小傅哥的计划一样,这个假期开启了新的技术项目《ChatGPT 微服务应用体系构建》教程;从搭建环境开发chatgpt-sdk-java对接公众号封装api,直至假期最后一天,完成了微信公众号的对接,可以与 ChatGPT 对话聊天啦!

可以预见的是,会有越来越多的生成式OpenAI服务诞生,并且也有越来越多的场景开始接入。已经有很多小伙伴所在的公司开始要求会做 ChatGPT 开发,并且能接入到自家公司的客服回复、产品介绍、文案编写等场景中。

所以学习这样开发技术,等同于学习了一项工作经验技能。尤其是在和小傅哥这样高质量的架构师学习😏,学到手不只是业务代码,还有高质量的架构设计和编码经验。—— 否则你可能根本没有地方看到这样优秀的应用级项目代码!

# 一、我的假期

🤔 这有点像一个假期旅游计划,但我的旅游是在代码中!

这趟车🚌,本身的核心是关于微服务应用体系的构建,通过讲解配置DockerNginxSSL等环境以及开发出鉴权认证微信公众号企业微信支付宝交易等模块的方式,完善体系的物料服务。而 ChatGPT 只是其中的一种产品形态而已,这种产品形态通过 API 的方式与具体的物料服务模块解耦。这样做的方式是因为基础的物料【物料指SDK和服务】并不会频繁变化,而离业务最近的 API 会随业务变动发生较多的改动。所以这样的应用架构方式,在互联网大厂中也是非常常见和常用的。

这些东西的价值在于架构思维,而我也希望授人以渔,教会大家一些根本的东西,而不是永远的在CV+CRUD。有了这样的学习,学习的就不只是这样一个项目,而是可以把这个项目中所涉及的组件开发,都能进行任意物料模块与需要对接的服务进行关联打通使用。方便写到简历用到项目实战锻炼积累经验

# 二、对接方案

那么目前对接到微信公众号的方案是什么样呢?【如图】

  • 这是整个项目开发到目前第10节,对接到公众号的一个整体流程。以用户请求鉴权为入口,分配访问Token授权。再接收公众号的验签和应答后调用 ChatGPT-SDK-Java 完成消息的应答处理。这其中还包括项目的打包构建云服务的使用等一系列操作,非常具有实战性。
  • 目前的开发其实还只是整个项目的一小部分,后续还要继续完善包括;Web页面、流式应答、AI作图、企业微信、支付交易等流程。整体架构如下面介绍。—— 死鬼,跟着小傅哥,你会得到很多很多!

# 三、整体架构

接下来我们再以工程拓扑的视角看下这套需要开发的系统;—— 你做过的项目可能就是做项目,但小傅哥带着你做项目,一定先让你看到全貌的架构,也学会架构设计图的绘制。

如拓扑结构,系统从上到下以不同的产品形态,统一调用封装的服务API进行功能的流转。API系统中所处理的核心动作,会以各个物料模块进行实现。所以这里会拆分出标准的 ChatGPT-API 业务系统,之后再由各个模块系统支撑。到具体的模块中再进行详细的系统设计。

# 四、上车学习

你的加入不只是获得这样1个学习项目,而是6个项目 + 6个技术小册! 😄你就说,爽不爽,吃的饱不饱!课程介绍:https://bugstack.cn/md/zsxq/introduce.html (opens new window)

小傅哥致力于把星球码农会锁开发成最具互联网应用级实战项目开发学习社群,让加入的伙伴都能学习到干刺啦的硬核干货项目,学习后即可提升编程思维也能锻炼编码能力。


此课程会包括,基础设置、模块开发、API服务等几块内容,而基础设施主要为一些基本操作,小傅哥会把一些这样的内容都放到这块,方便很多新人伙伴学习使用。这里会分为3个大的步骤;

  1. 在基础设置的基本必备服务搭建后,会进入接口鉴权的简单开发,这个模块开发后,大家就可以简单的使用了小傅哥提供的 OpenAI 了接口了。—— 当然你如果自己有 OpenAI 接口,也可以直接使用。https://huggingface.co/ (opens new window) 也提供了一些可以免费使用的简单 Open-API
  2. 有了这部分内容的使用,后续会进入 API-SDK 的开发,以及网页的简单开发。通过这样的开发构成一套基本的模块服务。ChatGPT-WEB-UI -> API-SDK -> 鉴权 -> OpenAI 的使用。
  3. ChatGPT-WEB-UI 流程🏃🏻跑通后,就可以逐步扩展其他服务模块。让业务与场景结合,如关注公众号、公众号回复、企业微信机器人、交易支付购买授权Token。这个过程可以让 ChatGPT-WEB-UI 与各个模块结合使用。