本文正在参加 人工智能创作者扶持方案

1.前言

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

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

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

这种单体体系规划简略,很快就能开发完结并应用。缺点便是功用瓶颈约束在单台服务器上,无法支撑高并发场景,举例说明,现在有10万人要用这个体系,体系会直接崩溃。

2.分布式ChatGPT对接体系

基于此,我们需求规划一个分布式体系,全体架构看下图

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

2.1 交互层

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

2.2 客户端层

  • 担任接纳交互层传入的文本信息,转发给服务端;
  • 一起接纳服务端的呼应信息,回传给交互东西;
  • 缓存对话上下文,支撑接连对话

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

这样做的优点是流量进口不会单一,不需求再做一层负载均衡流量分发。链路图可参阅下面:

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

2.3注册中心

注册中心的效果:

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

简略地说,有了注册中心后,可通过给服务端水平扩容提高体系的并发才能,能支撑更多人运用体系。

2.4 服务端

服务端效果:

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

2.5 数据存储层

主要效果:

  • 存储对话上下文数据

  • 支撑数据设置过期时间,到期自动删去

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

3.技能选型

体系全体架构规划完后,详细用哪种语言去实现就依据自己擅长的了,这里说说我用的

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

4.详细实现

现在方案按上面的架构规划实现一版体系,有运用需求的能够联系我,

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