使用 Hugging Face Inference Endpoints 进行语义搜索
简介
本指南将引导你完成使用 Meilisearch REST embedder 和 Hugging Face Inference Endpoints 设置以启用语义搜索功能的过程。
`rest` 还是 `huggingface`?
你可以通过两种方式将 Hugging Face 和 Meilisearch 结合使用:通过将 embedder 源设置为 huggingface
在本地运行模型,或者通过将 embedder 源设置为 rest
在 Hugging Face 的服务器中远程运行。
要求
要遵循本指南,你需要:
- 一个运行版本 >=1.13 的 Meilisearch Cloud 项目
- 一个拥有已部署 inference endpoint 的 Hugging Face 帐户
- 你的 Hugging Face 帐户上已部署模型的 endpoint URL 和 API 密钥
配置 embedder
使用 update settings endpoint 设置 embedder
{
"hf-inference": {
"source": "rest",
"url": "ENDPOINT_URL",
"apiKey": "API_KEY",
"dimensions": 384,
"documentTemplate": "CUSTOM_LIQUID_TEMPLATE",
"request": {
"inputs": ["{{text}}", "{{..}}"],
"model": "baai/bge-small-en-v1.5"
},
"response": ["{{embedding}}", "{{..}}"]
}
}
在此配置中:
source
:声明 Meilisearch 应通过其 REST API 连接到此 embedderurl
:将ENDPOINT_URL
替换为你的 Hugging Face 模型 endpoint 的地址apiKey
:将API_KEY
替换为你的 Hugging Face API 密钥dimensions
:指定嵌入的维度,对于baai/bge-small-en-v1.5
为 384documentTemplate
:一个可选但推荐的 模板,用于你将发送给 embedder 的数据request
:定义 Meilisearch 将发送给 embedder 的请求的结构和参数response
:定义 embedder 响应的结构
配置 embedder 后,Meilisearch 将自动为你的文档生成嵌入。使用 Cloud UI 或 get task endpoint 监控任务。
注意
此示例使用 BAAI/bge-small-en-v1.5 作为其模型,但 Hugging Face 提供了 可能更适合你的数据集的其他选项。
执行语义搜索
设置 embedder 后,你现在可以执行语义搜索。使用 hybrid
搜索参数发出搜索请求,并将 semanticRatio
设置为 1
{
"q": "QUERY_TERMS",
"hybrid": {
"semanticRatio": 1,
"embedder": "hf-inference"
}
}
在此请求中:
q
:搜索查询hybrid
:启用 AI 驱动的搜索功能semanticRatio
:控制语义搜索和全文搜索之间的平衡。将其设置为1
意味着你将仅收到语义搜索结果embedder
:用于生成嵌入的 embedder 的名称
结论
你已使用 Hugging Face Inference Endpoints 设置了 embedder。这使你可以在你的应用程序中使用纯语义搜索功能。
有关其他 embedder 配置选项的更多信息,请查阅 embedder 设置文档。