spring-ai 第七模型介绍-向量模型

0 阅读1分钟

spring-ai 第七模型介绍-向量模型

官网

通过将文本、图像和视频转换为浮点数组(称为向量)来工作。 这些向量旨在捕捉文本、图像和视频的含义

spring-ai网址docs.spring.io/spring-ai/r…

主要模块

EmbeddingModel

embeddings和chat区别核心区别对比表

特性

🗣️ Chat(聊天)

🧠 Embedding(嵌入)

核心目标

理解和生成自然语言,进行对话、问答、内容创作等。

将文本、图像等数据转换为计算机能高效理解的“向量”(一串数字),以捕捉其语义含义。

输入与输出

输入:用户问题或指令。
输出:自然语言文本、代码等。

输入:一段文字、一个文档。
输出:一个由浮点数组成的向量(即“嵌入”)。

主要接口

ChatClient

EmbeddingClient(或 EmbeddingModel

API 用法

提供流畅的 API 来构建提示词,并获取自然语言回复。

提供 embed(String text) 等方法,将文本直接转换成向量。

典型应用场景

- 对话式 AI:智能客服、聊天机器人、虚拟个人助理。
- 内容生成:撰写邮件、代码、文章摘要等。
- 逻辑推理:根据指令进行逻辑分析并给出答案。

- 语义搜索:根据“意思”而非关键词匹配信息。
- RAG(检索增强生成):从知识库中检索相关内容,辅助 Chat 模型回答。
- 文本分类/聚类:按主题自动归类文档。

技术原理

基于生成式大语言模型,经过海量文本训练,学习如何预测和生成有意义的文本序列。

通过嵌入模型将数据映射到高维向量空间,语义越相近的内容,其向量在空间中的距离越近。

协作关系

Chat 模型通常不直接处理知识库,而是依赖 Embedding 处理后的结果来获取上下文信息。

Embedding 模型只为 Chat 模型提供语义理解后的信息,不负责生成回复。

源码示例

gitee.com/kcnf\_open/…

  • 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": "外国人"
}

Image text

  • 两种验证结果 Image text

Image text