iT邦幫忙

2025 iThome 鐵人賽

DAY 5
0
Mobile Development

設計AI新介面UI行動應用系列 第 5

章節五:AI聊天對話框設計

  • 分享至 

  • xImage
  •  

一、為何選擇「多輪對話」作為聊天UI的設計核心

現代用戶對AI聊天機器人的期待,已從單次問答進化為更擬人、持續互動的多輪對話模式。多輪對話,不僅能讓AI記住上下文、持續承接用戶需求,同時也讓訊息交流過程自然流暢,提升智能伴侶與助理的實用價值。
多輪對話的關鍵意義
• 上下文理解力:AI可根據會話歷史判斷用戶隱含意圖,非單純依賴單一訊息。
• 任務導向深化:例如預訂、問診、規劃等連續需求,AI能脈絡一致地陪用戶走完整流程。
• 回饋與修正機制:發問者可根據AI答覆進一步追加、修正或詢問細節,強化互動的靈活性。

二、AI聊天對話框的專業UI規劃流程

2.1 對話框UI的組成要素
一個優秀的AI聊天界面,應包含以下必要組件:
元件
用途說明
氣泡訊息區
清晰分左/右(用戶/AI),交錯顯示歷史留言及AI回應
輸入欄
本行或多行(支援換行、快捷發送、語音輸入)
發送按鈕
支援文字/語音/圖片發送
建議提問列
AI主動推薦常用二次提問、精選FAQ,降低輸入門檻
狀態提示
顯示AI輸入中、網路延遲、運算中,提升透明與信任
多模態互動
支援圖片/檔案/語音上傳與解析,滿足更豐富的智能應用場景
2.2 多輪對話的UI互動細節
• 歷史訊息可自動捲動到底、支援長對話紀錄收合展開。
• 久未回覆或錯誤時有提醒,提升用戶體感。
• 支援快捷鍵回應(如上下鍵復用歷史提問)、推薦問題提示。
• 頻繁訊息交換時,區分「AI運算中」、「AI正構思回應」狀態。

三、AI多輪對話架構流程解析

真正的智能對話框,背後強調「意圖預測」、「上下文管理」、「流程控制」與「回應生成」四大架構:
1. 意圖識別:自動判斷每一句用戶輸入的目的(如詢問、預訂、查找等)。
2. 上下文管理:每當用戶追加問題,AI能結合全程對話紀錄細節,避免答非所問或忘記前提。
3. 對話流程控制:如任務分階段推進(訂票>選位置>確認>支付),AI需能主動引導,必要時回溯求證。
4. 動態生成答案:根據最新上下文與用戶偏好即時產生自然語言回覆。

四、設計多輪對話UI的一體化實踐建議

4.1 視覺風格與品牌一致
• 訊息氣泡、主題色彩、AI形象圖示需與App整體品牌風格契合。
• 用色宜柔和,利用陰影、圓角使UI親和,避免造成壓力或理解障礙。
• 適度加入AI反饋動畫(如Typing dots…),增進陪伴感和期待感。
4.2 易用性優先
• 用戶輸入框永遠可見,並強調無障礙、可放大自適應。
• 歷史訊息可一鍵刪除或導出,滿足隱私和備份需求。
• 支援前後文快速檢索與定位(如搜尋特定問答內容)。
4.3 智能推薦與快取
• 建議問題自動浮出(如Perplexity推薦關鍵問法)。
• 支援常用表情、小元件,如語音即時轉文字、圖片即時生成並插入。
• 針對不同情境,AI會主動推播二次追問或延伸推薦內容。

五、AI對話框在日常生活的應用場景舉例

• 智能助理:日常知識答疑、資訊搜尋、提醒設置、日程安排。
• 客服與諮詢:多次追問後AI自動總結重點或主動追加說明。
• 圖片生成:如perplexity.ai可直接於聊天中產生/回傳插圖與資訊摘要。
• 居家辦公協作:聊天過程中可同時討論和插入文件、連結、圖片,彈性溝通。

六、B4A語言多輪對話UI程式範例(章末範例)

以下為B4A設計多輪 AI 對話框的基本實作範例,支援用戶接連發問、訊息即時顯示、AI自動續答:

Sub Process_Globals
End Sub

Sub Globals
    Private edtInput As EditText      ' 問題輸入欄
    Private btnSend As Button         ' 發送按鈕
    Private lstChat As ListView       ' 對話歷史
    Private aiHistory As List         ' 輸入/回應歷史紀錄
End Sub

Sub Activity_Create(FirstTime As Boolean)
    Activity.LoadLayout("Main")       ' UI設計器配置
    aiHistory.Initialize
    lstChat.Clear
    btnSend.Text = "發送"
End Sub

Sub btnSend_Click
    Dim prompt As String = edtInput.Text
    If prompt.Trim <> "" Then
        lstChat.AddSingleLine("你:" & prompt)
        aiHistory.Add(prompt)
        edtInput.Text = ""
        lstChat.AddSingleLine("AI思考中…")
        CallSubDelayed2(Me, "CallAI", prompt)
    End If
End Sub

Sub CallAI(userPrompt As String)
    ' 以下以API呼叫為例,實作請依你串接的AI服務實際端點調整
    Dim job As HttpJob
    job.Initialize("AI", Me)
    job.PostString("https://api.example.com/chat", $"{"prompt":"${userPrompt}","history":${aiHistory.ToString}}"$)
End Sub

Sub JobDone(job As HttpJob)
    If job.Success Then
        lstChat.RemoveAt(lstChat.Size-1)
        Dim aiReply As String = job.GetString
        aiHistory.Add(aiReply)
        lstChat.AddSingleLine("AI:" & aiReply)
    Else
        lstChat.RemoveAt(lstChat.Size-1)
        lstChat.AddSingleLine("AI回應失敗,請再試一次")
    End If
    job.Release
End Sub

【說明】
• 以ListView記錄所有你問/AI回應歷程,提升多輪上下文連續性用於API。
• 可依實際需求增設建議按鈕、提示列、語音按鈕等(於Designer拖入即可)。
• 「history」資料用於串接能記憶上下文的AI API,如Perplexity或任何具多輪問答支援的雲端服務。

七、結語

AI聊天對話框設計,絕非僅止於UI美觀,而是交互邏輯、上下文思維與智能推薦的綜合成果。聚焦於「順暢互動、多輪上下文、智能回饋」三大核心,使每一次對話都成為用戶與AI更真實、有效、富有溫度的溝通體驗。結合B4A高效框架與AI雲組件,你也能打造出兼具專業感、美觀感和實用性的AI新世代對話應用。
【溫馨建議】章末範例建議於B4A IDE設計器預先拖入相關元件(EditText, Button, ListView),再複製碼段,經API端點與安全措施調整,即可馬上體驗智能多輪對話的完整效果。


上一篇
章節四:基本UI元件應用實例
下一篇
章節六:多模態輸入區塊
系列文
設計AI新介面UI行動應用30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言