(點擊上方圖片觀看本課程影片)
既然我們已經了解如何建立文字生成應用程式,接下來讓我們探討聊天應用程式。
聊天應用程式已融入我們的日常生活,不僅僅是用來閒聊。它們是客服、技術支援,甚至是複雜諮詢系統的重要組成部分。你很可能不久前就曾透過聊天應用程式獲得幫助。隨著我們將生成式 AI 等先進技術整合到這些平台中,系統的複雜度和挑戰也隨之增加。
我們需要回答的一些問題包括:
- 建立應用程式。如何有效率地建置並無縫整合這些 AI 驅動的應用程式以符合特定使用場景?
- 監控。部署後,如何監控並確保應用程式在功能和遵守負責任 AI 六大原則方面都維持最高品質?
隨著我們進入一個以自動化和無縫人機互動為特徵的時代,理解生成式 AI 如何改變聊天應用程式的範圍、深度和適應性變得至關重要。本課程將探討支援這些複雜系統的架構面向,深入調整它們以適應特定領域任務的方法,並評估確保負責任 AI 部署的指標與考量。
本課程涵蓋:
- 高效建置與整合聊天應用程式的技術。
- 如何對應用程式進行客製化與微調。
- 有效監控聊天應用程式的策略與考量。
完成本課程後,你將能夠:
- 描述將聊天應用程式建置並整合到現有系統時的考量。
- 針對特定使用場景客製化聊天應用程式。
- 辨識關鍵指標與考量,以有效監控並維護 AI 驅動聊天應用程式的品質。
- 確保聊天應用程式負責任地運用 AI。
提升聊天應用程式的智慧不僅是讓它們更聰明,更是優化其架構、效能和使用者介面,以提供優質的使用體驗。這包括探討架構基礎、API 整合和使用者介面設計。本節旨在為你提供一條全面的路線圖,協助你在將聊天應用程式接入現有系統或打造獨立平台時,順利應對這些複雜挑戰。
完成本節後,你將具備高效建構與整合聊天應用程式的專業知識。
在深入建立聊天應用程式之前,讓我們比較「聊天機器人」與「AI 驅動的聊天應用程式」兩者的不同角色與功能。聊天機器人的主要目的是自動化特定的對話任務,例如回答常見問題或追蹤包裹。它通常由規則邏輯或複雜的 AI 演算法控制。相較之下,AI 驅動的聊天應用程式是一個更廣泛的環境,旨在促進各種形式的數位溝通,如人與人之間的文字、語音和視訊聊天。其核心特色是整合生成式 AI 模型,模擬細膩且類似人類的對話,根據多樣的輸入和上下文線索產生回應。生成式 AI 驅動的聊天應用程式能進行開放領域的討論,適應不斷變化的對話情境,甚至產生創意或複雜的對話內容。
下表列出兩者的主要差異與相似點,幫助我們理解它們在數位溝通中的獨特角色。
| 聊天機器人 | 生成式 AI 驅動的聊天應用程式 |
|---|---|
| 任務導向且基於規則 | 具備情境感知能力 |
| 通常整合於較大型系統 | 可能包含一個或多個聊天機器人 |
| 功能受限於預先程式設計 | 採用生成式 AI 模型 |
| 專門且結構化的互動 | 能進行開放領域的討論 |
建立聊天應用程式時,評估現有資源是一個很好的起點。使用 SDK 和 API 來建置聊天應用程式有多項優勢。透過整合文件完善的 SDK 和 API,你的應用程式能在長期發展中更具競爭力,並解決擴展性與維護的問題。
- 加快開發流程並降低負擔:依賴預建功能,避免自行開發昂貴的功能,讓你能專注於應用程式中更重要的部分,如商業邏輯。
- 更佳效能:自行開發功能時,常會問「系統如何擴展?能否應付突增的使用者?」良好維護的 SDK 和 API 通常內建解決方案。
- 維護更簡單:大多數 API 和 SDK 只需更新函式庫版本即可輕鬆管理更新與改進。
- 接觸尖端技術:利用經過微調並訓練於大量資料集的模型,賦予應用程式自然語言處理能力。
使用 SDK 或 API 功能通常需要取得使用權限,通常透過唯一金鑰或認證令牌。我們將使用 OpenAI Python Library 來示範。你也可以在本課程的OpenAI 筆記本或Azure OpenAI 服務筆記本中自行嘗試。
import os
from openai import OpenAI
API_KEY = os.getenv("OPENAI_API_KEY","")
client = OpenAI(
api_key=API_KEY
)
chat_completion = client.chat.completions.create(model="gpt-3.5-turbo", messages=[{"role": "user", "content": "Suggest two titles for an instructional lesson on chat applications for generative AI."}])上述範例使用 GPT-3.5 Turbo 模型完成提示,但請注意必須先設定 API 金鑰,否則會出錯。
一般的 UX 原則同樣適用於聊天應用程式,但由於涉及機器學習元件,以下幾點特別重要:
- 處理模糊性的機制:生成式 AI 模型偶爾會產生模糊的回答。若用戶遇到此問題,提供請求澄清的功能會很有幫助。
- 上下文保留:先進的生成式 AI 模型能記憶對話中的上下文,這對使用者體驗非常重要。讓用戶能控制和管理上下文能提升體驗,但也帶來保留敏感資訊的風險。考慮資訊保存期限,例如引入保留政策,可在上下文需求與隱私間取得平衡。
- 個人化:AI 模型具備學習與適應能力,能為用戶提供個人化體驗。透過用戶檔案等功能調整使用者體驗,不僅讓用戶感覺被理解,也有助於更有效率地找到特定答案,提升互動滿意度。
個人化的例子之一是 OpenAI ChatGPT 的「自訂指令」設定。它允許你提供關於自己的資訊,作為提示的重要上下文。以下是一個自訂指令的範例。
這個「個人檔案」指令讓 ChatGPT 針對鏈結串列製作課程計畫。注意 ChatGPT 會考慮使用者可能希望根據其經驗獲得更深入的課程內容。
微軟提供了撰寫有效系統訊息的指引,用於生成大型語言模型的回應,分為四個面向:
- 定義模型的目標對象、能力與限制。
- 定義模型的輸出格式。
- 提供展示模型預期行為的具體範例。
- 設定額外的行為守則。
無論使用者有視覺、聽覺、肢體或認知障礙,設計良好的聊天應用程式都應該讓所有人都能使用。以下列出針對不同障礙類型提升無障礙性的具體功能:
- 視覺障礙功能:高對比主題與可調整文字大小,支援螢幕閱讀器。
- 聽覺障礙功能:文字轉語音與語音轉文字功能,音訊通知的視覺提示。
- 肢體障礙功能:鍵盤導航支援,語音指令。
- 認知障礙功能:簡化語言選項。
想像一個聊天應用程式能理解你公司的行話,並預測用戶常見的特定問題。有幾種值得一提的方法:
- 利用 DSL 模型。DSL 指的是領域特定語言(Domain Specific Language)。你可以利用在特定領域訓練的 DSL 模型來理解該領域的概念與情境。
- 進行微調。微調是使用特定資料進一步訓練你的模型的過程。
利用領域特定語言模型(DSL 模型)能提升用戶參與度,提供專業且具上下文相關性的互動。這類模型是針對特定領域、產業或主題訓練或微調的。使用 DSL 模型的選項包括從零開始訓練,或透過 SDK 和 API 使用現有模型。另一種選擇是微調,即採用現有的預訓練模型,並針對特定領域進行調整。
當預訓練模型在專業領域或特定任務上表現不足時,通常會考慮微調。
例如,醫療問題複雜且需要大量上下文。醫療專業人員診斷病患時會考慮生活習慣、既有疾病,甚至參考最新醫學期刊來驗證診斷。在這種細膩的情境下,一般用途的 AI 聊天應用程式無法成為可靠來源。
設想一款聊天應用程式,協助醫療人員快速查詢治療指引、藥物交互作用或最新研究成果。
一般用途模型可能足以回答基本醫療問題或提供一般建議,但可能難以應對:
- 高度專業或複雜的案例。例如,神經科醫師可能會問:「目前管理兒童藥物抗性癲癇的最佳實務是什麼?」
- 缺乏最新進展。一般模型可能無法提供涵蓋神經學與藥理學最新進展的答案。
在這些情況下,使用專門的醫療資料集微調模型,能顯著提升其處理複雜醫療問題的準確性與可靠性。這需要取得大量且具代表性的領域專用資料,反映需解決的挑戰與問題。
本節說明「高品質」聊天應用程式的標準,包括可行指標的蒐集與負責任運用 AI 技術的框架。
為維持應用程式的高品質表現,必須持續追蹤關鍵指標與考量。這些衡量不僅確保應用功能正常,也評估 AI 模型與使用者體驗的品質。以下列出基本、AI 與使用者體驗相關的指標供參考。
| 指標 | 定義 | 聊天應用程式開發者的考量 |
|---|---|---|
| 運行時間 (Uptime) | 測量應用程式可供使用者操作與存取的時間長度。 | 如何將停機時間降到最低? |
| 回應時間 (Response Time) | 應用程式回覆使用者查詢所需的時間。 | 如何優化查詢處理以縮短回應時間? |
| 精確度 (Precision) | 真陽性預測數與所有陽性預測數的比例。 | 如何驗證模型的精確度? |
| 召回率 (Recall / Sensitivity) | 真陽性預測數與實際陽性數的比例。 | 如何衡量並提升召回率? |
| F1 分數 (F1 Score) | 精確度與召回率的調和平均數,平衡兩者的權衡。 | 目標 F1 分數為何?如何平衡精確度與召回率? |
| 困惑度 (Perplexity) | 測量模型預測的機率分布與實際資料分布的吻合程度。 | 如何降低困惑度? |
| 使用者滿意度指標 | 測量使用者對應用程式的感受,通常透過調查收集。 | 多久收集一次使用者回饋?如何根據回饋調整? |
| 錯誤率 (Error Rate) | 模型在理解或輸出時出錯的頻率。 | 有哪些策略用來降低錯誤率? |
| 再訓練週期 (Retraining Cycles) | 模型更新以納入新資料與見解的頻率。 | 多久進行一次再訓練?什麼情況會觸發再訓練? |
| 異常檢測 | 用於識別不符合預期行為的異常模式的工具和技術。 | 你會如何應對異常情況? |
微軟對負責任 AI 的方法確立了六項原則,應該指導 AI 的開發和使用。以下是這些原則、定義,以及聊天開發者應該考慮的事項和為何要認真對待它們。
| 原則 | 微軟定義 | 聊天開發者應考慮的事項 | 為何重要 |
|---|---|---|---|
| 公平性 | AI 系統應公平對待所有人。 | 確保聊天應用不會基於用戶資料進行歧視。 | 建立用戶信任和包容性;避免法律風險。 |
| 可靠性與安全性 | AI 系統應可靠且安全地運作。 | 實施測試和故障保護以減少錯誤和風險。 | 確保用戶滿意度並防止潛在傷害。 |
| 隱私與安全 | AI 系統應安全且尊重隱私。 | 採用強加密和資料保護措施。 | 保護敏感用戶資料並遵守隱私法規。 |
| 包容性 | AI 系統應賦能所有人並促進參與。 | 設計易於不同用戶群體使用的無障礙 UI/UX。 | 確保更多人能有效使用應用程式。 |
| 透明度 | AI 系統應易於理解。 | 提供清晰的文件和 AI 回應的理由說明。 | 用戶若能理解決策過程,更容易信任系統。 |
| 問責制 | 人們應對 AI 系統負責。 | 建立明確的審核和改進 AI 決策的流程。 | 促進持續改進並在出錯時採取糾正措施。 |
請參閱 assignment,它會帶你完成一系列練習,從執行你的第一個聊天提示,到分類和摘要文本等。注意,作業提供多種程式語言版本!
完成本課程後,請查看我們的 Generative AI Learning collection,持續提升你的生成式 AI 知識!
前往第 8 課,了解如何開始 建立搜尋應用!
免責聲明:
本文件由 AI 翻譯服務 Co-op Translator 進行翻譯。雖然我們致力於確保準確性,但請注意自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於重要資訊,建議採用專業人工翻譯。我們不對因使用本翻譯而引起的任何誤解或誤釋承擔責任。


