spring-ai 第七模型介绍-向量模型
官网
通过将文本、图像和视频转换为浮点数组(称为向量)来工作。 这些向量旨在捕捉文本、图像和视频的含义
spring-ai网址【https://docs.spring.io/spring-ai/reference/api/embeddings.html】
主要模块
EmbeddingModel
embeddings和chat区别核心区别对比表
| 特性 | 🗣️ Chat(聊天) | 🧠 Embedding(嵌入) |
|---|---|---|
| 核心目标 | 理解和生成自然语言,进行对话、问答、内容创作等。 | 将文本、图像等数据转换为计算机能高效理解的"向量"(一串数字),以捕捉其语义含义。 |
| 输入与输出 | 输入 :用户问题或指令。 输出:自然语言文本、代码等。 | 输入 :一段文字、一个文档。 输出:一个由浮点数组成的向量(即"嵌入")。 |
| 主要接口 | ChatClient |
EmbeddingClient(或 EmbeddingModel) |
| API 用法 | 提供流畅的 API 来构建提示词,并获取自然语言回复。 | 提供 embed(String text) 等方法,将文本直接转换成向量。 |
| 典型应用场景 | - 对话式 AI:智能客服、聊天机器人、虚拟个人助理。 - 内容生成:撰写邮件、代码、文章摘要等。 - 逻辑推理:根据指令进行逻辑分析并给出答案。 | - 语义搜索:根据"意思"而非关键词匹配信息。 - RAG(检索增强生成):从知识库中检索相关内容,辅助 Chat 模型回答。 - 文本分类/聚类:按主题自动归类文档。 |
| 技术原理 | 基于生成式大语言模型,经过海量文本训练,学习如何预测和生成有意义的文本序列。 | 通过嵌入模型将数据映射到高维向量空间,语义越相近的内容,其向量在空间中的距离越近。 |
| 协作关系 | Chat 模型通常不直接处理知识库,而是依赖 Embedding 处理后的结果来获取上下文信息。 | Embedding 模型只为 Chat 模型提供语义理解后的信息,不负责生成回复。 |
源码示例
https://gitee.com/kcnf_open/spring-ai-sample/tree/master/spring-ai/spring-ai-sample06
-
yaml配置
spring:
ai:
zhipuai:
api-key: ${ZHIPUAI_API_KEY}
chat:
options:
model: glm-4v-flash
embedding:
options:
model: embedding-3 # 嵌入模型 -
测试代码
127.0.0.1:8082/api/embedding/similarity
{
"text1": "Java是一门编程语言",
"text2": "外国人"
}

- 两种验证结果

