微信扫码
添加专属顾问
我要投稿
导读
登录 TiDB Cloud 并创建 cluster
选择 Serverless并设置 Region 为 Frankfurt (eu-central-1)
开启 Vector Search 并设置集群名
创建集群
create schema dify;
# 将 VECTOR_STORE 修改为 tidb_vector,文件中的默认值是 weaviate
VECTOR_STORE: tidb_vector
# 将以下配置改为保存好的连接 TiDB 配置
TIDB_VECTOR_HOST: xxx.eu-central-1.prod.aws.tidbcloud.com
TIDB_VECTOR_PORT: 4000
TIDB_VECTOR_USER: xxx.root
TIDB_VECTOR_PASSWORD: xxxxxx
TIDB_VECTOR_DATABASE: dify
docker compose up -d
向量检索:基于 ANN 查询的检索,Reranker 模型为可选
全文检索:基于 BM25 检索,Reranker 模型为可选(目前 TiDB Vector 类型未支持)
混合(向量+全文):ANN + BM25 检索,Reranker 模型为必选
CREATE TABLE IF NOT EXISTS ${collection_name} (
# id: 这里的id是在 Dify 中生成 uuid
id CHAR(36) PRIMARY KEY,
# text: 分片后的文本内容
text TEXT NOT NULL,
# meta: 元数据,记录数据集id、文档id、知识库id等,用于条件查询
meta JSON NOT NULL,
# vector: 分片向量,需要设置向量维度
vector VECTOR<FLOAT>(${dimension}) NOT NULL COMMENT "hnsw(distance=${distance_func})",
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
${dimension} 表示向量的维度,这个取决于选择的 Embedding 模型。
${distance_func} 表示用户设置的距离度量方法,目前支持的值有cosine 和 l2 ,目前仅支持cosine。
SELECT meta, text FROM (
SELECT meta, text, ${tidb_func}(vector, "${query_vector}") as distance
FROM ${collection_name}
ORDER BY distance
LIMIT ${top_k}
) t WHERE distance < ${distance};
${query_vector} 表示查询向量,即用户问题向量化后的结果
${tidb_func} 表示 TiDB Vector 中支持的向量距离度量防范,目前支持的方法有 Vec_Cosine_Distance 和 Vec_l2_Distance
${top_k} 表示结果 TopK 的具体个数
${distance} 表示向量库中的节点离查询节点的距离,Dify 知识库可以设置距离/分数阈值
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2025-03-21
【DIFY】工作流与业务结合实战
2025-03-21
Cursor+Dify:新手秒变大神,提升Agent开发效率(三)零代码生成AI工作流
2025-03-20
手把手教你:如何让同事访问你内网部署的 Dify 知识库
2025-03-20
Dify 实现DeepResearch工作流拆解并再看升级版Dify能否搭建出Manus?
2025-03-19
Dify 节点实战分享(一)
2025-03-18
扩展插件 Endpoint:为 Dify 注入 Serverless 新能力
2025-03-18
Dify 架构解析与私有化部署
2025-03-18
Dify使用教程(创建应用)
2024-12-24
2024-04-25
2024-07-16
2024-04-24
2024-07-20
2024-05-08
2024-06-21
2024-05-09
2024-08-06
2024-05-07