众力资讯网

从 0 到 1 玩转 Spring AI + 智谱 AI 向量模型,RAG 工程师都在用!

事情是这样的。上周,我负责的一个智能问答项目,老板突然说一句话:“小米啊,我们要做知识库检索,搞个类似 RAG 的东西



事情是这样的。

上周,我负责的一个智能问答项目,老板突然说一句话:

“小米啊,我们要做知识库检索,搞个类似 RAG 的东西,支持语义搜索。”

我当场愣住:语义搜索?知识库?向量?Embedding?

老板微微一笑:“别慌,用 SpringAI 接智谱 AI。”

那一刻,我的人生仿佛听见了 命运的 Callback。于是,就有了今天这篇文章。

什么是智谱 AI 向量模型?

通俗地讲:Embedding 向量 = 语义世界里的坐标

我们平时的文字,比如:

“今天天气真好”

“阳光明媚,适合出门”

虽然字完全不同,但意思很接近。Embedding 模型的工作就是:

把这些文字转成一串数字向量

在向量空间里,相似语义的文本离得更近

在智谱 AI 里,你可以理解为:

它们在向量空间中“彼此靠近”,之后你只需要使用向量相似度搜索,就能实现语义检索。而 Spring AI 则是帮我们用 Spring Boot 的方式,优雅地接入智谱 AI。

这,就是我们今天的主线任务。

先决条件:开打前必须准备的装备

在开搞之前,你要准备三样东西:

JDK 17+(Spring AI 对 JDK 版本有要求)

Spring Boot 3.x

智谱 AI 的 API Key

获取智谱 Key 的地方就不展开了,反正你登录智谱平台,创建应用就能拿到类似这样的:

YOUR_ZHIPU_API_KEY

记好,这就是你进入“Embedding 镇”的通行证。

添加仓库和 BOM

因为 Spring AI 目前还在飞速进化中,所以我们一般要加它的仓库与 BOM。

在 pom.xml 中添加:

然后引入智谱 AI Embedding 相关依赖:

至此,你和 SpringAI + 智谱 AI 的缘分就此开始。

自动配置机制:Spring AI 的“魔法”

Spring AI 是完全遵循 Spring Boot 的自动配置思路的。

只要你在 application.yml 中配置好:

Spring Boot 在启动的时候:

会自动装配 ZhiPuAiEmbeddingClient

会自动注入到 Spring 容器中

你只管用,剩下的交给 Starter。是不是很 Spring?

Embedding 属性详解

下面是干货最密集的一部分:配置属性详解。我拆成三个表。

1. 重试属性表

这些属性用于控制:调用智谱模型失败后的重试行为。

实际业务中,如果你在高并发环境中使用,强烈建议好好配置一波。

2. 连接属性表

控制你如何连接智谱 AI 服务。

如果你是在内网部署,可以改 base-url 走代理。

3. Embedding 核心配置属性

这些是跟向量生成直接相关的:

其中 model 可以根据智谱当前支持的情况调整,比如:

embedding-2

embedding-3(未来可能更新)

运行时选项:ZhiPuAiEmbeddingOptions

除了配置文件,我们还可以在运行时动态指定参数。Spring AI 提供了一个对象:

ZhiPuAiEmbeddingOptions

示例:

这样你就可以在不同业务场景下:

使用不同模型

使用不同向量维度

不用改全局配置,优雅得一批。

示例控制器:真刀真枪搞起来

终于,轮到重头戏了。

一个最简单的 Embedding Controller:

访问:

GET /embedding/vector?text=今天天气很好

返回的就是:

[0.2331, -0.5921, 0.1893, ...]

你就可以把这个向量丢进:

Milvus

FAISS

PGVector

Qdrant

实现各种语义搜索场景。是不是特别爽?

手动配置:给强迫症程序员的浪漫

如果你不想用 Spring Boot 的自动配置,也可以手动 Bean:

适合那些想完全掌控细节、或者做多模型隔离的场景。

为什么我要用 Spring AI + 智谱?

最后说点大实话。我尝试过:

手撸 HTTP 调用

写 SDK 适配

接第三方中间层

但自从我用了 Spring AI + 智谱 AI:

接入快

风格统一

适合微服务

直接适配后续 RAG / Function Calling / Chat 模型

最重要的是:

代码真的变少了,头发也少掉几根……

总结一波今天学到的重点

我们今天一口气聊完了:

智谱 AI 向量模型原理

Spring AI 自动接入方式

Embedding 属性完整配置

重试 + 连接 + 核心参数表格

运行时选项 ZhiPuAiEmbeddingOptions

Controller 实战

自动配置 & 手动配置对比

如果你接下来要做:

知识库问答

AI 搜索

语义推荐

相似文本匹配

那这一套:

Spring AI + 智谱 AI Embedding = 你项目里最香的一块积木。