AI 驱动搜索入门
AI 驱动搜索使用大型语言模型(LLMs)来检索搜索结果。本教程将向您展示如何配置 OpenAI 嵌入器并执行首次搜索。
AI 驱动搜索,有时也称为向量搜索或混合搜索,使用大型语言模型(LLMs)根据查询的含义和上下文检索搜索结果。
本教程将引导您在 Meilisearch 项目中配置 AI 驱动搜索。您将了解如何使用 OpenAI 设置嵌入器、生成文档嵌入,并执行您的首次搜索。
要求
- 一个运行中的 Meilisearch 项目
- 一个 OpenAI API 密钥
- 一个命令行控制台
创建新索引
首先,创建一个新的 Meilisearch 项目。如果您是首次使用 Meilisearch,请遵循快速入门,然后再回到本教程。
接下来,创建一个 kitchenware
索引,并将此厨具产品数据集添加到其中。Meilisearch 处理您的请求需要一些时间,但在数据索引时您可以继续下一步。
使用 OpenAI 生成嵌入
在此步骤中,您将配置一个 OpenAI 嵌入器。Meilisearch 使用嵌入器将文档转换为嵌入,这些嵌入是文档含义和上下文的数学表示。
在您的文本编辑器中打开一个空白文件。您将仅使用此文件一步步构建嵌入器,因此如果您打算一次性完成本教程,则无需保存它。
选择一个嵌入器名称
在您的空白文件中,创建您的 embedder
对象
products-openai
是本教程中您的嵌入器的名称。您可以随意命名嵌入器,但请尽量保持其简单、简短且易于记忆。
选择一个嵌入器源
Meilisearch 依赖第三方服务来生成嵌入。这些服务通常被称为嵌入器源。
向您的嵌入器对象添加一个新的 source
字段
Meilisearch 支持多种嵌入器源。本教程使用 OpenAI,因为它是一个适用于大多数用例的良好选择。
选择一个嵌入器模型
模型提供嵌入器处理文档所需的信息。
向您的嵌入器对象添加一个新的 model
字段
每个嵌入器服务都支持针对特定用例的不同模型。text-embedding-3-small
是一种适用于通用场景的经济高效的模型。
创建您的 API 密钥
登录 OpenAI,如果首次使用,请创建一个账户。使用OpenAI 的网页界面生成一个新的 API 密钥。
将 apiKey
字段添加到您的嵌入器
将 OPEN_AI_API_KEY
替换为您自己的 API 密钥。
本教程可以使用任何密钥层级。在生产环境中,请至少使用Tier 2 密钥。
设计提示模板
Meilisearch 嵌入器只接受文本输入,但文档可以是包含不同类型数据的复杂对象。这意味着您必须将文档转换为单个文本字段。Meilisearch 使用 Liquid(一种开源模板语言)来帮助您完成此操作。
一个好的模板应该简短,并且只包含文档最重要的信息。将以下 documentTemplate
添加到您的嵌入器中
此模板首先给出文档的一般上下文:An object used in a kitchen
(厨房中使用的物品)。然后添加每个文档特有的信息:doc
代表您的文档,您可以使用点表示法访问其任何属性。name
是一个属性,其值可以是 wooden spoon
(木勺)或 rolling pin
(擀面杖)等。由于它存在于此数据集中的所有文档中,并用少量词语描述了产品,因此将其包含在模板中是一个不错的选择。
创建嵌入器
您的嵌入器对象已准备就绪。通过更新索引设置将其发送到 Meilisearch
将 MEILISEARCH_URL
替换为您的 Meilisearch 项目地址,并将 OPEN_AI_API_KEY
替换为您的 OpenAI API 密钥。
Meilisearch 和 OpenAI 将开始处理您的文档并更新您的索引。这可能需要一些时间,但一旦完成,您就可以执行 AI 驱动搜索了。
执行 AI 驱动搜索
AI 驱动搜索与基本文本搜索非常相似。您必须向 /search
端点发出包含 q
和 hybrid
参数的请求
在本教程中,hybrid
是一个只包含 embedder
字段的对象。
Meilisearch 将随后返回语义匹配和全文匹配的等量混合结果。
总结
恭喜!您已创建一个索引,向其中添加了一个小型数据集,并激活了 AI 驱动搜索。然后,您使用 OpenAI 从您的文档中生成了嵌入,并执行了首次 AI 驱动搜索。
后续步骤
现在您已经对设置和执行 AI 驱动搜索所需的基本步骤有了初步了解,您可能希望尝试在自己的应用程序中实现此功能。
有关使用其他服务实现 AI 驱动搜索的实用信息,请查阅我们的指南部分。您将在其中找到针对 LangChain 和 Cloudflare 等嵌入器的具体说明。
有关更深入的信息,请查阅 嵌入器设置 和 hybrid
搜索参数 的 API 参考。