首页 / Spring AI 入门教程 / 其他国际厂商一览

Spring AI 入门教程

其他国际厂商一览

本教程共 45 篇 · 第 17 篇 · 更新于 2026-08-16 · 约 10 分钟阅读

Spring AIMistralGroqPerplexityNVIDIAMiniMaxBedrockDocker Model Runner

本节目标:快速了解 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独立 starterspring-ai-starter-model-mistral-aispring.ai.mistralai欧洲开源模型,有代码嵌入与 OCR
GroqOpenAI 兼容spring-ai-starter-model-openaihttps://api.groq.com/openai/v1spring.ai.openaiLPU 芯片,推理极快
PerplexityOpenAI 兼容spring-ai-starter-model-openaihttps://api.perplexity.aispring.ai.openai搜索增强,答案带实时信息
NVIDIAOpenAI 兼容spring-ai-starter-model-openaihttps://integrate.api.nvidia.comspring.ai.openai汇聚各家开源模型,必须设 max-tokens
MiniMaxAnthropic 兼容spring-ai-starter-model-anthropichttps://api.minimax.io/anthropicspring.ai.anthropic国产出海厂商,M3 模型
Amazon Bedrock独立 starterspring-ai-starter-model-bedrock-conversespring.ai.bedrock统一接口,全家桶模型
OCI GenAI社区维护spring-ai-oracle(社区仓库)-Oracle 云,已移交社区
Docker Model RunnerOpenAI 兼容spring-ai-starter-model-openaihttp://localhost:12434/engines/v1spring.ai.openai本地跑模型,免费无 Key

17.3 Mistral AI

Mistral 是法国 AI 公司,主打开源模型。它的 mistral-small-latestmistral-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
Note

NVIDIA 接口必须显式设置 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

同一套代码接多家厂商的秘诀:业务层只依赖 ChatModelChatClient,厂商差异全部收敛在配置里。切换厂商就是改 properties 的事。

还有一个常被忽略的点:OpenAI 兼容接法里,spring.ai.openai.chat.base-url 可以单独覆盖聊天模型的地址。同一个应用里,聊天走 A 厂商、嵌入走 B 厂商,靠的就是这种细分覆盖。同理 spring.ai.openai.chat.api-key 也能单独覆盖密钥,不同模型用不同账号的场景很常见。

17.12 接入步骤模板

不管接哪家,都按四步走:

  1. 查官方文档确认接入方式,是独立 starter 还是兼容端点。
  2. 加依赖,引入 spring-ai-bom 管版本。
  3. 写配置:api-key、base-url、model 三件套。
  4. 写一个最小 Controller 验证连通。

验证通过后再写业务。这一步能省掉大半排错时间。

17.13 小结

本节一口气看了八个厂商。它们的共同规律是:独立 starter 有专属前缀,兼容端点只改 base-url。Groq 快、Perplexity 带搜索、NVIDIA 要设 max-tokens、Bedrock 最全、Docker Model Runner 免费。下一节看国产三巨头,接入思路和这里高度相似,区别在于文档和依赖的可得性。