Azure AI 搜尋中 AI 擴充的秘訣
本文包含可協助您開始使用 AI 擴充和編製索引期間所使用的技能的秘訣。
秘訣 1:從小規模且簡單的內容著手
Azure 入口網站中的匯入資料精靈和匯入和向量化資料精靈都支援 AI 擴充。 若未撰寫任何程式代碼,您可以建立及檢查擴充管線中使用的所有物件:索引、索引子、資料來源和技能。
從簡單內容著手的另一個方式是,建立一個資料來源,其中只有少數文件,或其資料表中的資料列代表要編制索引的文件。 小型資料集是提高尋找和修正問題速度的最佳方式。透過端對端管線執行您的範例,並檢查結果是否符合您的需求。 一旦您對結果感到滿意,就可以將更多檔案新增至您的資料來源。
祕訣 2:即使發生失敗的狀況,也請找出可行的部分
有時候,輕微的失敗狀況也會使索引子停止運作。 如果您做好逐一修正問題的計劃,這就不構成妨礙。 不過,您可能會想要忽略特定類型的錯誤,而讓索引子能繼續執行,以便您查看哪些流程實際上是可運作的。
若要忽略開發期間的錯誤,請將 maxFailedItems
和 maxFailedItemsPerBatch
設定為 -1 作為索引子定義的一部分。
{
// rest of your indexer definition
"parameters":
{
"maxFailedItems":-1,
"maxFailedItemsPerBatch":-1
}
}
注意
最佳做法是將生產工作負載的 maxFailedItems
和 maxFailedItemsPerBatch
設定為 0
秘訣 3:使用偵錯工作階段來排解問題
偵錯工作階段是視覺化編輯器,可顯示技能的相依性圖形、輸入和輸出和定義。 其運作方式是使用目前的索引子和技能組態,從您的搜尋索引載入單一文件。 然後,您可以執行整個技能,範圍設定為單一文件。 在偵錯工作階段中,您可以識別並解析錯誤、驗證變更,以及認可父技能的變更。 如需逐步解說,請參閱教學課程:偵錯工作階段。
秘訣 4:未出現預期的內容
如果找不到內容,您可以在 Azure 入口網站中查看遭到捨棄的文件。 在搜尋服務頁面中,開啟 [索引子] ,並查看 [成功的文件] 資料行。 按一下跳至索引子執行歷程記錄,以檢閱特定錯誤。
如果問題與檔案大小有關,您可能會看到如下的錯誤:「Blob <file-name> 的大小為 <file-size> 個位元組,已超出您目前服務層級的文件擷取大小上限。」如需關於索引子限制的詳細資訊,請參閱服務限制。
無法顯示內容的另一個原因,可能與輸入/輸出對應錯誤有關。 例如,輸出目標名稱為 "People",但索引欄位名稱為小寫的 "people"。 系統可能會為整個管線傳回 201 成功訊息,因此您認為索引編製成功,而事實上欄位卻是空白的。
秘訣 5:將處理延伸至執行時間上限以外
影像分析即使在簡單的情況下也需要密集運算,因此在影像時特別大型或複雜時,處理時間可能會超過允許的時間上限。
對於具有技能的索引子,大部分層級的技能執行上限為 2 小時。 如果技能處理無法在此期間內完成,您可以將索引子放入 2 小時的週期性排程中,讓索引子從中斷之處繼續處理。
排程的索引子將會從最後一份已知的正常文件繼續進行。 藉由使用週期性的排程,索引子將可持續處理影像待辦項目達數小時或數天,直到所有未處理的影像皆處理完成為止。 如需排程語法的詳細資訊,請參閱排程索引子。
注意
如果索引子設定為特定排程,但在每次執行時一再地在同一份文件上失敗,則索引子會以較不頻繁的間隔開始執行 (最多每隔 24 小時至少執行一次) 直到再次順利推進為止。 如果您認為您已修正導致索引子停滯在特定時間點的問題,則可以執行索引子的隨選執行,如果成功推進,索引子會再次回到其設定的排程間隔。
提示 6:提高索引編製輸送量
對於平行索引編製,請將您的資料散佈到多個容器中,或是相同容器內的多個虛擬資料夾中。 接著,請建立多個資料來源和索引子配對。 所有索引子將可使用相同的技能集,並寫入至相同的目標搜尋索引,而讓您的搜尋應用程式無須辨識此分割。