yudao-cloud 开发指南 yudao-cloud 开发指南
  • 萌新必读
  • 后端手册
  • 微服务手册
  • 工作流手册
  • 大屏手册
  • 支付手册
  • 商城手册
  • ERP 手册
  • CRM 手册
  • AI 大模型手册
  • IoT 物联网手册
  • 公众号手册
  • 前端手册 Vue 2.x
  • 前端手册 Vue 3.x
  • 工作流手册
  • 大屏手册
  • 支付手册
  • 商城手册
  • ERP 手册
  • CRM 手册
  • AI 大模型手册
  • IoT 物联网手册
  • 公众号手册
  • 系统手册
视频教程
  • Vue3 + element-plus (opens new window)
  • Vue3 + vben(ant-design-vue) (opens new window)
  • Vue2 + element-ui (opens new window)
单体版 (opens new window)
作者博客 (opens new window)
GitHub (opens new window)
  • 萌新必读
  • 后端手册
  • 微服务手册
  • 工作流手册
  • 大屏手册
  • 支付手册
  • 商城手册
  • ERP 手册
  • CRM 手册
  • AI 大模型手册
  • IoT 物联网手册
  • 公众号手册
  • 前端手册 Vue 2.x
  • 前端手册 Vue 3.x
  • 工作流手册
  • 大屏手册
  • 支付手册
  • 商城手册
  • ERP 手册
  • CRM 手册
  • AI 大模型手册
  • IoT 物联网手册
  • 公众号手册
  • 系统手册
视频教程
  • Vue3 + element-plus (opens new window)
  • Vue3 + vben(ant-design-vue) (opens new window)
  • Vue2 + element-ui (opens new window)
单体版 (opens new window)
作者博客 (opens new window)
GitHub (opens new window)
  • 萌新必读

    • 简介
    • 交流群
    • 视频教程
    • 功能列表
    • 快速启动(后端项目)
    • 快速启动(前端项目)
    • 接口文档
    • 技术选型
    • 项目结构
    • 代码热加载
    • 一键改包
    • 迁移模块(适合新项目)
    • 删除功能(以租户为例)
    • 表结构变更(版本升级)
    • 国产信创数据库(DM 达梦、大金、OpenGauss)
    • 内网穿透
    • 面试题、简历模版、简历优化
    • 项目外包
  • 后端手册

    • 新建服务
    • 代码生成【单表】(新增功能)
    • 代码生成【主子表】
    • 代码生成(树表)
    • 功能权限
    • 数据权限
    • 用户体系
    • 三方登录
    • OAuth 2.0(SSO 单点登录)
    • SaaS 多租户【字段隔离】
    • SaaS 多租户【数据库隔离】
    • WebSocket 实时通信
    • 异常处理(错误码)
    • 参数校验、时间传参
    • 分页实现
    • VO 对象转换、数据翻译
    • 文件存储(上传下载)
    • Excel 导入导出
    • 操作日志、访问日志、异常日志
    • MyBatis 数据库
    • MyBatis 联表&分页查询
    • 多数据源(读写分离)、事务
    • Redis 缓存
    • 本地缓存
    • 异步任务
    • 分布式锁
    • 幂等性(防重复提交)
    • 请求限流(RateLimiter)
    • HTTP 接口签名(防篡改)
    • HTTP 接口加解密
    • 单元测试
    • 验证码
    • 工具类 Util
    • 数据库文档
  • 微服务手册

    • 微服务调试(必读)
    • 注册中心 Nacos
    • 配置中心 Nacos
    • 服务网关 Spring Cloud Gateway
    • 服务调用 Feign
    • 定时任务 XXL Job
    • 消息队列(内存)
    • 消息队列(Redis)
    • 消息队列(RocketMQ)
    • 消息队列(RabbitMQ)
    • 消息队列(Kafka)
    • 消息队列(Cloud)
    • 分布式事务 Seata
    • 服务保障 Sentinel
  • 工作流手册

    • 工作流演示
    • 功能开启
    • 工作流(达梦适配)
    • 审批接入(流程表单)
    • 审批接入(业务表单)
    • 流程设计器(BPMN)
    • 流程设计器(钉钉、飞书)
    • 选择审批人、发起人自选
    • 会签、或签、依次审批
    • 流程发起、取消、重新发起
    • 审批通过、不通过、驳回
    • 审批加签、减签
    • 审批转办、委派、抄送
    • 执行监听器、任务监听器
    • 流程表达式
    • 流程审批通知
  • 大屏手册

    • 报表设计器
    • 大屏设计器
  • 支付手册

    • 功能开启
    • 支付宝支付接入
    • 微信公众号支付接入
    • 微信小程序支付接入
    • 支付宝、微信退款接入
    • 支付宝转账接入
    • 微信转账接入
    • 钱包充值、支付、退款
    • 模拟支付、退款
  • 会员手册

    • 功能开启
    • 微信公众号登录
    • 微信小程序登录
    • 微信小程序订阅消息
    • 微信小程序码
    • 会员用户、标签、分组
    • 会员等级、积分、签到
  • 商城手册

    • 商城演示
    • 功能开启
    • 商城装修
    • 在线客服
    • 【商品】商品分类
    • 【商品】商品属性
    • 【商品】商品 SPU 与 SKU
    • 【商品】商品评价
    • 【交易】购物车
    • 【交易】交易订单
    • 【交易】售后退款
    • 【交易】快递发货
    • 【交易】门店自提
    • 【交易】分销返佣
    • 【营销】优惠劵
    • 【营销】积分商城
    • 【营销】拼团活动
    • 【营销】秒杀活动
    • 【营销】砍价活动
    • 【营销】满减送活动
    • 【营销】限时折扣
    • 【营销】内容管理
    • 【统计】会员、商品、交易统计
  • ERP手册

    • ERP 演示
    • 功能开启
    • 【产品】产品信息、分类、单位
    • 【库存】产品库存、库存明细
    • 【库存】其它入库、其它出库
    • 【库存】库存调拨、库存盘点
    • 【采购】采购订单、入库、退货
    • 【销售】销售订单、出库、退货
    • 【财务】采购付款、销售收款
  • CRM手册

    • CRM 演示
    • 功能开启
    • 【线索】线索管理
    • 【客户】客户管理、公海客户
    • 【商机】商机管理、商机状态
    • 【合同】合同管理、合同提醒
    • 【回款】回款管理、回款计划
    • 【产品】产品管理、产品分类
    • 【通用】数据权限
    • 【通用】跟进记录、待办事项
  • AI大模型手册

    • AI 大模型演示
    • 功能开启
    • AI 聊天对话
    • AI 绘画创作
    • AI 知识库(RAG)
      • 1. AI 知识库表
        • 1.1 表结构
        • 1.2 管理后台
      • 2. AI 知识库文档表
        • 2.1 表结构
        • 2.2 管理后台
      • 3. AI 知识库段落表
        • 3.1 表结构
        • 3.2 管理后台
      • 4. 如何使用?
        • 4.1 召回测试
        • 4.2 接入 AI 聊天
      • 附录:向量模型
        • OllamaEmbeddingModel
        • DashScopeEmbeddingModel
        • ZhiPuAiEmbeddingModel
        • QianFanEmbeddingModel
        • MoonshotEmbeddingModel
        • OpenAiEmbeddingModel
        • AzureOpenAiEmbeddingModel
      • 5. 如何 Rerank 重排序?
      • 附录:向量存储
        • RedisVectorStore
        • QdrantVectorStore
        • MilvusVectorStore
      • 常见问题?
    • AI 音乐创作
    • AI 写作助手
    • AI 思维导图
    • AI 工具(function calling)
    • AI 工作流
    • Dify 工作流
    • FastGPT 工作流
    • Coze 智能体
    • 推理模式(thinking)
    • 联网搜索
    • 【模型接入】Claude
    • 【模型接入】OpenAI
    • 【模型接入】通义千问
    • 【模型接入】DeepSeek
    • 【模型接入】字节豆包
    • 【模型接入】腾讯混元
    • 【模型接入】硅基流动
    • 【模型接入】MiniMax
    • 【模型接入】月之暗灭
    • 【模型接入】百川智能
    • 【模型接入】文心一言
    • 【模型接入】LLAMA
    • 【模型接入】智谱 GLM
    • 【模型接入】讯飞星火
    • 【模型接入】微软 OpenAI
    • 【模型接入】谷歌 Gemini
    • 【模型接入】Stable Diffusion
    • 【模型接入】Midjourney
    • 【模型接入】Suno
  • IoT物联网手册

    • 功能开启
  • 公众号手册

    • 功能开启
    • 公众号接入
    • 公众号粉丝
    • 公众号标签
    • 公众号消息
    • 自动回复
    • 公众号菜单
    • 公众号素材
    • 公众号图文
    • 公众号统计
  • 系统手册

    • 短信配置
    • 邮件配置
    • 站内信配置
    • 数据脱敏
    • 敏感词
    • 地区 & IP 库
  • 运维手册

    • 开发环境
    • Linux 部署
    • Docker 部署
    • Jenkins 部署
    • 宝塔部署
    • HTTPS 证书
    • 服务监控
  • 前端手册 Vue 3.x

    • 开发规范
    • 菜单路由
    • Icon 图标
    • 字典数据
    • 系统组件
    • 通用方法
    • 配置读取
    • CRUD 组件
    • 国际化
    • IDE 调试
    • 代码格式化
  • 前端手册 Vue 2.x

    • 开发规范
    • 菜单路由
    • Icon 图标
    • 字典数据
    • 系统组件
    • 通用方法
    • 配置读取
  • 更新日志

    • 【v2-6-2】开发中
    • 【v2-6-1】2025-07-19
    • 【v2-6-0】2025-06-07
    • 【v2.5.0】2025-05-13
    • 【v2.4.2】2025-04-12
    • 【v2.4.1】2025-02-09
    • 【v2.4.0】2024-12-31
    • 【v2.3.0】2024-10-07
    • 【v2.2.0】2024-08-02
    • 【v2.1.0】2024-05-05
    • 【v2.0.1】2024-03-01
    • 【v2.0.0】2024-01-26
    • 【v1.9.0】2023-12-01
  • 开发指南
  • AI大模型手册
芋道源码
2024-06-02
目录

AI 知识库(RAG)

AI 知识库,基于 RAG 方式,实现 LLM 打通内部知识库。

疑问:什么是 RAG?

  • 《一文读懂:大模型 RAG(检索增强生成)含高级方法》 (opens new window)
  • 《检索增强生成 (RAG)》 (opens new window)
  • 《什么是检索增强生成?》 (opens new window)

目前,项目中的 AI 聊天对话 功能,已经接入 AI 知识库,如下图所示:

AI 知识库的案例

整个功能,涉及到 3 个表:

表关系图

  • ai_knowledge:AI 知识库表
  • ai_knowledge_document:AI 知识库文档表
  • ai_knowledge_segment:AI 知识库段落表

下面,我们逐个表进行介绍,这个过程中也会讲讲对应的功能。

# 1. AI 知识库表

ai_knowledge 表,是 AI 知识库的主表,存储了知识库的基本信息。

# 1.1 表结构

省略 creator/create_time/updater/update_time/deleted/tenant_id 等通用字段

CREATE TABLE `ai_knowledge` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '知识库名称',
  `description` longtext COLLATE utf8mb4_unicode_ci COMMENT '知识库描述',
  
  `embedding_model_id` bigint NOT NULL COMMENT '向量模型编号',
  `embedding_model` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '向量模型标识',
  
  `top_k` int NOT NULL COMMENT 'topK',
  `similarity_threshold` double NOT NULL COMMENT '相似度阈值',

  `status` tinyint NOT NULL COMMENT '是否启用',

  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='AI 知识库表';

① embedding_model_id 字段:对应 ai_model 表的 id 字段,表示使用的向量模型。

友情提示:向量模型的配置,可见「附录:向量模型」小节。

② top_k 字段:表示检索时,返回的最大数量。

similarity_threshold 字段:表示相似度阈值,超过这个值,检索才会返回。

# 1.2 管理后台

① 前端对应 [AI 大模型 -> AI 知识库] 菜单,对应 yudao-ui-admin-vue3 项目的 @/views/ai/knowledge/knowledge 目录,创建知识库。

AI 知识库

它的后端 HTTP 接口,由 yudao-module-ai 模块的 model 包的 AiKnowledgeController 实现。

② 点击「新建」按钮,填写知识库名称、描述、向量模型、topK、相似度阈值,点击「保存」按钮,即可创建知识库。如下图所示:

AI 知识库新建

# 2. AI 知识库文档表

ai_knowledge_document 表,是 AI 知识库的文档表,存储了知识库的文档信息。

# 2.1 表结构

省略 creator/create_time/updater/update_time/deleted/tenant_id 等通用字段

CREATE TABLE `ai_knowledge_document` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
  `knowledge_id` bigint NOT NULL COMMENT '知识库编号',
  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文档名称',
  
  `url` varchar(1024) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文件 URL',
  `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '内容',
  `content_length` int NOT NULL COMMENT '字符数',
  `tokens` int NOT NULL COMMENT 'token 数量',
  
  `segment_max_tokens` int NOT NULL COMMENT '分片最大 Token 数',
  
  `retrieval_count` int NOT NULL DEFAULT '0' COMMENT '召回次数',
  
  `status` tinyint NOT NULL COMMENT '是否启用',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='AI 知识库文档表';

① knowledge_id 字段:对应 ai_knowledge 表的 id 字段,表示属于哪个知识库。

② url 字段:通过上传文件,新建文档时,会有文件 URL。

content、content_length、tokens 字段:表示文档内容、字符数、token 数量。

③ segment_max_tokens 字段:表示分片最大 Token 数,超过这个值,会进行分片。目前通过 Spring AI 提供的 TokenTextSplitter 进行分片。

④ retrieval_count 字段:表示召回次数,每次检索时,会记录召回次数。

# 2.2 管理后台

① 点击“知识库”所在列的「文档」按钮,进入该知识库的文档列表,对应 yudao-ui-admin-vue3 项目的 @/views/ai/knowledge/knowledge 目录,如下图所示:

AI 知识库文档

它的后端 HTTP 接口,由 yudao-module-ai 模块的 model 包的 AiKnowledgeDocumentController 实现。

② 点击「新建」按钮,上传文件(支持多个),不断点击「下一步」按钮,即可创建文档。如下图所示:

AI 知识库文档新建

AI 知识库文档新建2

AI 知识库文档新建3

完成后,文档会被切成多个分片,之后分片使用【向量模型】进行向量化,最终存储到【向量存储】中。

友情提示:向量存储的配置,可见「附录:向量存储」小节。

# 3. AI 知识库段落表

ai_knowledge_segment 表,是 AI 知识库的段落表,存储了知识库的段落信息。

也就是说,切片一方面存储到【向量存储】中(用于“检索”),另一方面存储到 ai_knowledge_segment 表中(用于“管理”)。

# 3.1 表结构

省略 creator/create_time/updater/update_time/deleted/tenant_id 等通用字段

CREATE TABLE `ai_knowledge_segment` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',

  `knowledge_id` bigint NOT NULL COMMENT '知识库编号',
  `document_id` bigint NOT NULL COMMENT '文档编号',
  
  `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '分段内容',
  `content_length` int NOT NULL COMMENT '字符数',
  `tokens` int NOT NULL COMMENT 'token 数量',

  `vector_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '向量库的编号',

  `retrieval_count` int NOT NULL DEFAULT '0' COMMENT '召回次数',
  
  `status` tinyint NOT NULL COMMENT '是否启用',

  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=183 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='AI 知识库分段表';

① knowledge_id 字段:对应 ai_knowledge 表的 id 字段,表示属于哪个知识库。

document_id 字段:对应 ai_knowledge_document 表的 id 字段,表示属于哪个文档。

② content、content_length、tokens 字段:表示分段内容、字符数、token 数量。

③ vector_id 字段:表示向量库的编号,对应【向量存储】中的向量编号。只做关联,不存储向量值。

④ retrieval_count 字段:表示召回次数,每次检索时,会记录召回次数。

# 3.2 管理后台

① 点击“文档”所在列的「文档」按钮,进入该知识库的文档列表,点击「查看」按钮,即可查看文档的分段列表,对应 yudao-ui-admin-vue3 项目的 @/views/ai/knowledge/knowledge 目录,如下图所示:

AI 知识库段落

② 除了上述文档的方式,我们也可以点击「新建」或者「编辑」按钮,手动创建或编辑段落。如下图所示:

AI 知识库段落新建

# 4. 如何使用?

# 4.1 召回测试

可以在 [AI 大模型 -> AI 知识库] 菜单,点击“知识库”所在列的「召回测试」按钮,输入检索内容,即可测试知识库的检索。如下图所示:

AI 知识库召回测试

# 4.2 接入 AI 聊天

① 第一步,在角色配置时,关联对应的 AI 知识库,可多选。如下图所示:

AI 知识库角色配置

② 第二步,使用该角色进行聊天,即可使用 AI 知识库。如下图所示:

AI 知识库的案例

# 附录:向量模型

在 Spring AI 中,通过 EmbeddingModel 接口,实现了各个平台的向量模型的接入。如下图所示:

EmbeddingModel 实现

目前在项目的 AiModelFactoryImpl 中,提供了 #getOrCreateEmbeddingModel(...) 方法:

  • 已实现 OllamaEmbeddingModel、DashScopeEmbeddingModel 模型的接入
  • 未实现的其它平台的向量模型,可参考实现到上述方法中

# OllamaEmbeddingModel

① 首先,访问 https://ollama.ai/download (opens new window),下载对应系统 Ollama 客户端,然后安装。

② 然后,访问 https://ollama.com/search?c=embedding (opens new window) 地址,获取想运行的向量模型。

例如说:nomic-embed-text,则可在命令中执行 ollama pull nomic-embed-text 命令,进行一键部署。

③ 最后,在 [AI 大模型 -> 控制台 -> 模型配置] 菜单,添加该向量模型。

注意,模型名使用你 Ollama 部署的模型名。

# DashScopeEmbeddingModel

① 首先,参考 《【模型接入】通义千问》 文档,申请对应的 API 密钥。

② 然后,在 [AI 大模型 -> 控制台 -> 模型配置] 菜单,添加该向量模型。

模型名,可使用 text_embedding_v3,更多可参考 《阿里云 —— 通用文本向量》 (opens new window)

# ZhiPuAiEmbeddingModel

① 首先,参考 《【模型接入】智普 GLM》 文档,申请智普 AI 的 API 密钥。

② 然后,在 [AI 大模型 -> 控制台 -> 模型配置] 菜单,添加该向量模型。

模型名,可使用 embedding-3,更多可参考 《智谱 —— 模型广场》 (opens new window) 搜 “embedding” 关键字。

# QianFanEmbeddingModel

① 首先,参考 《【模型接入】文心一言》 文档,申请对应的 API 密钥。

② 然后,在 [AI 大模型 -> 控制台 -> 模型配置] 菜单,添加该向量模型。

模型名,可使用 embedding-v1,更多可参考 《千帆大模型服务 —— 向量Embeddings》 (opens new window)。

# MoonshotEmbeddingModel

① 首先,参考 《【模型接入】Moonshot》 文档,申请对应的 API 密钥。

② 然后,在 [AI 大模型 -> 控制台 -> 模型配置] 菜单,添加该向量模型。

模型名,可使用 embo-01,更多可参考 《Moonshot 文档 —— Embeddings(向量化)》 (opens new window)。

# OpenAiEmbeddingModel

① 首先,参考 《【模型接入】OpenAI》 文档,申请对应的 API 密钥。

② 然后,在 [AI 大模型 -> 控制台 -> 模型配置] 菜单,添加该向量模型。

模型名,可使用 text-embedding-ada-002,TODO 更多可参考 《OpenAI 中文文档 —— 嵌入模型》 (opens new window)。

# AzureOpenAiEmbeddingModel

① 首先,参考 《【模型接入】微软 OpenAI》 文档,申请对应的 API 密钥。

② 然后,在 [AI 大模型 -> 控制台 -> 模型配置] 菜单,添加该向量模型。

模型名,可使用 text-embedding-3-small,更多可参考 《教程:探索 Azure OpenAI 服务嵌入和文档搜索》 (opens new window)。

# 5. 如何 Rerank 重排序?

疑问:为什么 Rerank 可以提升 RAG 效果?

  • 《Rerank —— RAG 中百尺竿头更进一步的神器,从原理到解决方案 》 (opens new window)
  • 《深入浅出:理解 RAG 中的 Re-Ranking 机制》 (opens new window)

目前 Spring AI 暂时没有提供 Rerank 功能,目前只有 Alibaba AI 提供了 RerankModel (opens new window)。

也因此,如果想使用 Rerank 功能,目前只能使用 DashScopeRerankModel 实现类,对应 《阿里云 —— 文本排序》 (opens new window)。使用的话,只需要修改 application.yml 中,配置如下内容:

spring:
  ai:
    dashscope: # 通义千问
      api-key: sk-47aa124781be4bfb95244cc62f6xxxx # 注意:需要改成你的 apiKey !!!!
    model:
      rerank: dashscope # 是否开启“通义千问”的 Rerank 模型,填写 dashscope 开启

修改完,可以调试 AiKnowledgeSegmentServiceImpl 类的 #searchKnowledgeSegment(...) 方法。

# 附录:向量存储

在 Spring AI 中,通过 VectorStore 接口,实现了各个平台的向量存储的接入。如下图所示:

VectorStore 实现

目前在项目的 AiModelFactoryImpl 中,提供了 #getOrCreateVectorStore(...) 方法,实现如下模型的接入:

  • 本地磁盘 SimpleVectorStore
  • Redis (opens new window) RedisVectorStore
  • Qdrant (opens new window) QdrantVectorStore
  • Milvus (opens new window) MilvusVectorStore

ps:其它平台的向量存储,可参考实现到上述方法中。

另外,默认使用 SimpleVectorStore。如需切换,可修改 AiModelServiceImpl 的 #getOrCreateVectorStore(...) 方法,如下图所示:

VectorStore 切换

# RedisVectorStore

① 参考 https://blog.csdn.net/NiDeHaoPengYou/article/details/129748387 (opens new window) 文档,执行 docker run -d --name redis-stack -p 6379:6379 -p 8001:8001 redis/redis-stack:latest 命令,安装开启向量存储的 Redis。

② 修改 AiModelServiceImpl 的 #getOrCreateVectorStore(...) 方法,使用 RedisVectorStore。

另外,默认在 application.yaml 配置如下:

spring:
  ai:
    vectorstore: # 向量存储
      redis:
        initialize-schema: true
        index: knowledge_index # Redis 中向量索引的名称:用于存储和检索向量数据的索引标识符,所有相关的向量搜索操作都会基于这个索引进行
        prefix: "knowledge_segment:" # Redis 中存储向量数据的键名前缀:这个前缀会添加到每个存储在 Redis 中的向量数据键名前,每个 document 都是一个 hash 结构

# QdrantVectorStore

① 执行 docker run -d --name qdrant-test -p 6333:6333 -p 6334:6334 qdrant/qdrant:latest 命令,安装 Qdrant。

② 修改 AiModelServiceImpl 的 #getOrCreateVectorStore(...) 方法,使用 QdrantVectorStore。

另外,默认在 application.yaml 配置如下:

spring:
  ai:
    vectorstore: # 向量存储
      qdrant:
        initialize-schema: true
        collection-name: knowledge_segment # Qdrant 中向量集合的名称:用于存储向量数据的集合标识符,所有相关的向量操作都会在这个集合中进行
        host: 127.0.0.1
        port: 6334

# MilvusVectorStore

① 参考 https://milvus.io/docs/zh/prerequisite-docker.md (opens new window) 文档,执行如下命令(需要翻墙):

curl -sfL https://raw.githubusercontent.com/milvus-io/milvus/master/scripts/standalone_embed.sh -o standalone_embed.sh
bash standalone_embed.sh start

② 修改 AiModelServiceImpl 的 #getOrCreateVectorStore(...) 方法,使用 MilvusVectorStore。

另外,默认在 application.yaml 配置如下:

spring:
  ai:
    vectorstore: # 向量存储
      milvus:
        initialize-schema: true
        database-name: default # Milvus 中数据库的名称
        collection-name: knowledge_segment # Milvus 中集合的名称:用于存储向量数据的集合标识符,所有相关的向量操作都会在这个集合中进行
        client:
          host: 127.0.0.1
          port: 19530

# 常见问题?

① 如果使用本地向量化模型的应用分享?

参见 https://t.zsxq.com/6KM05 (opens new window) 文档。

② 使用多个向量模型,维度数不同时会报错?

参见 https://t.zsxq.com/tpn1L (opens new window) 文档来解决。

AI 绘画创作
AI 音乐创作

← AI 绘画创作 AI 音乐创作→

Theme by Vdoing | Copyright © 2019-2025 芋道源码 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×