infra-ai模块宏观设计解析:业务与模型之间的中间层核心架构
在AI驱动的业务系统中业务层与模型供应商如OpenAI、阿里云百炼、豆包等之间往往存在接口不统一、模型切换繁琐、故障无容错、配置耦合度高等问题。infra-ai模块作为两者之间的核心中间层核心目标就是解决这些痛点通过规范化的设计实现业务与模型的解耦提升系统的可扩展性、容错性和可维护性。本文将从宏观视角拆解infra-ai模块的核心定位、包结构划分、核心设计理念帮助大家建立对该模块的全局认知为后续深入拆解路由核心奠定基础。一、infra-ai模块核心定位四大核心问题的解决方案infra-ai模块的核心价值在于作为业务层与模型供应商之间的“桥梁”统一承接业务层的AI调用需求再路由到合适的模型供应商全程解决四大核心问题让业务层无需关注底层模型的细节1. 统一接口不同模型供应商的接口规范差异较大如OpenAI的ChatCompletion接口、阿里云百炼的Chat接口infra-ai模块封装统一的接口标准业务层只需调用模块提供的统一接口无需关注不同供应商的接口差异降低业务开发成本。2. 多模型路由支持配置多个模型供应商如主用OpenAI、备用豆包根据业务需求、模型健康状态、配置规则自动路由到合适的模型实现多模型的灵活切换和负载均衡。3. 故障转移当某个模型供应商出现故障如接口超时、返回异常时模块可自动切换到备用模型避免因单个供应商故障导致业务中断提升系统的高可用性。4. 配置驱动整个路由体系、模型配置均通过YAML配置驱动无需修改代码只需调整配置即可实现模型切换、供应商替换、路由规则调整极大提升系统的可配置性和可维护性。二、包结构划分9个包职责清晰分层解耦infra-ai模块通过9个包的合理划分实现职责隔离、分层解耦每个包的职责单一明确便于开发、维护和扩展整体分为三大模块底层基础设施、路由核心、能力子系统具体划分如下1. 底层基础设施5个包模块运行的基础支撑底层基础设施包负责模块的基础配置、通用工具、网络通信等为上层功能提供支撑具体包括config封装模块所有配置类对应YAML配置文件实现配置的统一加载和管理enums定义模块通用的枚举类如模型类型、供应商类型、故障状态等规范常量定义http封装HTTP请求工具负责与各个模型供应商的接口通信处理请求/响应的序列化与反序列化token负责模型供应商的token管理、权限校验保障接口调用的安全性util提供模块通用的工具方法如字符串处理、加密解密、异常处理等复用通用逻辑。2. 路由核心1个包模块的核心调度中枢model路由核心包封装多模型路由的核心逻辑包含模型选择、健康检查、路由执行等核心组件是整个模块的“大脑”。3. 能力子系统3个包承接业务层的具体AI能力需求能力子系统对应AI的核心能力封装业务层可直接调用的接口每个包对应一种AI能力具体包括chat封装对话类AI能力对应业务层的对话、生成类需求embedding封装向量嵌入能力对应文本向量生成、语义相似度计算等需求rerank封装重排序能力对应检索结果优化、相关性排序等需求。这种包结构划分实现了“基础设施支撑、核心路由调度、能力分层提供”的架构确保每个模块职责清晰降低耦合度便于后续扩展新的AI能力如新增image包支持图像生成。三、核心设计理念配置驱动 三层接口 路由组件 设计模式infra-ai模块的宏观设计围绕“解耦、可扩展、高可用”三大目标通过四大核心设计理念构建稳定、灵活的中间层架构。1. 配置驱动设计一份YAML配置驱动整个路由体系模块采用“配置驱动”的设计思路将所有与模型、供应商相关的配置如供应商地址、token、模型列表、路由规则等集中在YAML配置文件中核心设计亮点供应商配置与模型候选配置分离清晰区分“供应商基础信息”和“可调用模型列表”切换模型、替换供应商无需修改代码只需调整YAML配置重启服务即可生效支持动态配置可选可通过配置中心实时更新配置无需重启服务提升系统灵活性。2. 三层接口设计职责清晰分层解耦模块采用三层接口设计自上而下实现业务层与模型供应商的完全解耦每层职责单一便于维护和扩展具体分层如下业务层接口对外提供的统一接口LLMService / EmbeddingService / RerankService业务层直接调用该层接口无需关注底层实现路由实现中间层路由逻辑RoutingXxxService承接业务层接口请求根据配置和路由规则选择合适的模型供应商供应商接口底层接口封装ChatClient / EmbeddingClient / RerankClient对应不同模型供应商的接口实现负责与供应商接口直接通信。三层接口的设计让业务层与模型供应商完全隔离当需要新增供应商、修改接口逻辑时只需修改底层供应商接口或路由实现不影响业务层代码。3. 路由核心四大组件分工明确协同工作路由核心model包包含四个核心组件各有分工、协同工作共同完成多模型的路由与选择构成模块的“调度中枢”ModelSelector模型选择器核心组件负责根据路由规则、模型优先级、健康状态选择合适的模型ModelHealthStore模型健康存储负责维护所有模型的健康状态判断模型是否可用、是否熔断为ModelSelector提供选择依据ModelRoutingExecutor路由执行器负责执行路由逻辑调用选中模型的供应商接口处理请求转发和响应封装ModelTarget模型目标封装封装模型调用的上下文信息如供应商地址、token、模型参数等为路由执行提供统一的参数封装。4. 多种设计模式协同提升可扩展性与容错性模块融合多种设计模式解决不同场景下的设计痛点提升系统的可扩展性、可维护性和容错性策略模式实现供应商可插拔不同供应商的接口实现对应不同的策略新增供应商只需新增策略类无需修改核心逻辑模板方法模式复用OpenAI兼容协议对于符合OpenAI接口规范的供应商通过模板方法复用通用逻辑减少重复开发注册表模式实现供应商、模型的自动发现新增供应商或模型后通过注册表自动注册无需手动配置熔断器模式提供容错保护当某个模型供应商频繁出现故障时自动熔断该供应商避免大量失败请求拖垮系统同时触发故障转移。四、总结宏观设计的核心价值infra-ai模块的宏观设计核心是通过“中间层”的定位实现业务层与模型供应商的解耦解决统一接口、多模型路由、故障转移、配置驱动四大核心问题。9个包的职责划分实现了分层解耦配置驱动设计提升了系统的可维护性三层接口设计清晰了各层职责路由核心组件与多种设计模式的协同保障了系统的可扩展性和高可用性。本文作为宏观设计解析旨在帮助大家建立infra-ai模块的全局视角。接下来我们将深入路由核心拆解多模型路由与智能选择的底层细节——包括ModelSelector的优先级排序算法、首选模型提升机制、深度思考模型的过滤逻辑、禁用和熔断候选的过滤策略以及ModelTarget的完整构建过程敬请关注。