使用 OpenAI 嵌入的语义搜索

    简介

    本指南将引导你完成使用 OpenAI 嵌入设置 Meilisearch 以启用语义搜索功能的过程。通过利用 Meilisearch 的 AI 功能和 OpenAI 的嵌入 API,你可以增强搜索体验并检索更相关的结果。

    要求

    要遵循本指南,你需要

    设置 Meilisearch

    要在 Meilisearch 中设置嵌入器,你需要将其配置到你的设置中。你可以参考 Meilisearch 文档 以获取有关更新嵌入器设置的更多详细信息。

    OpenAI 提供三种主要的嵌入模型

    这是一个 OpenAI 嵌入器设置的示例

    {
      "openai": {
        "source": "openAi",
        "apiKey": "<OpenAI API Key>",
        "dimensions": 1536,
        "documentTemplate": "<Custom template (Optional, but recommended)>",
        "model": "text-embedding-3-small"
      }
    }
    

    在此配置中

    一旦你配置了嵌入器设置,Meilisearch 将自动为你的文档生成嵌入并将它们存储在向量存储中。

    请注意,OpenAI 有速率限制,这由 Meilisearch 管理。如果你有一个免费账户,索引过程可能需要一些时间,但 Meilisearch 将使用重试策略来处理它。

    建议监控任务队列以确保一切运行顺利。你可以使用 Cloud UI 或 Meilisearch API 访问任务队列

    设置好嵌入器后,你现在可以使用 Meilisearch 执行语义搜索。当你发送搜索查询时,Meilisearch 将使用配置的嵌入器为查询生成嵌入,然后使用它在向量存储中查找语义上最相似的文档。要执行语义搜索,你只需发出一个普通的搜索请求,但包含 hybrid 参数

    {
      "q": "<Query made by the user>",
      "hybrid": {
        "semanticRatio": 1,
        "embedder": "openai"
      }
    }
    

    在此请求中

    您可以使用 Meilisearch API 或客户端库来执行搜索并检索基于语义相似性的相关文档。

    结论

    通过遵循本指南,您现在应该已经设置了带有 OpenAI 嵌入的 Meilisearch,使您能够在应用程序中利用语义搜索功能。Meilisearch 的自动批处理和高效的嵌入处理使其成为将语义搜索集成到项目中的强大选择。

    要探索有关嵌入器配置选项的更多信息,请查阅关于嵌入器设置可能性的详细文档