您的当前位置:首页 >IT科技类资讯 >SpringAI用嵌入模型操作向量数据库! 正文
时间:2025-11-04 08:12:14 来源:网络整理编辑:IT科技类资讯
嵌入模型Embedding Model)和向量数据库Vector Database/Vector Store)是一对亲密无间的合作伙伴,也是 AI 技术栈中紧密关联的两大核心组件,两者的协同作用构成了

嵌入模型(Embedding Model)和向量数据库(Vector Database/Vector Store)是用嵌一对亲密无间的合作伙伴,也是入模 AI 技术栈中紧密关联的两大核心组件,两者的型操协同作用构成了现代语义搜索、推荐系统和 RAG(Retrieval Augmented Generation,量数检索增强生成)等应用的据库技术基础。
“PS:准确来说 Vector Database 和 Vector Store 不完全相同,用嵌前者主要用于“向量”数据的入模存储,而 Vector Store 是型操用于存储和检索向量数据的组件。
在 Spring AI 中,量数嵌入模型 API 和 Spring AI Model API 和嵌入模型的据库关系如下:

系统整体交互流程如下:

接下来我们使用以下技术:
Spring AI阿里云文本嵌入模型 text-embedding-v3SimpleVectorStore(内存级别存储和检索向量数据组件)实现嵌入模型操作内存级别向量数据库的案例。
我们使用阿里云百炼平台的站群服务器用嵌嵌入模型 text-embedding-v3 是兼容 OpenAI 的 SDK 的,因此,入模我们只需要添加 OpenAI 依赖即可:
复制<dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-starter-model-openai</artifactId> </dependency>1.2.3.4.阿里云百炼平台支持的型操向量模型:

项目配置文件配置向量模型:
复制spring: ai: openai: api-key: ${aliyun-ak} embedding: options: model: text-embedding-v3 chat: options: model: deepseek-r11.2.3.4.5.6.7.8.9.10.将 EmbeddingModel 和 VectorStore 进行关联,如下代码所示:
复制@Bean public VectorStore vectorStore(EmbeddingModel embeddingModel) { return SimpleVectorStore.builder(embeddingModel).build(); }1.2.3.4.VectorStore 提供的量数常用方法如下:
add(Listdocuments) :添加文档。delete(ListidList) :按 ID 删除文档。据库delete(Filter.Expression filterExpression) :按过滤表达式删除文档。similaritySearch(String query) 和 similaritySearch(SearchRequest request) :相似性搜索。向数据库添加向量数据的方法如下:
复制// 构建测试数据 List<Document> documents = List.of(new Document("I like Spring Boot"), new Document("I love Java")); // 添加到向量数据库 vectorStore.add(documents);1.2.3.4.5.6.当然,向量数据的数据源可以是文件、图片、音频等资源,这里为了简单演示整体执行流程,使用了更简单直观的b2b供应网文本作为数据源。
执行结果如下:

从上述结果可以看出,和“java”相似度最高的向量为“I love Java”,相似度评分为 0.77,如果我们 SearchRequest 对象中的 topK 设置为 1 的话,只会查询“I love Java”这条数据,如下图所示:

“想要获取完整案例的同学加V:vipStone【备注:向量】
嵌入模型和向量数据库是实现 RAG(检索增强生成)的技术基础,当然除了以上案例外,你可以使用 Redis 或 ES 来存储向量数据,并尝试加入 DeepSeek 实现 RAG 功能,这种形式更符合企业真实的技术应用。
云服务器提供商电脑开机重置错误的解决方法(应对电脑开机重置错误的有效措施)2025-11-04 08:04
Window及Kail安装配置排错笔记 网络安全培训2025-11-04 07:53
此芯科技完成DeepSeek R1系列模型适配, 开启智能算力新篇章2025-11-04 07:52
Go语言面试题分享:(选择题10道) (3)2025-11-04 07:47
苹果电脑密码错误解决方案(掌握密码恢复技巧,快速解决苹果电脑密码错误问题)2025-11-04 07:07
Go语言面试题分享:(选择题11道) (4)2025-11-04 06:55
面试题-Linux运维定时任务有哪些必记面试题?2025-11-04 06:46
Python网络爬虫之图片懒加载技术、selenium和PhantomJS2025-11-04 06:44
微星450主板装机教程(全面解析微星450主板的安装和配置)2025-11-04 06:44
数据库章节选择题及填空题2025-11-04 06:20
解决U盘写保护问题的有效方法(终结U盘写保护困扰,实现格式化的妙招)2025-11-04 08:11
GO语言入门学习之Channel管道2025-11-04 07:14
基于Tornado开发高性能多人在线麻将游戏 老男孩Python2025-11-04 07:12
星环无涯AI PC版接入DeepSeek,个人电脑一键部署2025-11-04 07:07
vivoY79手机值得买吗?(vivoY79手机性能、价格、摄像头等方面的评估)2025-11-04 06:57
Python网络爬虫之《Python网络爬虫相关基础概念》2025-11-04 05:48
Go语言的变量是什么?老男孩IT培训2025-11-04 05:41
IOTE 2025 | 慧为智能基于多平台研发实力,交出 “信创 + 智能终端” 答卷2025-11-04 05:40
索尼MDREX250AP耳机的全面评测(探索音质卓越、舒适度卓越和设计精美的索尼MDREX250AP耳机)2025-11-04 05:31
Linux磁盘相关都讲些什么内容?linux系统好用吗?2025-11-04 05:27