💡 輔助查詢是怎么來的?
它是基于你當前查詢(query)檢索到的某個文檔片段(chunk_result),再去“反推”出新的相關問題(utility queries),這些問題的作用是:
- 引導系統從更多角度理解這個文檔;
- 為后續推理、回答或補充背景知識做準備。
🧠 舉個非常貼近實際的例子:
假設你問的是:
“公司的治理結構是怎樣的?”
系統用這個問題去檢索文檔,拿到了以下 chunk_result
:
“根據公司章程,公司治理結構包括股東大會、董事會、監事會和高級管理層,各自職責如下……”
接著,系統會調用:
utility_queries = self.utility_query_generator.generate_queries(chunk=str(chunk_result), # 傳入文檔片段內容max_queries=2,existing_graph_queries=...
)
🔍 那這個 generate_queries
做的事,就是用語言模型或者類似的規則模板,生成類似這樣的問題:
- “董事會的職責有哪些?”
- “高級管理層如何履行監督義務?”
- “治理結構中的監事會作用是什么?”
👉 所以,它的目標是“站在系統的視角”,主動提出更多細化問題,把這個 chunk 挖得更深。
🚨 注意:它不是基于原始用戶提問,而是基于“當前文檔片段”
雖然初始用戶提問是引發這一切的觸發點,但 輔助查詢其實是“chunk 驅動”的,而不是“query 驅動的”。
也就是說:
原始用戶問題 → 檢索出 chunk → 系統看了 chunk 后自己想出的新問題
🧭 為什么這么設計?有啥好處?
這其實是一種很聰明的“文檔自我探索機制”:
優勢 | 說明 |
---|---|
💡 自動挖掘潛在知識 | 哪怕用戶沒問,系統也能主動發現重要內容 |
🔄 擴展語義圖譜 | 生成的 utility query 可以豐富知識圖譜、內存 |
🤖 改進推理表現 | 為后續 LLM 回答時提供更多上下文依據 |
🧠 有助記憶召回 | 作為補充 query 被記錄,以備后續召回 |
? 總結一句話:
輔助查詢是系統基于已檢索文檔片段,自動生成的新問題,用來更深入理解文檔內容。