今天是鐵人賽的第 15 天,賽程正式過半,回顧前半段,我們從最初熟悉平臺與提示詞工程,到正式啟動 Dev-Advisor(開發諮詢助手)專案,逐步搭建出包含內部知識庫RAG檢索與外部DuckDuckGo聯網搜尋的雙軌工作流。
在先前的聯網實測中,我們發現將使用者的口語化提問直接傳入搜尋引擎時,容易檢索出混雜非核心關鍵字的技術文件與雜訊。今天我們主要完成兩件事:在工作流中正式加入「查詢改寫(Query Rewrite)」節點以優化搜尋品質,並對前半段架構進行復盤與後續規劃。
一、 查詢改寫節點實作
為了讓搜尋引擎能接收到更精確的關鍵字,我們調整了下半部的外部諮詢管線:
跨語言檢索設計策略
在技術諮詢場景中,官方第一手技術文檔、Release Notes與Issue討論大多為英文。若直接以使用者的中文口語去搜尋,常會檢索到二手轉載或過時資訊。因此,我們為LLM3設定的核心策略是「跨語言提煉」:允許使用者以熟悉的中文口語隨意提問,由LLM3自動翻譯並濃縮為純英文技術關鍵字交給DuckDuckGo,最後再由後端的LLM2整合並以流暢的繁體中文輸出。
節點配置與提示詞設定
在問題分類器與搜尋節點之間新增一個名為LLM3(查詢改寫器)的節點:
你是一個精準的搜尋引擎關鍵字提煉工具。
請分析使用者的技術問題,提煉出最適合搜尋引擎(如 DuckDuckGo/Google)的 2 到 4 個核心關鍵字。
【規則】
1. 輸出必須以英文核心詞為主(搜尋引擎對英文技術關鍵字的檢索品質最佳)。
2. 徹底過濾所有問句、禮貌用語及多餘文字(例如:「請查一下」、「有哪些」等)。
3. 嚴格禁止任何開場白、結尾說明、標點符號或 Markdown 引號。
4. 輸出範例:Python latest stable release features
二、 實作除錯紀錄
在本次節點調整過程中,我們記錄了以下幾項問題與解決方式:
API 高負載錯誤(503 UNAVAILABLE)
當工作流連續觸發多個相同模型節點時,偶爾會碰上 Google API 伺服器的高峰排隊限制。將負責關鍵字提煉的節點替換為較輕量的 Flash-Lite 版本,有助於降低請求延遲與負載。
缺少USER變數導致關鍵字偏離
初期測試時,DuckDuckGo 回報無搜尋結果,檢查日誌後發現送出的檢索詞竟為search engine keyword extraction tool。原因在於節點僅有SYSTEM指示而未加入USER訊息輸入,導致模型把提示詞內容本身當成輸出。在面板中手動新增USER框並綁定 開始 / query 後,模型便能正確針對使用者提問提煉關鍵字。
模型邊界約束驗證
在搜尋結果不相關的除錯階段,LLM2嚴格依照提示詞約束,直接回報現有資料中不包含目標資訊而非自行捏造,驗證了系統提示詞的防護機制有效。
三、 執行結果驗證
修正完成後,使用相同題目進行測試:
輸入問題:
請查一下目前 Python 最新穩定版本(Stable Release)是哪一版?有哪些主要亮點?
輸出結果:
經過LLM3改寫為純淨英文關鍵字並檢索後,系統成功抓取到相關資訊並整理輸出:
根據最新的參考資料,目前 Python 的最新穩定版本系列為 Python 3.14(最新的維護版本為 3.14.7)。
Python 3.14 主要穩定版本於 2025 年 10 月 7 日正式發布,包含語言語法、執行階段實現及標準庫的多項改進。
主要亮點與新特性:
實測結果顯示,加入查詢改寫後,檢索結果不再受到口語冗詞干擾,資訊抓取的精確度明顯提升。
四、 前半段成果復盤與後續規劃
回顧 Day 1~15,Dev-Advisor 已經建立了基本運作原型:
但現有架構仍有需要進一步優化之處:
後續 15 天(Day 16~30)的規劃重點:
五、 今日小結
今天我們在Dev-Advisor中完成了查詢改寫節點的建立與除錯,解決了口語搜尋帶來的雜訊問題,並驗證了前置處理對檢索品質的改善效果。