其他国际厂商一览
本教程共 45 篇 · 第 17 篇 · 更新于 2026-08-16 · 约 10 分钟阅读
本节目标:快速了解 Spring AI 支持的其他国际厂商。学会区分”独立 starter”和”OpenAI 兼容”两种接入方式,每个厂商都能配出最小可运行示例。
17.1 两类接入方式
前几节接入的厂商,接入方式其实只有两类。
独立 starter:厂商有自己的模块和配置前缀。OpenAI、Google、Mistral、Bedrock 属于这类。
OpenAI 兼容:厂商提供 OpenAI 格式的接口,Spring AI 直接用 OpenAI 客户端,改 base-url 和 api-key 就能连。Groq、Perplexity、NVIDIA、Docker Model Runner 属于这类。MiniMax 在 2.0 里走的是 Anthropic 兼容端点,思路一样。
理解了这一点,接任何新厂商都是同一套动作:加依赖、配 base-url、配 api-key、选模型。
17.2 厂商对比总表
| 厂商 | 接入方式 | 依赖 / 端点 | 配置前缀 | 特点 |
|---|---|---|---|---|
| Mistral AI | 独立 starter | spring-ai-starter-model-mistral-ai | spring.ai.mistralai | 欧洲开源模型,有代码嵌入与 OCR |
| Groq | OpenAI 兼容 | spring-ai-starter-model-openai,https://api.groq.com/openai/v1 | spring.ai.openai | LPU 芯片,推理极快 |
| Perplexity | OpenAI 兼容 | spring-ai-starter-model-openai,https://api.perplexity.ai | spring.ai.openai | 搜索增强,答案带实时信息 |
| NVIDIA | OpenAI 兼容 | spring-ai-starter-model-openai,https://integrate.api.nvidia.com | spring.ai.openai | 汇聚各家开源模型,必须设 max-tokens |
| MiniMax | Anthropic 兼容 | spring-ai-starter-model-anthropic,https://api.minimax.io/anthropic | spring.ai.anthropic | 国产出海厂商,M3 模型 |
| Amazon Bedrock | 独立 starter | spring-ai-starter-model-bedrock-converse | spring.ai.bedrock | 统一接口,全家桶模型 |
| OCI GenAI | 社区维护 | spring-ai-oracle(社区仓库) | - | Oracle 云,已移交社区 |
| Docker Model Runner | OpenAI 兼容 | spring-ai-starter-model-openai,http://localhost:12434/engines/v1 | spring.ai.openai | 本地跑模型,免费无 Key |
17.3 Mistral AI
Mistral 是法国 AI 公司,主打开源模型。它的 mistral-small-latest 和 mistral-large-latest 覆盖日常到复杂任务,还提供代码专用的 codestral-embed 嵌入模型。
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-model-mistral-ai</artifactId>
</dependency>
spring.ai.mistralai.api-key=${MISTRALAI_API_KEY}
spring.ai.mistralai.chat.model=mistral-small-latest
spring.ai.mistralai.chat.temperature=0.7
Mistral 也提供 OpenAI 兼容端点。想少引一个依赖时,可以把 base-url 设为 https://api.mistral.ai/v1,走 OpenAI 客户端。另外它的推理模型支持 reasoning-effort 参数(high / none),回答会带上思考过程。
Mistral 还有两个实用能力。一是结构化输出,用 ResponseFormat.jsonSchema(你的类.class) 强制模型按 JSON Schema 返回,配合 entity() 直接得到对象:
record ActorsFilms(String actor, List<String> movies) {}
ActorsFilms result = ChatClient.create(chatModel).prompt()
.advisors(AdvisorParams.ENABLE_NATIVE_STRUCTURED_OUTPUT)
.user("列出汤姆·汉克斯主演的 5 部电影。")
.call()
.entity(ActorsFilms.class);
二是 OCR。Mistral 的 MistralOcrApi 能从 PDF 和图片里提取文字,直接传文档 URL 就行。
17.4 Groq
Groq 的核心卖点是快。它用自研 LPU 芯片跑开源模型,号称每秒输出数百 token。适合对延迟敏感的场景。
spring.ai.openai.api-key=${GROQ_API_KEY}
spring.ai.openai.base-url=https://api.groq.com/openai/v1
spring.ai.openai.chat.model=llama3-70b-8192
依赖就是 OpenAI starter。两点限制要记住:Groq 的接口和 OpenAI 并非完全兼容,部分参数行为不同;目前不支持图片等多模态输入。
Groq 支持工具调用,模型支持时用 FunctionToolCallback 注册即可,流程和别的厂商一致。
17.5 Perplexity
Perplexity 把搜索和生成合在一起。它的模型默认联网检索,回答会引用实时信息。适合做问答、资讯类应用。
spring.ai.openai.api-key=${PERPLEXITY_API_KEY}
spring.ai.openai.base-url=https://api.perplexity.ai
spring.ai.openai.chat.model=llama-3.1-sonar-small-128k-online
spring.ai.model.embedding=none
限制比较多:不支持函数调用,不支持多模态,也不支持 embedding。所以配置里显式关掉 embedding 自动装配,否则启动可能报错。
17.6 NVIDIA
NVIDIA 的 LLM API 是个模型超市,托管了 Llama、Mistral、Qwen 等大量开源模型。你选一个模型,拿到专属的 api-key。
spring.ai.openai.api-key=${NVIDIA_API_KEY}
spring.ai.openai.base-url=https://integrate.api.nvidia.com
spring.ai.openai.chat.model=meta/llama-3.1-70b-instruct
spring.ai.openai.chat.max-tokens=2048
spring.ai.model.embedding=none
NoteNVIDIA 接口必须显式设置
max-tokens,否则服务器直接报错。这是它和别家最大的不同。
17.7 MiniMax
MiniMax 是国产厂商,出海做得早。Spring AI 2.0 起官方建议走它的 Anthropic 兼容端点,用 MiniMax-M3 模型。依赖和配置都换成 Anthropic 的:
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-model-anthropic</artifactId>
</dependency>
spring.ai.anthropic.api-key=${MINIMAX_API_KEY}
spring.ai.anthropic.base-url=https://api.minimax.io/anthropic
spring.ai.anthropic.chat.model=MiniMax-M3
早期版本有独立的 spring-ai-starter-model-minimax 模块(模型名 abab6.5g-chat 之类),2.0 正式版已从 BOM 移除,新项目别再用。
17.8 Amazon Bedrock
Bedrock 是 AWS 的模型托管服务,一个接口访问 Titan、Nova、Claude、Llama、Mistral 等各家模型。Spring AI 用 Bedrock Converse API 对接,认证走 AWS 凭证。
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-model-bedrock-converse</artifactId>
</dependency>
spring.ai.bedrock.aws.region=us-east-1
spring.ai.bedrock.aws.access-key=${AWS_ACCESS_KEY_ID}
spring.ai.bedrock.aws.secret-key=${AWS_SECRET_ACCESS_KEY}
spring.ai.bedrock.converse.chat.model=us.anthropic.claude-haiku-4-5-20251001-v1:0
spring.ai.bedrock.converse.chat.temperature=0.8
也可以用 AWS profile 认证,配 spring.ai.bedrock.aws.profile.name 即可。Bedrock 支持 prompt 缓存,系统提示词等固定内容能省 65% 左右的成本。它还是少数支持视频输入的厂商,Nova 模型可以分析视频片段。
启用缓存很简单,在请求里指定缓存策略:
String response = ChatClient.create(chatModel)
.prompt()
.system("你是一位专业的文档分析师……")
.user("分析这份大文档:" + document)
.options(BedrockChatOptions.builder()
.model("us.anthropic.claude-haiku-4-5-20251001-v1:0")
.cacheOptions(BedrockCacheOptions.builder()
.strategy(BedrockCacheStrategy.SYSTEM_ONLY)
.build())
.build())
.call()
.content();
策略有四种:SYSTEM_ONLY 只缓存系统提示词,TOOLS_ONLY 只缓存工具定义,SYSTEM_AND_TOOLS 两个都缓存,CONVERSATION_HISTORY 缓存整个对话历史。Nova 模型不支持工具缓存,用 SYSTEM_ONLY 最稳。缓存内容要超过 1024 token 才有效,缓存有效期 5 分钟,每次命中自动续期(具体有效期与续期规则以 AWS 官方文档为准)。
17.9 OCI Generative AI
Oracle 云上的生成式 AI 服务。Spring AI 官方主线已经不再维护它,集成移交给了社区。最新版本要去 oracle/spring-cloud-oracle 仓库找 spring-ai-oracle。生产项目用 Oracle 云的话,直接看社区仓库的文档。
17.10 Docker Model Runner
这是最特殊的”厂商”——模型跑在你自己的电脑上。Docker Desktop 内置了 Model Runner,下载模型后本地提供 OpenAI 兼容接口。没有 API Key,不花一分钱。
先启用 Model Runner:
docker desktop enable model-runner --tcp 12434
再配置:
spring.ai.openai.api-key=test
spring.ai.openai.base-url=http://localhost:12434/engines/v1
spring.ai.openai.chat.model=ai/gemma3:4B-F16
spring.ai.model.embedding=none
api-key 填任意字符串即可,本地服务不校验。模型从 Docker Hub 的 ai 组织拉取。适合开发环境、离线环境,或者不想把数据发给第三方的场景。
测试环境还有更优雅的玩法:用 Testcontainers 起一个容器化的 Model Runner,测试结束自动销毁,不污染本机环境。集成测试里指定模型后直接注入 OpenAiChatModel 使用。
17.11 怎么选
选型看三个问题。
数据能不能出境?不能出境,选 Docker Model Runner 或国产厂商。
延迟重不重要?要极致速度,Groq;要本地零延迟,Docker Model Runner。
要不要换厂商自由?Bedrock 一个接口覆盖多家模型,切换成本最低。反过来,如果只用一个厂商,OpenAI 兼容的接法最省事,依赖统一。
Tip同一套代码接多家厂商的秘诀:业务层只依赖
ChatModel或ChatClient,厂商差异全部收敛在配置里。切换厂商就是改 properties 的事。
还有一个常被忽略的点:OpenAI 兼容接法里,spring.ai.openai.chat.base-url 可以单独覆盖聊天模型的地址。同一个应用里,聊天走 A 厂商、嵌入走 B 厂商,靠的就是这种细分覆盖。同理 spring.ai.openai.chat.api-key 也能单独覆盖密钥,不同模型用不同账号的场景很常见。
17.12 接入步骤模板
不管接哪家,都按四步走:
- 查官方文档确认接入方式,是独立 starter 还是兼容端点。
- 加依赖,引入 spring-ai-bom 管版本。
- 写配置:api-key、base-url、model 三件套。
- 写一个最小 Controller 验证连通。
验证通过后再写业务。这一步能省掉大半排错时间。
17.13 小结
本节一口气看了八个厂商。它们的共同规律是:独立 starter 有专属前缀,兼容端点只改 base-url。Groq 快、Perplexity 带搜索、NVIDIA 要设 max-tokens、Bedrock 最全、Docker Model Runner 免费。下一节看国产三巨头,接入思路和这里高度相似,区别在于文档和依赖的可得性。