使用 Jev 和 Milvus 進行搜尋
向量搜尋能找出與查詢相關的資訊。建構實用的搜尋應用程式還涉及多項決策:哪些段落真正回答了問題、是否能重複使用先前的答案,以及代理程式是否擁有足夠的證據來停止搜尋。
Milvus 和 Jev 分別負責此工作流程中的不同環節。Milvus負責儲存嵌入向量並檢索候選紀錄,並透過元資料篩選器來設定諸如產品版本或知識庫範圍等限制條件。Jev則會依據指示來評估檢索到的文字內容。您的應用程式可以利用其判斷結果來選取證據,或控制下一個搜尋步驟。
Jev 究竟做什麼?
一個 Jev 請求會提供上下文以及一個或多個判斷問題。其類型化的輸出包含:固定選項中的選擇、排序分數,以及「是/否」的機率。這些輸出讓應用程式程式碼無需解析自由格式的解釋,即可做出決策。在需要時,生成模型仍可撰寫答案或後續搜尋查詢。
舉例來說,當使用者詢問如何安裝 Atlas v2 時,Milvus 可將檢索範圍限制在 v2 文件中,並回傳關於安裝、升級及疑難排解的相關段落。接著,Jev 會評估哪些段落解釋了初始設定。應用程式將選定的證據傳遞給答案生成模型。
各模組的職責非常明確:
- 使用 Milvus 檢索:在所需的元資料限制內尋找候選內容。
- 由 Jev 進行判斷:根據問題及特定任務的標準來評估這些候選內容。
- 在應用程式程式碼中執行:重新排序結果、過濾上下文、重複使用答案或繼續搜尋。
部分決策在檢索前即已完成。Jev 可在文件進入收藏集之前,選擇搜尋範圍或評估傳入的文件。存取控制與精確篩選仍由應用程式負責。
探索搜尋情境
「使用 Jev 搜尋」系列包含九個可執行的教學指南。每個教學指南皆使用小型合成資料集,並展示檢索到的記錄、判斷結果以及隨之執行的操作。
篩選更佳的證據
- 重新排序搜尋結果:重新排列文件及編碼代理的記憶內容。關於筆記型電腦埠錯誤的記憶可能與容器連線問題相似;而更有用的記憶則記錄了實際的容器與主機修復方法。
- 過濾檢索到的上下文:在 Milvus 套用版本篩選器後,將初始安裝說明與升級及疑難排解段落區分開來。
- 重新排序圖形關係:透過同時選取「書籍至作者」的橋接關係與「作者至出生地」的關係,來回答關於書籍作者出生地的問題,並在擷取來源段落時保留該排序。
控制搜尋與答案的重用
- 決定何時停止搜尋:生成模型根據累積的證據提出搜尋建議,而 Jev 則判斷原始問題是否可解答。範例涵蓋直接回答、兩跳問題,以及因觸及搜尋限制而無法獲得答案的事實。
- 路由搜尋查詢:選擇文件、帳單或記憶體搜尋,然後套用相應的 Milvus 篩選器。超出範圍的查詢則採取獨立路徑。
- 驗證語義快取的重用:檢索類似的快取請求,然後檢查其答案是否也滿足新請求的任務、語言和上下文要求。
優化並檢視知識處理流程
- 索引前審核文件:透過獨立的索引、審查和排除操作,將實質性的操作指引與宣傳性或不完整的資料區分開來。
- 篩選檢索到的段落:識別試圖引導助理偏離主題的文字,同時保留一般性的安全建議。此為額外的篩選步驟,並非安全保證。
- 評估搜尋證據:判斷段落相關性、證據是否充分,以及答案是否提出缺乏依據的主張。範例中刻意移除證據或添加缺乏依據的陳述,以凸顯此區別。
現成的重新排序介面
Milvus Model提供應用端JevRerankFunction 介面:傳入查詢與候選文件文字,即可收到依相關性排序、附帶原始索引的分數結果。可利用這些索引重新排序 Milvus 返回的記錄。
Jev 整合功能已合併至主分支。請參閱實作與建構函式選項以了解當前 API。該介面接受TYPESAFE_API_KEY 參數,預設值為jev-latest 。請使用包含此整合功能的套件版本。
當前的封裝程式採用「主張與證據」相關性提示。請確認此標準是否符合您的任務需求。若需進行自訂判斷(例如記憶體相容性、中止或路由),請參閱連結中的教學指南,直接使用 TypeSafe API。這些教學指南示範了如何從 Python 應用程式程式碼直接呼叫 API。
在 Milvus 上試試看
在 Colab 中開啟重新排序教學,開始進行候選結果檢索與排序。有關本機設定及完整教學清單,請參閱該合集的 README 文件。
範例中使用Gemini API 金鑰進行嵌入處理,並使用TypeSafe API 金鑰呼叫Jev。agent-search 教學指南亦使用 Gemini 進行查詢與答案生成。範例文字將傳送至這些 API 供應商,且呼叫可能會消耗信用點數。
這些教學預設使用Milvus Lite執行,並包含連接 Milvus 伺服器或Zilliz Cloud 的選項。無論採用何種部署方式,工作分工皆相同:Milvus 負責檢索候選答案,而應用程式則將相關文字傳送至 Jev 進行判斷。
請將這些範例視為制定您自身評分標準與閾值的起點。相關性分數並不能保證答案正確,且這些小型教學資料集無法代表實際生產環境的準確度或速度。
探索實作與評估結果
以下開源專案將這些概念應用於更大的搜尋工作流程中。其連結的報告詳細說明了各實驗的資料集、比較結果及限制。
| 專案 | 搜尋應用場景 | Jev 專案 |
|---|---|---|
| MemSearch | 用於編碼代理的持久性 Markdown 記憶體 | Jev 實作·評估 |
| 向量圖 RAG | 多跳問題的向量與圖檢索 | Jev 實作·評估 |
| DeepSearcher | 針對私有知識的迭代搜尋 | 實驗執行器·搜尋終止評估(獨立實驗) |
| GPTCache | 重複使用對相容請求的回答 | Jev 實作·評估 |
DeepSearcher 的貢獻是一項獨立的「搜索終止」實驗。其餘的實作連結則展示針對特定任務的 Jev 整合方案。這些專案的結果應置於其自身的評估脈絡中解讀,而非視為共通的基準測試。