使用 Cloudflare Worker AI 嵌入的語義搜尋
簡介
本指南將逐步引導您設定 Meilisearch 和 Cloudflare Worker AI 嵌入,以啟用語義搜尋功能。藉由利用 Meilisearch 的 AI 功能和 Cloudflare Worker AI 的嵌入 API,您可以增強搜尋體驗並檢索更相關的結果。
需求
若要遵循本指南,您需要
- 一個執行 1.10 或更高版本且已啟用向量儲存的Meilisearch Cloud專案。
- 一個具有 Worker AI 存取權和 API 金鑰的 Cloudflare 帳戶。您可以在 Cloudflare 註冊 Cloudflare 帳戶。
- 您的 Cloudflare 帳戶 ID。
- 不需要後端。
設定 Meilisearch
若要在 Meilisearch 中設定嵌入器,您需要針對您的設定進行配置。您可以參考Meilisearch 文件,以取得關於更新嵌入器設定的更多詳細資訊。
Cloudflare Worker AI 提供以下嵌入模型
baai/bge-base-en-v1.5
:768 個維度baai/bge-large-en-v1.5
:1024 個維度baai/bge-small-en-v1.5
:384 個維度
以下是 Cloudflare Worker AI 的嵌入器設定範例
{
"cloudflare": {
"source": "rest",
"apiKey": "<API Key>",
"dimensions": 384,
"documentTemplate": "<Custom template (Optional, but recommended)>",
"url": "https://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/ai/run/@cf/<Model>",
"request": {
"text": ["{{text}}", "{{..}}"]
},
"response": {
"result": {
"data": ["{{embedding}}", "{{..}}"]
}
}
}
}
在此配置中
source
:指定嵌入器的來源,設定為「rest」表示使用 REST API。apiKey
:將<API 金鑰>
取代為您的實際 Cloudflare API 金鑰。dimensions
:指定嵌入的維度。baai/bge-small-en-v1.5
設定為 384,baai/bge-base-en-v1.5
設定為 768,或baai/bge-large-en-v1.5
設定為 1024。documentTemplate
:您可以選擇性地提供一個自訂範本,以從您的文件中產生嵌入。url
:指定 Cloudflare Worker AI API 端點的 URL。request
:定義 Cloudflare Worker AI API 的請求結構,包括輸入參數。response
:定義 Cloudflare Worker AI API 的預期回應結構,包括嵌入資料。
在設定配置中的 url
欄位時請小心。URL 包含您的 Cloudflare 帳戶 ID (<ACCOUNT_ID>
) 和您要使用的特定模型 (<Model>
)。請務必將這些預留位置取代為您的實際帳戶 ID 和所需的模型名稱 (例如,baai/bge-small-en-v1.5
)。
一旦您配置了嵌入器設定,Meilisearch 將自動為您的文件產生嵌入並將其儲存在向量儲存區中。
請注意,Cloudflare 可能有速率限制,Meilisearch 會管理此限制。如果您擁有免費帳戶,索引程序可能需要一些時間,但 Meilisearch 將使用重試策略來處理。
建議監控任務佇列,以確保一切運作順暢。您可以使用 Cloud UI 或 Meilisearch API 存取任務佇列。
測試語義搜尋
設定好嵌入器後,您現在可以使用 Meilisearch 執行語義搜尋。當您發送搜尋查詢時,Meilisearch 將使用已配置的嵌入器為查詢產生嵌入向量,然後使用它來尋找向量儲存區中最語義相似的文件。要執行語義搜尋,您只需發出正常的搜尋請求,但需包含混合(hybrid)參數。
{
"q": "<Query made by the user>",
"hybrid": {
"semanticRatio": 1,
"embedder": "cloudflare"
}
}
在此請求中
q
:代表用戶的搜尋查詢。hybrid
:指定混合搜尋的配置。semanticRatio
:允許您控制語義搜尋和傳統搜尋之間的平衡。值為 1 表示純語義搜尋,而值為 0 表示全文搜尋。您可以調整此參數以實現混合搜尋體驗。embedder
:用於產生嵌入向量的嵌入器名稱。請務必使用與嵌入器配置中指定的名稱相同的名稱,在本例中為「cloudflare」。
您可以使用 Meilisearch API 或客戶端函式庫來執行搜尋,並根據語義相似性檢索相關文件。
結論
依照本指南操作後,您現在應該已設定好 Meilisearch 與 Cloudflare Worker AI 嵌入,讓您能夠在您的應用程式中利用語義搜尋功能。Meilisearch 的自動批次處理和高效的嵌入處理使其成為將語義搜尋整合到您的專案中的強大選擇。
要探索有關嵌入器的更多配置選項,請查閱有關嵌入器設定可能性的詳細文件。