文档中心>向量数据库>实践教程>基于向量数据库混合检索 + Dify 构建知识库

基于向量数据库混合检索 + Dify 构建知识库

最近更新时间:2025-04-22 17:51:02

我的收藏

背景信息

Dify 是一款面向开发者与企业的 AI 应用开发平台,致力于简化大语言模型(LLM)集成与开发流程,助力用户高效构建智能化应用。腾讯云向量数据库作为其官方支持的向量数据库组件,凭借高效的 向量检索与稀疏向量 能力,为 Dify 平台上的 RAG(检索增强生成)应用提供底层支持,显著提升语义理解与检索精度。用户可将文档、图表等数据向量化存储,结合 Dify 的 LLM 交互逻辑,直接搭建智能知识库,实现精准问答与知识检索。

准备工作

1. 选型并购买向量数据库实例,具体操作,请参见 购买实例
2. 在向量数据库中,创建数据库。具体操作,请参见 create
3. 客户端运行环境准备。
类别
要求
地域与网络环境
使用腾讯云外网访问,需手动配置白名单,开通外网功能。具体操作,请参见 开启外网访问
使用腾讯云内网方式访问,确保购买的 CVM 所处地域与向量数据库为同地域,且 VPC 和安全组策略能正常连通向量数据库实例。
客户端
使用腾讯云外网方式,可使用本地客户端操作环境即可。
使用腾讯云内网方式,推荐选择 云服务器 CVM,如 SA3.LARGE8、SA3.2XLARGE16等规格。
4. 登录客户端运行环境,安装 Docker。具体操作,请参见 Docker Compose 部署。若选择 云服务器 CVM,请参见 搭建 Docker,快速安装与 CVM 操作系统版本适配的 Docker 环境。
5. 克隆 Dify 源代码至本地环境。具体方式,请参见 克隆 Dify 代码仓库
6. 准备知识库数据源文本。本示例以腾讯云向量数据库的官网文档为例搭建,存放知识库文件 demo_file1.pdfdemo_file2.md 于本地。

快速搭建

1. 登录客户端环境,进入克隆的 dify 目录的 docker 文件。
2. 执行cp .env.example .env 拷贝一份配置文件。
3. 使用 vim .env 打开配置文件,将配置文件中的 VECTOR_STORE 修改为 tencent,并配置向量数据库信息。

配置参数
参数解释
配置说明
TENCENT_VECTOR_DB_URL
向量数据库实例的内网地址或外网地址。建议使用内网方式。
请登录 向量数据库控制台,在实例详情页面网络信息区域直接复制访问地址。具体操作,请参见 查看实例信息
TENCENT_VECTOR_DB_API_KEY
向量数据库实例 API 密钥,用于进行身份认证。
请登录 向量数据库控制台,在密钥管理页面直接复制密钥。具体操作,请参见 密钥管理
TENCENT_VECTOR_DB_TIMEOUT
连接超时时间。
-
TENCENT_VECTOR_DB_USERNAME
指定访问向量数据库的用户名。
具体信息,请参见账号与权限管理
TENCENT_VECTOR_DB_DATABASE
指定已准备的向量数据库名。
Database 命名要求如下:
只能使用英文字母,数字,下划线_、中划线-,并以英文字母开头。
长度要求:[1,128]。
TENCENT_VECTOR_DB_SHARD
指定创建集合所需的分片数量。
取值类型:uint64。
取值范围:[1,100]。例如:5。
配置建议:在搜索时,全部分片是并发执行的,分片数量越多,平均耗时越低,但是过多的分片会带来额外开销而影响性能。
单分片数据量建议控制在300万以内,例如500万向量,可设置2个分片。
如果数据量小于300万,建议使用1分片。系统对1分片有特定优化,可显著提升性能。
TENCENT_VECTOR_DB_REPLICAS
指定创建集合的副本数量。
取值类型:uint64。
取值范围如下所示。搜索请求量越高的索引,建议设置越多的副本数,避免负载不均衡。
单可用区实例:0。
两可用区实例:[1,节点数-1]。
三可用区实例:[2,节点数-1]。
TENCENT_VECTOR_DB_ENABLE_HYBRID_SEARCH
指定是否开启混合检索。
true:开启。
4. 在浏览器地址栏中,输入部署的服务器的 IP 地址,进入 Dify 平台并完成账号创建,如下图所示。

5. 在 Dify 工作空间上方,选择知识库,并单击创建知识库,如下所示。

6. 在创建知识库的导航页面,上传知识库的数据源文本,单击下一步

7. 文本分段与清洗指引页面,设置分段规则,Embedding 模型以及检索方式。
7.1 分段设置区域,选择父子分段,保持默认配置。

7.2 索引方式区域,选择高质量,在 Embedding 模型的下拉列表,选择嵌入模型。
说明:
第一次使用,在 Embedding 模型的下拉列表,单击模型设置,可在模型供应商页面,选择所需的模型并安装。

7.3 检索设置区域,选择混合检索,并根据页面指引,选择检索结果排序方式。
说明:
Dify 已支持使用腾讯云向量数据库自带的稠密向量 + 稀疏向量 实现混合检索,通过双路检索的方式,整体提升 RAG 应用的效果,实现精准问答与知识检索。

8. 单击保存并处理,在如下图所示页面,知识库默认以导入的数据源文件命名,等待数据源文件嵌入完成,则知识库创建成功。

9. 在Dify工作空间上方,选择工作室,并单击创建空白应用,单击创建。如下图所示。

10. 创建空白应用页面,选择应用类型为聊天助手,并在应用名称 & 图标的输入框,输入应用名称,如下所示。

11. 在创建的工作室中,在知识库区域,单击添加,导入新建的知识库(本示例以腾讯云向量数据库的官网文档为例搭建,知识库文件 demo_file1.pdf),便可以在下方输入框,输入具体问题进行知识问答,如下图所示。