iT邦幫忙

2025 iThome 鐵人賽

DAY 22
0

在前幾天我們完成了基本的 UI 介面與對話功能

接下來我們要透過 Gemini 的 Agent mode 完善這個 APP

首先他列出他認為還能做的功能

輸入: 列出這個APP 還能完善的功能 不包含UI

他提供了五個功能

應用程式優化建議

1. 實作真正的聊天歷史紀錄 (Room 資料庫)

  • 現況: 現在的聊天紀錄只存在於 App 的記憶體中,一旦 App 關閉,所有對話都會消失。
  • 建議: 引入 Android 的 Room 函式庫(官方推薦的資料庫工具)。將每一則訊息(包含使用者和 AI 的)都存入手機的本地資料庫
    • 優點: 即使關閉 App 再重新打開,也能讀取先前的對話。同時,這也為「歷史紀錄」頁面的功能打下基礎。

2. 加入對話記憶 (Conversation Context)

  • 現況: 目前你送出的每一則訊息,對 Gemini 模型來說都是一個全新的、獨立的提問。模型並不知道你上一句話說了什麼。
  • 建議: 修改 getGeminiResponse 的邏輯,在每次呼叫 API 時,不只傳送當前的訊息,而是附上整個(或最近的幾則)對話紀錄
    • 優點: 模型就能理解上下文,進行真正有記憶、有邏輯的連續對話,例如:「它叫什麼名字?」模型能知道「它」指的是你上一則訊息中提到的東西。

3. 啟用串流式回覆 (Streaming Response)

  • 現況: 目前 App 需要等 Gemini 模型產生完所有回覆後,才能一次性地顯示出來。如果回覆很長,使用者就得等待一段時間。
  • 建議: Gemini API 支援「串流式」(Streaming) 回覆。修改 API 的呼叫方式,讓 AI 的回覆可以一個字、一個字地即時顯示在畫面上,就像大部分的 AI 聊天機器人一樣。
    • 優點: 這會大幅改善使用者的等待體驗。

4. 更完善的錯誤處理與狀態顯示

  • 現況: 目前只有在 API 呼叫失敗時,才會在聊天視窗顯示錯誤訊息。
  • 建議: 增加更細緻的處理機制,例如:
    • 載入中提示: 在 AI 正在思考回覆時,顯示一個**「正在輸入中...」的動畫或提示**,讓使用者知道 App 正在運作。
    • 網路狀態偵測: 在傳送訊息前,先檢查手機的網路連線狀態。如果沒有網路,就直接提示使用者,避免不必要的 API 呼叫。
    • 重試機制: 如果訊息因為網路不穩等原因傳送失敗,可以在訊息旁邊顯示一個**「重試」按鈕**。

5. 賦予「設定」頁面實際功能

  • 現況: 「設定」頁面目前是空白的。
  • 建議: 加入一些實用的設定選項,例如:
    • 清除對話紀錄: 提供一個按鈕,讓使用者可以一鍵清除所有本地儲存的聊天歷史
    • 調整模型參數: 讓進階使用者可以調整 API 的 temperaturetopK 等參數,來改變 AI 回覆的創意或精準度。

他說的太好了,所以我們讓他嘗試看看

直接說:五個功能都是必要的,幫我製作。並且撰寫到新套件時,安裝必要套件,完成後需測試功能是否有效。

因為這些操作很複雜所以我勾選了 Gemini 2.5 pro 讓他多思考避免錯誤,但相對的會更花時間

#如果你遇到用量超標的問題,可以不要勾選Gemini 2.5 pro 用預設模式,並且一次製作一個功能就好

!完成!


上一篇
Day 21 - 用Stitch 設計 APP UI
下一篇
利用 AI 協助你撰寫文章 - 以Gemini Gem 與鐵人賽為例
系列文
Android 不會只更新 UI ! 用 Vibe Coding ? 加速打造 Al-native App23
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言