Spring AI 给 OpenAI、Anthropic 这些主流模型做了官方 Starter,加个依赖就能调用。
但往往模型的更新速度会超过SpringAI的迭代速度。
求职派同时接入了智谱、硅基流动、DeepSeek、阿里通义等多家供应商。有些供应商SpringAI是不支持的。

所以求职派把模型接入抽象成了一个接口。
只要实现了这个接口,新模型就能被系统自动发现和调用。
这篇就从这个接口出发,拆解多个模型接入的完整架构,从接口设计到自动发现,从模型解析到 OpenAI 兼容协议的复用,再到运行时不重启服务就能切换模型。
01、为什么需要自定义接入
Spring AI 官方维护了一批 Starter,比如 spring-ai-starter-model-openai、spring-ai-starter-model-zhipuai,加到 Maven 依赖里配上 API Key 就能用。
求职派目前接入的供应商有五六家,而且不同的用户可能喜好不同的模型,有人喜欢用智谱的免费模型,有人愿意付费用 DeepSeek。

如果每接入一个新厂商就在核心模块里加一堆 if-else,改调用逻辑,几轮下来代码就没法维护了。
更麻烦的是,模型的增减是运营行为,不是开发行为。今天某个免费模型下线了,明天某家厂商发布了性价比更高的新模型,这些调整不应该每次都走开发、测试、部署的流程。
求职派需要的是插件式的方案。
02、一个接口搞定所有供应商
求职派模型供应商的核心接口定义在 core 模块里。
public interface ModelProvider {
String apiStyle();
Model model(ModelConfig.ModelInfo info);
}
就两个方法。
apiStyle() 返回一个标识字符串,比如 "openai"、"zhipu"、"anthropic"、"ali",用来区分不同的 API 协议风格。
model() 是工厂方法,根据配置信息构建 Spring AI 的 `Mode...
回复