運用生成式 AI 實現智慧互動:我的 LeetCode 助理專案
運用生成式 AI 實現智慧互動:我的 LeetCode 助理專案¶
這次想分享一個近期完成的專案:AI_Function_Call_LeetCode_Assistant。
這個專案的目標,是透過結合 Google Gemini 模型的強大自然語言理解能力與我自定義的邏輯,打造一個能智慧回應查詢需求的 LeetCode 資訊助理。
為什麼會想做這個助理?¶
在實際工作中,我們經常需要查找資料,但這樣的過程往往繁瑣,包含:
- 思考要查找的資訊類型
- 設定查詢條件(例如日期範圍)
- 開啟相關工具的 UI
- 手動輸入資料並等待回傳結果
如果有一個 AI Agent 能夠理解自然語言指令,並代為完成工具選擇與資料查詢,不僅節省時間,也能大幅提升工作效率。
而在日常的程式學習或 LeetCode 練習中,查詢每日挑戰、週賽資訊也是常見需求。雖然 LeetCode 有官方網站,但若能直接用自然語言詢問,並由 AI 根據上下文智慧選擇資料來源並回應,使用體驗將會大幅優化。
專案核心:Function Calling 技術¶
這個專案的核心技術是 Gemini 模型支援的「函式呼叫(Function Calling)」能力。
簡單來說,Function Calling 是大型語言模型的一項創新功能,讓模型不僅能生成文字,也能理解使用者意圖,並自動決定是否呼叫特定的外部函式來執行任務。
舉例來說: 當你對 AI 說:「幫我查一下明天的天氣」,傳統 AI 可能回應「無法取得即時資訊」。但具備 Function Calling 能力的 AI,會判斷這是個查詢需求,並自動產生 get_weather(date='tomorrow') 的呼叫指令,由外部系統執行該函式,再將結果回傳並轉化成自然語言呈現給使用者。
這正是 LeetCode 助理運作的原理。
LeetCode 助理的功能設計¶
這個 AI 助理整合了多個自定義函式(如 get_leetcode_daily_info、get_leetcode_weekly_info、is_holiday),能根據語意決定資料查詢邏輯。主要功能包括:
1. 自然語言查詢介面¶
使用者可以像聊天一樣,用中文或英文提出問題,例如:
- 「今天的 LeetCode 每日挑戰是什麼?」
- 「2025 年 6 月 29 日是假日嗎?有每日挑戰或週賽嗎?」
2. 智慧的條件判斷與回應邏輯¶
這個助理具備一套條件判斷流程:
- 若使用者查詢特定日期資訊 → 模型會先呼叫 is_holiday 判斷是否為假日
- 若為假日 → 回傳每日挑戰 + 當週週賽資訊
-
若非假日 → 僅回傳每日挑戰資訊
這個流程的技術實現方式為: -
Gemini 模型理解指令後,自動判斷需要執行 is_holiday
- 我的後端程式會呼叫 is_holiday 並取得結果(True/False)
- 根據結果選擇是否要呼叫 get_leetcode_weekly_info
- 彙整所有函式回傳內容後,交由 Gemini 生成人類可讀的回應
技術啟示¶
雖然目前使用的是模擬資料(mock data),但這個專案展示了生成式 AI 開發中的一個重要趨勢:透過 Function Calling 技術,讓語言模型能與真實世界的工具與邏輯無縫整合。
這代表 AI 不再只是「回話機器」,而是能執行動作、連結系統的智慧助理。這種「語言模型 + 商業邏輯」的協同設計,將是未來 AI 應用不可或缺的核心模式。
如果你對 AI Function Calling、Agent 架構或 AI 實作有興趣,歡迎一起交流!
Comments
Loading comments…
Leave a Comment