OpenAI Plugins + Ollama Ollama + Java 25+ Podman/Docker+ Spring AI

Spring AI 在 Ollama 与 OpenAI 间切换聊天/Embedding/图像/语音模型

✓ 一份代码适配多种模型提供方✓ 支持本地/云端模型并存切换 ✕ 不同提供方能力不完全对等✕ OpenAI 调用需 API Key 且

方案简介

本方案演示如何在同一个 Spring AI 工程中,对接多种 LLM 提供方:本地 Ollama、云端 OpenAI 与 Mistral AI 等。仓库在 models/ 目录下按 chat、embedding、image、audio 四类模型分别组织示例,目标读者是希望构建可在不同模型提供方之间无缝切换、或同一系统混合使用本地与云端模型的 Java 开发者。

亮点与能力

方案具备以下能力:

  • 聊天补全:支持 Ollama、OpenAI、Mistral AI 以及 Multiple Providers 同时接入
  • Embedding(向量化):支持 Ollama、OpenAI、Mistral AI 以及本地 ONNX Transformers
  • 图像生成:通过 OpenAI Image 模型
  • 语音转文字与文字转语音:通过 OpenAI Audio 模型
  • 同一套 Spring AI 代码切换提供方时仅需修改配置与依赖
  • 多个 Patterns(Prompts、Tool Calling、Structured Output、Multimodality、Memory、Guardrails)共用上述模型抽象

组成与分工

组合中各成员分工如下:

  • Spring AI:统一抽象 ChatModel、EmbeddingModel、ImageModel、AudioModel 等接口
  • Ollama:本地聊天与 Embedding 提供方,便于离线/私有部署
  • OpenAI:云端聊天、Embedding、图像、语音模型提供方
  • Mistral AI:另一云端聊天与 Embedding 提供方示例
  • ONNX Transformers:本地 Embedding 提供方,运行 Transformer 模型
  • Java 25 + Podman/Docker:运行时与容器环境

前置要求

前置要求:

  • Java 25
  • Podman 或 Docker
  • 至少一个可用的模型提供方:本地 Ollama(需预拉取模型)、OpenAI API Key、Mistral AI API Key 等
  • 若使用 ONNX Transformers 需本地具备相应模型权重

实施步骤

实施步骤参考如下:

1. 选择目标模型提供方

根据需求在 models/chat/models/embedding/models/image/models/audio/ 中选择对应子模块,例如 chat-ollamachat-openaiembedding-transformers

2. 准备对应提供方

  • Ollama:本地启动并拉取所需聊天/Embedding 模型
  • OpenAI:准备 OPENAI_API_KEY
  • Mistral AI:准备对应 API Key
  • ONNX Transformers:准备模型文件

3. 引入 Spring AI 依赖

在所选子模块的 pom.xmlbuild.gradle 中引入对应的 Spring AI starter 依赖(具体依赖坐标以子模块为准)。

4. 配置模型提供方

application.propertiesapplication.yml 中配置 Spring AI 指向所选提供方,例如 base-url、api-key、模型名等。

5. 调用模型接口

通过 Spring AI 注入的 ChatModelEmbeddingModelImageModelAudioModel 等 Bean 调用模型能力。

6. 切换提供方(可选)

参考 models/chat/chat-multiple-providers 同时配置多个提供方,或在不同模块间复用同一份业务代码。

优缺点

  • ✓ 一份代码适配多种模型提供方
  • ✓ 支持本地/云端模型并存切换
  • ✕ 不同提供方能力不完全对等
  • ✕ OpenAI 调用需 API Key 且

出处

本方案挖掘自开源项目 ThomasVitale/llm-apps-java-spring-ai,方案内容与实施命令均来自其 README 原文。

方案出处
ThomasVitale/llm-apps-java-spring-ai:Samples showing how to build Java applications powered by Generative AI and LLMs
779 star Samples showing how to build Java applications powered by Generative AI and LLMs using Spring AI and Spring Boot.

本方案由真实开源项目挖掘整理,实施命令均来自其 README 原文,安装使用请遵循项目开源协议。