AI 搜尋快速入門 實驗性

    AI 搜尋,有時也稱為向量搜尋和混合搜尋,是一種實驗性技術,它使用 大型語言模型 根據查詢的含義和上下文來檢索搜尋結果。

    本教學將引導您在您的 Meilisearch 專案中設定 AI 搜尋。您將啟用向量儲存設定,使用 OpenAI 產生文件嵌入,並執行您的第一次搜尋。

    需求

    建立一個新的索引

    建立一個 kitchenware 索引,並將 這個廚房用品產品資料集 新增到其中。如有必要,請參閱快速入門以獲取有關如何設定基本 Meilisearch 安裝的說明。

    首先,啟用 AI 搜尋實驗性功能。具體如何操作取決於您是使用 Meilisearch Cloud 還是 自行託管 Meilisearch

    Meilisearch Cloud 專案

    如果使用 Meilisearch Cloud,請導航到您的專案概覽並找到「實驗性功能」。然後勾選「AI 搜尋」方塊。

    A section of the project overview interface titled "Experimental features". The image shows a few options, including "Vector store".

    Meilisearch Cloud AI 搜尋候補名單

    為了確保 Meilisearch Cloud 最新 AI 搜尋產品的適當擴展,您必須先進入候補名單,然後才能啟用向量搜尋。在您的註冊獲得批准之前,您將無法在 Cloud 介面或透過 /experimental-features 路由啟用向量搜尋。

    自行託管的執行個體

    使用 /experimental-features 路由 在執行期間啟用向量搜尋

    curl \
      -X PATCH 'https://127.0.0.1:7700/experimental-features/' \
      -H 'Content-Type: application/json'  \
      --data-binary '{
        "vectorStore": true
      }'
    

    使用 OpenAI 產生向量嵌入

    接下來,您必須為資料集中的所有文件產生向量嵌入。嵌入是文件中單詞和句子含義的數學表示。Meilisearch 依賴外部提供者來產生這些嵌入。本教學使用 OpenAI。

    使用 更新 /settings 端點embedders 索引設定,以設定預設的 OpenAI 嵌入器

    curl \
      -X PATCH 'https://127.0.0.1:7700/indexes/kitchenware/settings' \
      -H 'Content-Type: application/json' \
      --data-binary '{
        "embedders": {
          "default": {
            "source":  "openAi",
            "apiKey": "OPEN_AI_API_KEY",
            "model": "text-embedding-3-small",
            "documentTemplate": "An object used in a kitchen named '{{doc.name}}'"
          }
        }
      }'
    

    OPEN_AI_API_KEY 替換為您的 OpenAI API 金鑰。在本教學中,您可以使用任何金鑰層級,但建議在生產環境中使用 第 2 層金鑰 以獲得最佳效能。

    文件範本

    documentTemplate 描述了一個簡短的 Liquid 範本。大括號 ({{) 內的文字表示點記法的文件欄位,其中 doc 表示文件本身,點號後面的字串表示文件屬性。Meilisearch 會將這些括號及其內容替換為相應的欄位值。

    產生的文字是 OpenAI 用於產生文件嵌入的提示。

    例如,廚房用具文件有三個欄位:idnameprice。如果您的 documentTemplate"一個在廚房中使用的物件,名稱為 '{{doc.name}}'",則 Meilisearch 在索引第一個文件時傳送給嵌入器的文字將是 "一個在廚房中使用的物件,名稱為 '木勺'"

    為了獲得最佳結果,請務必提供 documentTemplate。請保持範本簡短,並且只包含高度相關的資訊。這將確保最佳的索引效能和搜尋結果相關性。

    使用 qhybrid 執行 AI 驅動的搜尋,以使用您在上一步中設定的預設嵌入器來擷取搜尋結果

    curl \
      -X POST 'https://127.0.0.1:7700/indexes/kitchenware/search' \
      -H 'content-type: application/json' \
      --data-binary '{
        "q": "kitchen utensils made of wood",
        "hybrid": {
          "embedder": "default",
          "semanticRatio": 0.7
        }
      }'
    

    Meilisearch 將返回語義和全文匹配的混合結果,優先考慮與查詢的含義和上下文匹配的結果。如果您希望 Meilisearch 根據搜尋的含義和上下文返回更多結果,請將 semanticRatio 設定為大於 0.5 的值。相反,將 semanticRatio 設定為小於 0.5 的值將返回更多全文匹配。

    結論

    您已經了解如何使用 Meilisearch 和 OpenAI 設定和執行 AI 驅動的搜尋。如需更深入的資訊,請參閱嵌入器和 hybrid 搜尋參數的參考。

    AI 驅動搜尋是 Meilisearch 的一項實驗性功能,目前正在積極開發中——加入 GitHub 上的討論