【小白晋级大师】如何设计一个支持10万人用的ChatGPT对接系统

不停地书写,方能不失在人海茫茫。

1.前言

之前给大家写了ChatGPT对接企业微信的教程,具体可看知乎链接:https://zhuanlan.zhihu.com/p/611555021

文章结尾说了教程只能适用于小规模使用,网上能找到的其他ChatGPT对接钉钉、飞书、自定义网页等等教程,原理都是一样的,写个中转程序,在ChatGPT和你用的交互工具之间中转一遍。是个简单的单体系统,逻辑看下图

单体架构图.png

这种单体系统设计简单,很快就能开发完成并应用。缺点就是性能瓶颈限制在单台服务器上,无法支持高并发场景,举例说明,现在有10万人要用这个系统,系统会直接崩溃。

2.分布式ChatGPT对接系统

基于此,我们需要设计一个分布式系统,整体架构看下图

架构图.png

2.1 交互层

交互层就不多说了,就是用户直接使用ChatGPT的工具,可以是企业微信、钉钉、网页等等。这些工具都有对应的官方文档,简单说就是输入和输出接口

2.2 客户端层

  • 负责接收交互层传入的文本信息,转发给服务端;
  • 同时接收服务端的响应信息,回传给交互工具;
  • 缓存对话上下文,支持连续对话

这里的构想是客户端有多个请求入口,比如每个公司都有自己的企业微信,给每个公司分配指定IP的客户端。

这样做的好处是流量入口不会单一,不需要再做一层负载均衡流量分发。链路图可参考下面:

客户端层.png

2.3注册中心

注册中心的作用:

  • 服务注册:服务端启动后,将自己的信息注册到注册中心,包括IP、端口、服务接口等。
  • 服务发现:客户端通过注册中心获取路由表,查询服务端的IP和端口,从而调用服务
  • 负载均衡:平衡流量,将客户端请求服务端的流量按特定分发策略,分配到不同的服务器上
  • 服务健康检查:维护注册中心和服务端的心跳检查,在某个实例故障时能从注册中心上移除,避免服务调用失败

简单地说,有了注册中心后,可通过给服务端水平扩容提升系统的并发能力,能支持更多人使用系统。

2.4 服务端

服务端作用:

  • 接收客户端传入的信息,包括:对话上下文、GPT key
  • 和ChatGPT API交互,接收API回传的信息文本,并回传给客户端
  • 服务降级,支持手动降级,在ChatGPT不可用时,能降级到ChatGLM、文心一言等等对话大模型,保证对话功能仍然可用。

2.5 数据存储层

主要作用:

  • 存储对话上下文数据

  • 支持数据设置过期时间,到期自动删除

  • 要求读取数据和写入数据响应时间短

3.技术选型

系统整体架构设计完后,具体用哪种语言去实现就根据自己擅长的了,这里说说我用的

  • RPC框架:Dubbo
  • 编程语言和框架:Java8、SpringBoot
  • 存储中间件:Redis
  • 注册中心:Nacos
  • 链路追踪和服务监控:Skywalking(可选)
  • 代码托管和自动化部署:阿里云-云效

4.具体实现

目前计划按上面的架构设计实现一版系统,有使用需求的可以联系我,公众号卷福同学

后续还会更新架构中用到的技术点的文章,欢迎大家持续关注

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容