今天主要先處理昨天 Gemini 可以回傳的值,目前 sleep_hours、tasks_bedtime 都還只是用來代表分析功能的名稱。接下來要讓 Gemini 除了判斷根據問題要選時麼功能外,還能回傳分析結果,所以今天主要分成兩個步驟:
原本四個分析都是直接把結果印出來,但現在要讓 Gemini 選擇適合的分析後,還能繼續取得分析的結果,所以學到可以利用 return 把結果傳回去。這邊在SleepAnalyzer使用 String.format() 將原本的分析結果整理成文字後再 return,這樣就可以先用變數把分析結果接住,之後還能繼續提供給其他地方使用。
以睡眠時數的分析為例:
接著新增了 executeTool(),比較像一個分流的作用。它負責接收再透過 switch 判斷應該執行哪一個原本的分析。例如收到 sleep_hours,就去執行睡眠時數分析;收到 tasks_bedtime,就執行任務量和入睡時間的分析,最後再把分析結果回傳。
這是最後成功的畫面: