零声教育 Golang云原生 ChatGPT项目实战
零声教育 Nick
2023-06-10
chatgpt/golang/docker/gitlab/企微/ QQ/公众号 手把手上线项目课程 后台服务 服务运维 OneBot的实现go-cqhttp接管QQ 开源组件快速接入chatgpt实现QQ消息回复 公众号接口测试号申请 sync.Pool 实现grpc客户端连接池接入后端服务 企业微信应用创建及应用配置 需求、设计与环境 web、QQ、公众号、企微 设计思路 OneBot协议是什么 OneBot Http与HTTP Webhook通信 OneBot正向WebSocket与反向WebSocket通信 OneBot事件、动作请求与动作响应 OneBot基本数据类型 gitlab与gitlab-runner 实现持续集成 公众号关注事件推送以及XML消息解析与回复 普通消息接收以及XML解析与文本消息回复 通过客服消息异步发送chatgpt回复 普通消息接收以及XML解析与文本消息回复 sync.Pool实现grpc客户端连接池接入后端服务 Nginx 反向代理4个ChatGPT客户端 Docker Swarm集群运维项目 实现与chatGPT的对话需求 支持开启和关闭chatGPT角色扮演模式 实现聊天上下文发送并支持群组上下文 支持Web端匿名访问上下文发送 实现敏感问题的识别与过滤 实现问题的关键词提取 实现ChatGPT请求与响应token计数 聊天记录持久化到数据库 支持Web端请求流式响应 支持分布式部署方便横向扩展 基于开源项目开发和部署ChatGPT项目 微服务开发将项目拆分为若干个服务 tokenizer服务实现tokens计数功能 chatgpt-proxy服务实现境外chatGPT API访问 chatgpt-data服务实现聊天记录持久化 sensitive-words服务实现敏感问题识别与过滤 keywords服务实现关键词提取 chatgpt-service服务实现对chatgpt访问的封装 crontab服务实现公众号与企微接口调用凭据的刷新 chatgpt-web实现web协议解析 cqhttp开源项目实现QQ服务器代理 chatgpt-qq 实现QQ协议解析 chatgpt-wechat-official 实现公众号协议解析 chatgpt-wecom 实现企业微信协议解析 MySQL为数据库用于数据持久化 Redis为KV缓存用于项目数据缓存场景 docker swarm 集群为容器化部署平台 gitlab 用于项目代码管理以及持续集成 环境准备 腾讯云购置境外云主机 golang编译环境安装 docker安装以及docker swarm集群初始化 gitlab社区版安装配置 docker私有注册中心搭建 mysql 与redis 准备 Linux编译运行开源的chatgpt-web Windows编译运行开源的chatgpt-web tokenizer计数服务 chatgpt-proxy境外代理服务 chatgpt-data数据服务 sensitive-words敏感词识别服务 keywords关键词提取服务 crontab定时任务服务 docker是什么 docker解决了什么问题 docker的技术边界 虚拟机与容器的区别 docker镜像的分类 docker镜像构建流程 docker build 构建缓存逻辑 docker镜像分层原理 dockerfile的基本语法 dockerfile健康检查的配置 tokenizer镜像构建 docker run指令的基本使用逻辑 容器的隔离与Linux namespace 容器的资源限制与cgroup控制组 gin框架Basic Auth鉴权 gin框架路由与controller ReverseProxy代理chatgptAPI gin框架中间件编程与Bearer Token鉴权 配置文件解决方案viper logrus与lumberjack日志滚动记录 chatGPT API参数释义及使用 testing测试框架功能测试 testing测试框架性能测试与并发测试 pprof性能分析指标以及常用指令 服务的限流以及限流原理 Dockerfile多阶段定义以及构建 Dockerfile ADD 与COPY的区别及用法 Dockerfile CMD 与 ENTRYPOINT的区别及用法 docker 私有注册中心的使用 docker service 服务更新与回滚策略 docker service 配置文件的更新与删除 docker service 服务健康检查的配置 数据库的选择与数据库设计 gRPC环境安装与使用流程 Protobuff协议以及服务定义 gRPC Server端实现以及依赖注入 gRPC Server端单元测试 gRPC Keepalive保活策略以及客户端强制策略 gRPC TLS/MTLS/OAUTH服务通信安全策略 gRPC metadata上下文数据传输 gRPC 单TCP连接多路复用实现健康检查机制 二叉搜索树与词库重排 敏感词识别服务的实现 敏感词识别服务打包与部署 关键词提取服务的实现 关键词提取服务打包部署 crontab 工作流程 微信公众号SDK接入定时获取调用凭据 企业微信SDK接入定时获取企微调用凭据 gRPC服务对外提供调用凭据的访问 定时任务服务的打包和部署 ChatGPT客户端 Web QQ 微信公众号 企业微信 web数据协议解析 sync.Pool 实现gRPC客户端连接池接入gRPC Server chatgpt-service服务 gRPC微服务项目脚手架搭建 服务的设计逻辑与思路 chatgpt API响应数据协议解析 服务端基本请求流程实现 redis连接池与上下文管理 gRPC 客户端连接池以及gRPC 服务的接入 Logrus日志框架的接入 viper 配置文件解决方案的接入 docker build 参数化构建 gin框架静态资源文件部署 实现WebSocket Server 用户cqhttp反向WebSocket 携带上下文发送请求 零声服务 适宜工程师人群 参考书籍 学习方法大6点 学习方法小5点 学/转golang缺乏分布式项目经验的开发工程师 计算机专业本科学历应届毕业生 有一定基础的情况,可根据实际情况侧重学习某个板块 多想,遇到任何问题,深入思考找到真正的问题 多练,通过练习将知识点融汇贯通 多问,通过自己思考和尝试仍不理解的问题,多找老师沟通 多讨论,找身边的同时朋友讨论技术问题 每节课程先预习课件,提出一些疑问,再看视频学习,看完一遍视频之 后再练习 课后总结:学到什么,可以在哪些场景应用,没学懂的内容有哪些,反 复学习练习 将学到的内容以文档、博客或其他形式向外输出,通过这种方式整理知 识点之间逻辑关系,加强学习效果 如果可以,建议参加零声学院的费曼学习计划,巩固所学知识 通过自己努力搞不懂的问题,积极与老师沟通 《Go 语言底层原理剖析》 《Docker 实践》 《Docker 容器与容器云 第2版》 目标岗位 golang高级开发工程师 运维开发工程师 云计算开发工程师 golang服务端开发工程师 中后台开发工程师 缺乏微服务项目经验与云原生项目经验的golang工程师 一般情况下课根据大纲从前往后学习,层层递进 课程服务 老师在线答疑 面试简历梳理 面试总结复盘 课程数据 课程时长:70小时 总计代码行数:2w+ 微服务数量:11个 服务器1台,4核8GB 目前线上请求数量:10w+/天 课程收获 微服务项目实战经验 gin、gRPC、viper、logrus、crontab工程组件实战应用 公众号、企微项目开发经验 nginx、docker、gitlab项目运维实战 课程大纲仅供参考,具体内容以上课为主 中间件redis与mysql实战应用 个人微信端接入 微信扫码登录、热登录以及免扫码登录 MessageHandler 个人消息与群消息处理 gRPC 接入ChatGPT服务 项目运营问题的解决 一个更显专业的Web前端页面 ChatGPT每分钟限流问题如何解决 Docker Swarm 集群管理与节点管理 Docker Swarm集群如何使用私有注册中心 Compose file定义与Stack部署 根据访问地址Path部分代理后台服务 代理Websocket服务 代理静态网页 代理流式服务端 gitlab 持续集成与持续部署基本逻辑 gitlab 与gitlab runner的安装与升级 gitlab-ci配置文件基本语法以及流程控制 gitlab-ci 内置变量以及自定义变量