AI 语义搜索
AI 语义搜索是 Cloudreve 基于 Meilisearch 提供的智能搜索方式。与传统的全文搜索不同,语义搜索基于查询的含义和上下文返回结果,而非仅依赖关键词匹配。
工作原理
语义搜索通过 LLM 提供商(如 OpenAI、Hugging Face 等)生成向量嵌入(vector embeddings),将文档内容和搜索词转化为语义向量,然后通过比较向量相似度找到语义相关的搜索结果。
开启语义搜索后,Cloudreve 默认同时返回全文搜索和语义搜索的结果(即混合搜索),两者互补以提供更精准的搜索体验。
全文搜索 vs AI 语义搜索
| 全文搜索 | AI 语义搜索 | |
|---|---|---|
| 匹配方式 | 关键词精确匹配 | 语义相似度匹配 |
| 适用场景 | 用户熟悉目标关键词,需要精确匹配 | 查询模糊或冗长,需要理解语义 |
| 资源消耗 | 较低 | 可能产生第三方模型费用 |
| 搜索示例 | 搜索 "旅行计划" 只匹配包含该关键词的文档 | 搜索 "旅行计划" 也能匹配含有 "出行安排"、"度假行程" 等语义相关的文档 |
前置条件
- Cloudreve 中已启用 全文搜索。
- 选择适合的嵌入模型和提供商,如 OpenAI、Hugging Face 等。有关如何选择模型,可参考 Meilisearch 文档。
开启 AI 混合搜索
前往 Cloudreve 管理面板 -> 文件系统 -> 全文搜索 -> AI 语义搜索 开启 AI 语义搜索,并根据模型提供商填写嵌入配置:
目前, OpenAI 提供下面三种主流嵌入模型:
text-embedding-3-large: 3,072 dimensionstext-embedding-3-small: 1,536 dimensionstext-embedding-ada-002: 1,536 dimensions
在 Cloudreve 中填写下面嵌入配置:
json
{
"source": "openAi",
"apiKey": "<OpenAI API Key>",
"dimensions": 1536,
"model": "text-embedding-3-small"
}其中:
apiKey填入 OpenAI 的 API 密钥。dimensions填入嵌入模型的维度,比如1536。model填入嵌入模型的名称,比如text-embedding-3-small。
保存设置后,无需重建索引,Meilisearch 会自动使用嵌入模型为已有索引生成嵌入向量。