# 《分布式IM系统》OpenAI接入服务-第02节-OpenAI接入服务总体框架设计

作者:冰河
星球:http://m6z.cn/6aeFbs (opens new window)
博客:https://binghe.gitcode.host (opens new window)
文章汇总:https://binghe.gitcode.host/md/all/all.html (opens new window)
源码获取地址:https://t.zsxq.com/0dhvFs5oR (opens new window)

沉淀,成长,突破,帮助他人,成就自我。

  • 本节难度:★★☆☆☆
  • 本节重点:对OpenAI接入服务总体框架进行设计和实现,掌握对接OpenAI大模型的流程与方案,理解对接OpenAI大模型的抽象接口设计,结合自身实际项目进行思考,将其灵活应用到自身实际项目中。

大家好,我是冰河~~

对于OpenAI接入服务来说,在整体架构设计上,我们不能仅仅只对接一种大模型。目前市面上除了OpenAI外,还有Claude、PalM、文心一言、通义千问、智谱ChatGLM、讯飞星火以及腾讯混元等。那如何对接多个大模型而又可以做到平滑的切换呢?又该如何做到让用户自己根据自己的喜好去切换使用的大模型呢?

# 一、前言

最近两年,大模型确实火,不过OpenAI刚出来的那段时间,冰河并没有跟风一股脑涌进来,而是先沉淀自己对OpenAI大模型的理解,从使用OpenAI大模型,到基于OpenAI大模型进行开发,再到训练OpenAI大模型,甚至为开源的OpenAI大模型和对应的开源组件提交Issues和代码,沉淀了一年多之后,我打算将OpenAI大模型对接到分布式IM即时通讯系统中,给大家先做个简单的对接,在分布式IM即时通讯系统中实现与OpenAI大模型的交互,后续一步步带大家深入学习大模型。

# 二、本节诉求

对OpenAI接入服务总体框架进行设计和实现,掌握对接OpenAI大模型的流程与方案,理解对接OpenAI大模型的抽象接口设计,结合自身实际项目进行思考,将其灵活应用到自身实际项目中。

# 三、总体框架设计

从设计层面,我们将OpenAI接入服务定位成只需调用一个简单的接口,便可以简单的与多个大模型进行交互。所以,对于OpenAI接入服务来说,我们需要将其设计成性能良好、高度可扩展的架构。并且OpenAI接入服务主要是对外提供接入多个大模型的统一抽象接口,调用OpenAI接入服务的一方不需要关心OpenAI接入服务内部的具体实现,只需要调用相关的接口即可轻松实现与大模型的交互。

另外,OpenAI接入服务内部可以对接多个大模型,对接每个大模型时,具体的实现逻辑可能不同,这就决定了对接不同的大模型时,具体的实现逻辑要做到具备独立性、隔离性,不能相互干扰。对接每个大模型内部的具体实现逻辑要高内聚,对接不同大模型之间的逻辑要低耦合,这就是我们常说的高内聚、低耦合。


可以看到,OpenAI接入服务会对外暴露HTTP或者RPC接口,业务系统、其他SDK或者客户端程序通过调用HTTP接口或者RPC接口即可轻松对接OpenAI接入服务,不必关心OpenAI接入服务内部的具体实现逻辑。而OpenAI接入服务内部实现了对接多种大模型的具体逻辑,每种实现逻辑之前相互独立,互不影响,真正做到了软件设计原则中的高内聚、低耦合的设计原则。

# 查看完整文章

加入冰河技术 (opens new window)知识星球,解锁完整技术文章与完整代码