infra-ai模块宏观设计解析:打通业务与模型供应商的中间层核心架构
在大模型应用落地过程中,很多团队会遇到业务层与多模型供应商对接混乱、接口不统一、故障处理繁琐、模型切换成本高的问题。infra-ai模块作为业务层和模型供应商之间的中间层,正是为解决这些痛点而生,本文将从宏观视角拆解其核心设计,帮大家建立全局认知,为后续深入技术细节打下基础。
一、infra-ai模块核心定位:解决四大核心痛点
infra-ai的核心价值的是作为“中间枢纽”,隔离业务层与模型供应商的复杂性,统一承接业务需求并分发至合适的模型,重点解决以下四个核心问题,避免业务层直接与各类模型供应商耦合,导致后续维护成本激增:
统一接口:屏蔽不同模型供应商的接口差异,业务层只需调用统一接口,无需关注底层模型的协议差异,降低开发成本与迁移成本;
多模型路由:根据业务需求、模型状态等因素,智能将请求路由至最优模型,实现资源合理分配;
故障转移:当某一模型供应商出现故障时,自动切换至备用模型,保障业务连续性,避免单点故障影响整体服务;
配置驱动:通过配置文件统一管理模型信息,无需修改代码即可完成模型切换、参数调整,提升系统灵活性与可维护性。
二、模块化划分:9个包职责清晰,解耦分层
为保证代码的可维护性和扩展性,infra-ai模块按职责将代码划分为9个包,分为三大模块,各模块职责边界清晰,避免功能混乱,便于后续迭代与扩展:
底层基础设施包:支撑整个模块的基础能力,包括配置管理(config)、枚举定义(enums)、http请求封装(http)、令牌管理(token)、工具类(util),是模块运行的核心支撑;
路由核心包:仅包含model包,是多模型路由的核心,封装了路由相关的核心逻辑与组件,是整个模块的“大脑”;
能力子系统包:对应大模型的核心能力,包括chat(对话能力)、embedding(嵌入能力)、rerank(重排序能力),分别封装对应能力的业务接口与供应商适配逻辑。
三、核心设计亮点:配置驱动+三层接口,兼顾灵活与规范
3.1 配置驱动设计:一份配置搞定全量路由
infra-ai采用配置驱动的设计思路,核心是通过一份YAML配置文件驱动整个路由体系的运行,核心优势在于“解耦”与“高效”:
配置分离:将供应商配置(如供应商地址、密钥、协议类型)与模型候选配置(如模型优先级、能力范围)分离管理,逻辑更清晰,便于维护;
动态切换:切换模型、调整路由策略时,无需修改业务代码,只需修改YAML配置并重启(或热更新),极大降低了模型迭代与切换的成本,避免代码侵入。
3.2 三层接口设计:职责分层,各司其职
为实现业务层与模型供应商的彻底解耦,infra-ai设计了三层接口架构,每层职责清晰,自上而下形成完整的请求链路,同时也符合“承接系统策略、隔离底层差异”的设计原则:
业务层接口:对外提供的统一接口,包括LLMService(大语言模型服务)、EmbeddingService(嵌入服务)、RerankService(重排序服务),业务层直接调用该层接口,无需关注底层实现;
路由实现层:对应RoutingXxxService(如RoutingLLMService、RoutingEmbeddingService),承接业务层请求,执行路由逻辑,选择合适的模型供应商;
供应商接口:对应ChatClient、EmbeddingClient、RerankClient,封装不同模型供应商的接口调用逻辑,将路由层的请求转换为供应商可识别的格式,同时将供应商的响应统一封装后返回给路由层。
四、路由核心组件:四大组件协同,实现智能路由
路由核心(model包)包含四个核心组件,各组件分工明确、协同工作,共同完成多模型的智能路由与调用,是infra-ai模块的核心逻辑所在:
ModelSelector(选谁):核心决策组件,根据配置策略、模型状态、业务需求等,从候选模型中选择最优模型,是路由逻辑的核心,后续将深入拆解其排序与过滤算法;
ModelHealthStore(能不能调):模型健康状态管理组件,实时监控各模型供应商的可用性,过滤掉故障、熔断的模型,为ModelSelector提供决策依据,类似微服务中的健康检查机制,保障路由的可靠性;
ModelRoutingExecutor(怎么调):执行组件,根据ModelSelector选择的模型,调用对应的供应商接口,处理请求的转发与响应的封装,串联整个调用链路;
ModelTarget(封装调用上下文):封装调用过程中的所有上下文信息,包括模型信息、供应商配置、请求参数等,为其他组件提供统一的数据支撑,简化组件间的交互。
五、设计模式加持:提升代码可扩展性与容错性
infra-ai模块灵活运用多种设计模式,解决了可扩展性、复用性、容错性等核心问题,让模块更具健壮性,适配多模型、多场景的迭代需求:
策略模式:实现供应商可插拔,新增、替换模型供应商时,只需新增对应的策略类,无需修改核心路由逻辑,降低扩展成本;
模板方法:复用OpenAI兼容协议的调用逻辑,不同供应商的接口适配只需实现差异化逻辑,减少重复代码,提升开发效率;
注册表模式:实现模型与供应商的自动发现,无需手动注册,简化配置与维护成本;
熔断器模式:提供容错保护,当某一供应商频繁出现故障时,自动熔断该供应商的调用,避免故障扩散,保障整个系统的稳定性,类似微服务中的熔断器机制。
