简介

本指南将引导您通过设置一个基于 Hugging Face 推理终端 的 Meilisearch REST 嵌入器,来实现语义搜索功能。

您可以通过两种方式使用 Hugging Face 和 Meilisearch:通过将嵌入器源设置为 huggingface 在本地运行模型,或者通过将嵌入器源设置为 rest 在 Hugging Face 服务器上远程运行。

前提条件

要完成本指南,您需要:

配置嵌入器

使用更新设置端点来设置嵌入器:

{
  "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 连接到此嵌入器
  • url: 将 ENDPOINT_URL 替换为你的 Hugging Face 模型端点地址
  • apiKey: 将 API_KEY 替换为你的 Hugging Face API 密钥
  • dimensions: 指定嵌入的维度,对于 baai/bge-small-en-v1.5 模型是 384 维
  • documentTemplate: 可选但推荐的模板,用于定义发送给嵌入器的数据结构
  • request: 定义 Meilisearch 发送给嵌入器的请求结构和参数
  • response: 定义嵌入器响应的结构

配置完成后,Meilisearch 会自动为你的文档生成嵌入向量。可以通过 Cloud UI 或获取任务端点来监控任务进度。

本示例使用了 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: 用于生成嵌入向量的嵌入器名称

总结

您已成功使用Hugging Face Inference Endpoints设置了嵌入器。这使您能在应用中实现纯语义搜索功能。

如需了解其他嵌入器配置选项,请查阅嵌入器设置文档