使用 Mistral 嵌入的語義搜尋
簡介
本指南將引導您完成使用 Mistral 嵌入設定 Meilisearch 的流程,以啟用語義搜尋功能。透過利用 Meilisearch 的 AI 功能和 Mistral 的嵌入 API,您可以增強您的搜尋體驗並檢索更相關的結果。
要求
若要遵循本指南,您需要
- 一個 Meilisearch Cloud 專案,執行 1.10 或以上版本,並已啟用向量儲存。
- 一個具有用於產生嵌入的 API 金鑰的 Mistral 帳戶。您可以在 Mistral 註冊 Mistral 帳戶。
- 不需要後端。
設定 Meilisearch
若要在 Meilisearch 中設定嵌入器,您需要根據您的設定進行配置。您可以參考Meilisearch 文件,以取得有關更新嵌入器設定的更多詳細資訊。
在使用 Mistral 產生嵌入時,您需要使用模型 mistral-embed
。與其他一些服務不同,Mistral 目前僅提供一個嵌入模型。
以下是 Mistral 的嵌入器設定範例
{
"mistral": {
"source": "rest",
"apiKey": "<Mistral API Key>",
"dimensions": 1024,
"documentTemplate": "<Custom template (Optional, but recommended)>",
"url": "https://api.mistral.ai/v1/embeddings",
"request": {
"model": "mistral-embed",
"input": ["{{text}}", "{{..}}"]
},
"response": {
"data": [
{
"embedding": "{{embedding}}"
},
"{{..}}"
]
}
}
}
在此配置中
source
:指定嵌入器的來源,設定為「rest」,以使用 REST API。apiKey
:將<Mistral API 金鑰>
替換為您實際的 Mistral API 金鑰。dimensions
:指定嵌入的維度,對於mistral-embed
模型,設定為 1024。documentTemplate
:您可以選擇提供一個自訂範本,從您的文件中產生嵌入。url
:指定 Mistral API 端點的 URL。request
:定義 Mistral API 的請求結構,包括模型名稱和輸入參數。response
:定義 Mistral API 預期的回應結構,包括嵌入資料。
設定嵌入器設定後,Meilisearch 會自動為您的文件產生嵌入,並將其儲存在向量儲存中。
請注意,大多數第三方工具都有速率限制,這些限制由 Meilisearch 管理。如果您有免費帳戶,索引過程可能需要一些時間,但 Meilisearch 將使用重試策略來處理。
建議監控任務佇列,以確保一切順利執行。您可以使用 Cloud UI 或Meilisearch API 存取任務佇列。
測試語義搜尋
在設定好嵌入器後,您現在可以使用 Meilisearch 執行語意搜尋。當您發送搜尋查詢時,Meilisearch 會使用已設定的嵌入器為該查詢產生一個嵌入向量,然後使用該向量在向量儲存庫中找到語意上最相似的文件。要執行語意搜尋,您只需發送一個普通的搜尋請求,但要包含 hybrid 參數。
{
"q": "<Query made by the user>",
"hybrid": {
"semanticRatio": 1,
"embedder": "mistral"
}
}
在此請求中:
q
:代表使用者的搜尋查詢。hybrid
:指定混合搜尋的設定。semanticRatio
:允許您控制語意搜尋和傳統搜尋之間的平衡。值為 1 表示純語意搜尋,而值為 0 表示全文搜尋。您可以調整此參數以實現混合搜尋體驗。embedder
:用於產生嵌入向量的嵌入器名稱。請確保使用與嵌入器設定中指定的名稱相同的名稱,在本例中為 "mistral"。
您可以使用 Meilisearch API 或客戶端函式庫執行搜尋,並根據語意相似性檢索相關的文件。
結論
遵循本指南後,您現在應該已設定好 Meilisearch 和 Mistral 嵌入,讓您能夠在應用程式中利用語意搜尋功能。Meilisearch 的自動批次處理和高效的嵌入向量處理使其成為將語意搜尋整合到專案中的強大選擇。
要探索嵌入器的更多設定選項,請查閱關於嵌入器設定可能性的詳細文件。