思考在什么情况下会使用到高质量索引模式呢?第1种情况是在知识库中上传文档,文档被拆分为段落后需要进行编码(增加);第2种情况是在召回测试的时候,需要对query
进行编码(查询);第3种情况是当文档中的段落增加和更新时需要进行编码(增加和更新)。索引模式是针对知识库设置的,即对该知识库中所有的文档都生效。本文主要解释Dify
中的高质量索引模式实现过程。
一.高质量索引模式操作
调用 大模型(比如OpenAI
) 的嵌入接口进行处理,以在用户查询时提供更高的准确度。可在模型供应商中设置默认的系统推理模型、Embedding
模型和Rerank
模型。
在datasets
数据表中会记录使用的embedding_model
、embedding_model_provider
、retrieval_model
。其中retrieval_model
内容格式如下:
{"top_k": 2,"search_method": "semantic_search","reranking_model": {"reranking_model_name": "","reranking_provider_name": ""},"score_threshold": null,"reranking_enable": false,"score_threshold_enabled": false
}
semantic_search
就是向量检索,即通过生成查询嵌入并查询与其向量表示最相似的文本分段。除此外还有全文检索(索引文档中的所有词汇,从而允许用户查询任意词汇,并返回包含这些词汇的文本片段)和混合检索(同时执行全文检索和向量检索,并应用重排序步骤,从两类查询结果中选择匹配用户问题的最佳结果,需配置Rerank
模型API
)。