使用 Voyage AI embeddings 的语义搜索
简介
本指南将引导你完成使用 Voyage AI embeddings 设置 Meilisearch 以启用语义搜索功能的过程。通过利用 Meilisearch 的 AI 功能和 Voyage AI 的 embedding API,你可以增强搜索体验并检索更相关的结果。
要求
要遵循本指南,你需要:
- 一个运行版本 >=1.13 的 Meilisearch Cloud 项目
- 一个 Voyage AI 账户以及用于生成 embeddings 的 API 密钥。你可以在 Voyage AI 注册 Voyage AI 账户。
- 无需后端。
设置 Meilisearch
要在 Meilisearch 中设置 embedder,你需要将其配置到你的设置中。你可以参考 Meilisearch 文档,了解有关更新 embedder 设置的更多详细信息。
Voyage AI 提供以下 embedding 模型:
voyage-large-2-instruct
:1024 维度voyage-multilingual-2
:1024 维度voyage-large-2
:1536 维度voyage-2
:1024 维度
以下是 Voyage AI 的 embedder 设置示例:
{
"voyage": {
"source": "rest",
"apiKey": "<Voyage AI API Key>",
"dimensions": 1024,
"documentTemplate": "<Custom template (Optional, but recommended)>",
"url": "https://api.voyageai.com/v1/embeddings",
"request": {
"model": "voyage-2",
"input": ["{{text}}", "{{..}}"]
},
"response": {
"data": [
{
"embedding": "{{embedding}}"
},
"{{..}}"
]
}
}
}
在此配置中:
source
:指定 embedder 的来源,对于使用 REST API,设置为 "rest"。apiKey
:将<Voyage AI API Key>
替换为你的实际 Voyage AI API 密钥。dimensions
:指定 embeddings 的维度。对于voyage-2
、voyage-large-2-instruct
和voyage-multilingual-2
,设置为 1024;对于voyage-large-2
,设置为 1536。documentTemplate
:可选地,你可以提供一个 自定义模板,用于从你的文档生成 embeddings。url
:指定 Voyage AI API 端点的 URL。request
:定义 Voyage AI API 的请求结构,包括模型名称和输入参数。response
:定义 Voyage AI API 的预期响应结构,包括 embedding 数据。
配置 embedder 设置后,Meilisearch 将自动为你的文档生成 embeddings 并将其存储在向量存储中。
请注意,大多数第三方工具都有速率限制,这由 Meilisearch 管理。如果你拥有免费账户,索引过程可能需要一些时间,但 Meilisearch 将使用重试策略来处理它。
建议监控任务队列以确保一切运行顺利。你可以使用 Cloud UI 或 Meilisearch API 访问任务队列。
测试语义搜索
设置好 embedder 后,你现在可以使用 Meilisearch 执行语义搜索。当你发送搜索查询时,Meilisearch 将使用配置的 embedder 为查询生成 embedding,然后使用它在向量存储中查找语义上最相似的文档。要执行语义搜索,你只需发出正常的搜索请求,但包含 hybrid 参数:
{
"q": "<Query made by the user>",
"hybrid": {
"semanticRatio": 1,
"embedder": "voyage"
}
}
在此请求中:
q
:表示用户的搜索查询。hybrid
:指定混合搜索的配置。semanticRatio
:允许你控制语义搜索和传统搜索之间的平衡。值为 1 表示纯语义搜索,而值为 0 表示全文搜索。你可以调整此参数以实现混合搜索体验。embedder
:用于生成 embeddings 的 embedder 的名称。确保使用与 embedder 配置中指定的名称相同的名称,在本例中为 "voyage"。
你可以使用 Meilisearch API 或客户端库来执行搜索并检索基于语义相似性的相关文档。
结论
按照本指南,你现在应该已经使用 Voyage AI embedding 设置了 Meilisearch,从而使你能够在应用程序中利用语义搜索功能。Meilisearch 的自动批处理和高效的 embedding 处理使其成为将语义搜索集成到项目中的强大选择。
要探索嵌入器的更多配置选项,请查阅关于嵌入器设置可能性的详细文档。