使用 OpenAI 嵌入的語意搜尋
簡介
本指南將引導您完成設定 Meilisearch 和 OpenAI 嵌入的過程,以啟用語意搜尋功能。透過利用 Meilisearch 的 AI 功能和 OpenAI 的嵌入 API,您可以增強您的搜尋體驗並檢索更相關的結果。
需求
要遵循本指南,您需要:
- 一個Meilisearch Cloud專案,執行 1.10 或以上版本,並啟用向量儲存。
- 一個具有用於產生嵌入的 API 金鑰的 OpenAI 帳戶。您可以在 OpenAI註冊一個 OpenAI 帳戶。
- 不需要後端。
設定 Meilisearch
要在 Meilisearch 中設定嵌入器,您需要根據您的設定進行配置。您可以參考Meilisearch 文件,以取得有關更新嵌入器設定的更多詳細資訊。
OpenAI 提供三種主要的嵌入模型:
text-embedding-3-large
:3,072 個維度text-embedding-3-small
:1,536 個維度text-embedding-ada-002
:1,536 個維度
以下是 OpenAI 的嵌入器設定範例:
{
"openai": {
"source": "openAi",
"apiKey": "<OpenAI API Key>",
"dimensions": 1536,
"documentTemplate": "<Custom template (Optional, but recommended)>",
"model": "text-embedding-3-small"
}
}
在此設定中:
source
:指定嵌入器的來源,設定為「openAi」表示使用 OpenAI 的 API。apiKey
:將<OpenAI API Key>
替換為您的實際 OpenAI API 金鑰。dimensions
:指定嵌入的維度。對於text-embedding-3-small
和text-embedding-ada-002
設定為 1536,對於text-embedding-3-large
設定為 3072。documentTemplate
:您可以選擇提供自訂範本,以從您的文件中產生嵌入。model
:指定用於產生嵌入的 OpenAI 模型。從text-embedding-3-large
、text-embedding-3-small
或text-embedding-ada-002
中選擇。
設定嵌入器設定後,Meilisearch 將自動為您的文件產生嵌入,並將其儲存在向量儲存中。
請注意,OpenAI 有速率限制,由 Meilisearch 管理。如果您是免費帳戶,索引建立過程可能需要一些時間,但 Meilisearch 將使用重試策略來處理。
建議監控任務佇列以確保一切順利運行。您可以使用 Cloud UI 或 Meilisearch API 存取任務佇列。
測試語意搜尋
設定嵌入器後,您現在可以使用 Meilisearch 執行語意搜尋。當您發送搜尋查詢時,Meilisearch 將使用設定的嵌入器為查詢產生嵌入,然後使用它來尋找向量儲存中最語意相似的文件。要執行語意搜尋,您只需發出正常的搜尋請求,但包含混合參數即可。
{
"q": "<Query made by the user>",
"hybrid": {
"semanticRatio": 1,
"embedder": "openai"
}
}
在此請求中:
q
:表示使用者的搜尋查詢。hybrid
:指定混合搜尋的配置。semanticRatio
:允許您控制語意搜尋和傳統搜尋之間的平衡。值為 1 表示純語意搜尋,而值為 0 表示全文搜尋。您可以調整此參數以實現混合搜尋體驗。embedder
:用於產生嵌入的嵌入器名稱。請確保使用與嵌入器設定中指定的相同名稱,在本例中為「openai」。
您可以使用 Meilisearch API 或用戶端程式庫來執行搜尋,並根據語意相似性檢索相關文件。
結論
透過遵循本指南,您現在應該已經設定好 Meilisearch 和 OpenAI 嵌入,使您能夠在應用程式中利用語意搜尋功能。Meilisearch 的自動批次處理和嵌入的高效處理使其成為將語意搜尋整合到專案中的強大選擇。
要探索更多嵌入器的設定選項,請參閱有關嵌入器設定可能性的詳細文件。