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