开始使用 AI 驱动的搜索
AI 驱动的搜索利用大型语言模型(LLM)来检索搜索结果。本教程将展示如何配置 OpenAI 嵌入器并执行首次搜索。
AI 驱动的搜索,有时也称为向量搜索或混合搜索,利用大语言模型(LLMs)根据查询的语义和上下文来检索搜索结果。
本教程将引导您在 Meilisearch 项目中配置 AI 驱动的搜索功能。您将学习如何设置 OpenAI 的嵌入器(embedder)、生成文档嵌入向量,以及执行首次搜索。
前提条件
- 正在运行的 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 的嵌入器(embedder)仅接受文本输入,但文档可能是包含不同类型数据的复杂对象。这意味着您需要将文档转换为单个文本字段。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文档。