Spring AI 实战系列 | 第 6 篇
国产模型集成指南:通义千问、智谱GLM、文心一言、Ollama
系列说明:本文为《Spring AI 实战系列 入门篇》第 6 篇(终篇)
前置知识:完成第 1-5 篇
预计阅读时间:15 分钟
📖 目录
一、为什么要用国产模型?
1.1 优势对比
| 维度 | 国外模型 (GPT-4) | 国产模型 |
|---|---|---|
| 🌐 网络 | 需要科学上网 | 国内直连 |
| 💰 价格 | 按 token 计费,较贵 | 相对便宜/有免费额度 |
| 📝 中文 | 中文能力一般 | 中文优化更强 |
| 🔒 合规 | 数据出境问题 | 数据境内处理 |
| 🚀 速度 | 受网络影响 | 响应更快 |
1.2 国产模型选型
┌─────────────────────────────────────────────────────────────┐
│ 国产模型选型指南 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 追求性价比 ──→ 通义千问 (Qwen) / 智谱 GLM │
│ 企业级应用 ──→ 文心一言 (ERNIE) │
│ 完全私有 ──→ Ollama 本地部署 Llama/Qwen │
│ 长上下文 ──→ Kimi (Moonshot) │
│ 多模态强 ──→ 通义千问 VL / 文心 VL │
│ │
└─────────────────────────────────────────────────────────────┘
二、通义千问 (Qwen)
2.1 简介
通义千问是阿里云自研的大语言模型,中文能力强,开源可商用。
| 特点 | 说明 |
|---|---|
| 🌟 开源 | Qwen 系列开源可商用 |
| 📝 中文强 | 中文理解与生成优秀 |
| 🔢 多版本 | Qwen2, Qwen2.5, Qwen-VL (多模态) |
| 💰 价格 | 有免费额度,按量计费 |
2.2 获取 API Key
- 访问 dashscope.console.aliyun.com/
- 登录阿里云账号
- 创建 API Key
2.3 Maven 依赖
<!-- 通义千问 -->
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-model-dashscope</artifactId>
</dependency>
2.4 配置
# 通义千问 API Key
spring.ai.dashscope.api-key=${DASHSCOPE_API_KEY}
# Chat 模型
spring.ai.dashscope.chat.options.model=qwen-turbo
# Embedding 模型
spring.ai.dashscope.embedding.options.model=text-embedding-v2
2.5 可用模型
| 模型 | 说明 | 特点 |
|---|---|---|
qwen-turbo | 快速版 | 响应快,便宜 |
qwen-plus | 增强版 | 能力更强 |
qwen-max | 旗舰版 | 最强能力 |
qwen-vl-plus | 多模态 | 支持图片 |
2.6 代码示例
@Configuration
public class QwenConfig {
@Bean
public ChatClient qwenChatClient(DashScopeChatModel chatModel) {
return ChatClient.builder(chatModel)
.defaultOptions(
DashScopeChatOptions.builder()
.model("qwen-plus")
.temperature(0.7)
.build())
.build();
}
}
@RestController
@RequestMapping("/qwen")
public class QwenController {
private final ChatClient chatClient;
public QwenController(ChatClient.Builder builder) {
this.chatClient = builder.build();
}
@GetMapping("/chat")
public String chat(@RequestParam String message) {
return chatClient.prompt()
.user(message)
.call()
.content();
}
}
三、智谱 GLM
3.1 简介
智谱 GLM(ChatGLM)是智谱AI开发的开源大模型,国产开源标杆。
| 特点 | 说明 |
|---|---|
| 🌟 开源 | GLM-4 开源可商用 |
| 📝 中文优 | 针对中文优化 |
| 🔧 微调 | 支持 LoRA 微调 |
| 💰 价格 | 有免费额度 |
3.2 获取 API Key
- 访问 open.bigmodel.cn/
- 注册并登录
- 在控制台创建 API Key
3.3 Maven 依赖
<!-- 智谱 GLM -->
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-model-zhipu</artifactId>
</dependency>
3.4 配置
# 智谱 API Key
spring.ai.zhipu.api-key=${ZHIPU_API_KEY}
# Chat 模型
spring.ai.zhipu.chat.options.model=glm-4
3.5 可用模型
| 模型 | 说明 |
|---|---|
glm-4 | 旗舰版,能力最强 |
glm-4-flash | 快速版,性价比高 |
glm-4v | 多模态,支持图片 |
3.6 代码示例
@RestController
@RequestMapping("/glm")
public class GlmController {
private final ChatClient chatClient;
public GlmController(ChatClient.Builder builder) {
this.chatClient = builder.build();
}
@GetMapping("/chat")
public String chat(@RequestParam String message) {
return chatClient.prompt()
.system("你是一个helpful的AI助手")
.user(message)
.call()
.content();
}
}
四、百度文心一言
4.1 简介
文心一言(ERNIE Bot)是百度自研的大模型,企业级应用友好。
| 特点 | 说明 |
|---|---|
| 🏢 企业级 | 企业用户友好 |
| 📝 中文强 | 中文理解优秀 |
| 🔗 生态 | 与百度云生态集成 |
4.2 获取 API Key
- 访问 console.bce.baidu.com/wenxin/
- 创建应用获取 AppID、API Key、Secret Key
4.3 Maven 依赖
<!-- 百度文心一言 -->
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-model-wenxin</artifactId>
</dependency>
4.4 配置
# 百度文心 API 凭证
spring.ai.wenxin.api-key=${WENXIN_API_KEY}
spring.ai.wenxin.secret-key=${WENXIN_SECRET_KEY}
# 模型
spring.ai.wenxin.chat.options.model=ernie-4.0-8k-latest
4.5 可用模型
| 模型 | 说明 |
|---|---|
ernie-4.0-8k | 旗舰版,8K上下文 |
ernie-3.5-8k | 主力版 |
五、Ollama 本地部署
5.1 简介
Ollama 让你在本地运行大模型,数据完全私有,无需联网。
| 特点 | 说明 |
|---|---|
| 🔒 隐私 | 数据不离开本地 |
| 🌐 离线 | 无需网络 |
| 💻 资源 | 需要本地 GPU/CPU |
5.2 安装与使用
# 安装 Ollama
curl -fsSL https://ollama.com/install.sh | sh
# 下载模型
ollama pull llama3
ollama pull qwen2
# 启动服务
ollama serve
5.3 Maven 依赖
<!-- Ollama -->
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-model-ollama</artifactId>
</dependency>
5.4 配置
# Ollama 服务地址
spring.ai.ollama.base-url=http://localhost:11434
spring.ai.ollama.chat.options.model=llama3
六、多模型切换架构
6.1 策略模式实现
public interface ChatModelProvider {
String getName();
ChatClient getChatClient();
}
@Service
public class MultiModelService {
private final Map<String, ChatModelProvider> providers = new HashMap<>();
public MultiModelService(List<ChatModelProvider> providerList) {
for (ChatModelProvider provider : providerList) {
providers.put(provider.getName(), provider);
}
}
public String chat(String providerName, String message) {
ChatModelProvider provider = providers.get(providerName);
if (provider == null) {
throw new IllegalArgumentException("未知模型: " + providerName);
}
return provider.getChatClient().prompt()
.user(message)
.call()
.content();
}
}
6.2 使用示例
@RestController
@RequestMapping("/ai")
public class MultiModelController {
private final MultiModelService multiModelService;
public MultiModelController(MultiModelService service) {
this.multiModelService = service;
}
@GetMapping("/chat")
public String chat(
@RequestParam String message,
@RequestParam(defaultValue = "qwen") String model
) {
return multiModelService.chat(model, message);
}
}
七、系列总结
完整系列回顾
| 篇目 | 标题 | 核心内容 |
|---|---|---|
| 第 1 篇 | 核心概念与快速上手 | Model、Prompt、Embedding |
| 第 2 篇 | Tool Calling | @Tool 注解、工具调用 |
| 第 3 篇 | VectorStore + RAG | 向量数据库、私有知识库 |
| 第 4 篇 | 结构化输出 | BeanOutputConverter |
| 第 5 篇 | Advisors | 中间件、自定义拦截器 |
| 第 6 篇 | 国产模型集成 | 通义/智谱/文心/Ollama |
技术栈总结
Spring AI
├── Model Providers
│ ├── OpenAI (GPT-4/3.5)
│ ├── Anthropic (Claude)
│ ├── 通义千问 (Qwen) ⭐
│ ├── 智谱 GLM ⭐
│ ├── 文心一言 ⭐
│ └── Ollama (本地)
│
├── Core APIs
│ ├── ChatClient
│ ├── EmbeddingModel
│ ├── VectorStore
│ └── Tool Calling
│
└── Advanced
├── RAG
├── Structured Output
└── Advisors
下一步个人学习计划
理论要结合实践,下一步将使用spring AI去实现AI智能客服、企业知识库、AI代码助手的核心功能(后面应该会考虑使用langchain4j或者其他集成框架去优化完善这些项目)。
总结
AI 的内核是数学家和算法工程师的战场,但 AI 的应用是每个开发者的机会。
你不需要懂 算法、懂微调,但你需要知道怎么用。会用,就是竞争力!
愿每一位仍在Java赛道深耕逐梦的开发者,都能得偿所愿,与诸君共勉!
📚 参考资料
-
Spring AI 官方文档
-
阿里云通义千问
-
智谱 AI
-
百度文心一言
-
Ollama
📌 引用说明:本文核心概念与技术描述参考自 Spring AI 官方文档(docs.spring.io/spring-ai/r… AI、百度文心一言各官方平台公开资料,Ollama 内容来自 Ollama 官方文档。
关注公众号「AI日撰」,点击菜单「获取源码」获取完整代码(Gitee 仓库)。
🎉 恭喜完成《Spring AI 实战系列 入门篇》全部 6 篇!
文章更新时间:2026-03-24 系列:《Spring AI 实战系列 入门篇》终篇(共 6 篇)