客服代理
本指南說明如何利用 Claude 的進階對話能力即時處理客戶查詢,提供全天候支援,縮短等待時間,並透過準確的回應和正面的互動來處理大量支援需求。
在開始使用 Claude 之前
決定是否使用 Claude 進行支援對話
以下是一些關鍵指標,可以判斷是否應該使用像 Claude 這樣的 LLM 來自動化部分客戶支援流程:
選擇 Claude 而非其他 LLM 的考量因素:
- 您重視自然、細膩的對話: Claude 的高級語言理解能力可以實現更自然、更具情境感知的對話,比其他 LLM 更接近人類對話。
- 您經常收到複雜和開放式查詢: Claude 可以處理廣泛的主題和查詢,無需生成制式回應或需要對用戶話語進行大量程式設計。
- 您需要可擴展的多語言支援: Claude 的多語言能力使其能夠用超過 200 種語言進行對話,無需為每種支援的語言設置單獨的聊天機器人或進行大量翻譯。
定義理想的對話互動
概述理想的客戶互動,以定義您期望客戶如何以及何時與 Claude 互動。這個概述將有助於確定解決方案的技術要求。
以下是汽車保險客服對話的範例:
- 客戶: 開始支援對話體驗
- Claude: 熱情地問候客戶並開始對話
- 客戶: 詢問關於他們新電動車的保險
- Claude: 提供相關的電動車承保資訊
- 客戶: 詢問有關電動車保險的特殊需求
- Claude: 提供準確且資訊豐富的答案,並提供資訊來源連結
- 客戶: 詢問與保險或汽車無關的問題
- Claude: 澄清不討論不相關的主題,並引導用戶回到汽車保險話題
- 客戶: 表示對保險報價感興趣
- Claude: 詢問一系列問題以確定適當的報價,根據他們的回答進行調整
- Claude: 發送請求使用報價生成 API 工具,並附上從用戶收集的必要資訊
- Claude: 接收來自 API 工具使用的回應資訊,將資訊整合成自然的回應,並向用戶提供報價
- 客戶: 提出後續問題
- Claude: 根據需要回答後續問題
- Claude: 引導客戶進入保險流程的下一步並結束對話
將互動分解為獨特任務
客服對話是多個不同任務的集合,從問答到資訊檢索再到處理請求,這些都包含在單一客戶互動中。在開始建置之前,將您理想的客戶互動分解為您希望 Claude 能夠執行的每個任務。這確保您可以針對每個任務提示和評估 Claude,並讓您在撰寫測試案例時能夠很好地了解需要考慮的互動範圍。
以下是上述保險互動範例中的關鍵任務:
-
問候和一般指引
- 熱情地問候客戶並開始對話
- 提供有關公司和互動的一般資訊
-
產品資訊
- 提供電動車承保資訊
這將需要 Claude 在其上下文中擁有必要的資訊,並可能意味著需要 RAG 整合。
- 回答有關電動車保險特殊需求的問題
- 回答有關報價或保險細節的後續問題
- 在適當時提供資訊來源連結
- 提供電動車承保資訊
-
對話管理
- 保持在主題上(汽車保險)
- 將離題問題重新導向相關主題
-
報價生成
- 詢問適當的問題以確定報價資格
- 根據客戶回應調整問題
- 將收集的資訊提交給報價生成 API
- 向客戶提供報價
建立成功標準
與您的支援團隊合作定義明確的成功標準並撰寫詳細評估,包含可衡量的基準和目標。
以下是可用於評估 Claude 執行定義任務的成功程度的標準和基準:
以下是可用於評估使用 Claude 進行支援的業務影響的標準和基準:
如何將 Claude 實作為客服代理
選擇合適的 Claude 模型
模型的選擇取決於成本、準確性和回應時間之間的權衡。
對於客服對話,claude-3-7-sonnet-20250219
很適合平衡智能、延遲和成本。然而,對於具有多個提示的對話流程,包括 RAG、工具使用和/或長上下文提示,claude-3-haiku-20240307
可能更適合優化延遲。
建立強大的提示
使用 Claude 進行客服需要 Claude 有足夠的指示和上下文來適當回應,同時具有足夠的靈活性來處理各種客戶查詢。
讓我們從系統提示開始,撰寫強大提示的元素:
User
回合中寫入大部分提示內容時效果最好(唯一的例外是角色提示)。詳情請參閱使用系統提示賦予 Claude 角色。最好將複雜的提示分解為子部分,一次寫一部分。對於每個任務,您可能會發現按照步驟來定義 Claude 需要做好該任務的提示部分會更成功。對於這個汽車保險客服範例,我們將逐步寫出”問候和一般指引”任務的所有部分。這也使得調試您的提示更容易,因為您可以更快地調整整體提示的個別部分。
我們將把所有這些部分放在一個名為 config.py
的檔案中。
然後我們將為我們的汽車保險和電動車保險資訊做同樣的事情。
現在我們有了靜態內容,讓我們添加至少 4-5 個”良好”互動的範例來指導 Claude 的回應。這些範例應該代表您理想的客戶互動,可以包括護欄、工具調用等。
您還需要包含任何重要的指示,概述 Claude 應該如何與客戶互動的注意事項和禁止事項。 這可能來自品牌護欄或支援政策。
現在讓我們將所有這些部分組合成一個字串,用作我們的提示。
透過工具使用添加動態和代理功能
Claude 能夠使用客戶端工具使用功能來採取行動和動態檢索資訊。首先列出提示應該使用的任何外部工具或 API。
對於這個範例,我們將從一個用於計算報價的工具開始。
保險報價計算器範例:
部署您的提示
如果不在測試生產環境中部署並運行評估,很難知道您的提示效果如何,所以讓我們使用我們的提示、Anthropic SDK 和 streamlit 作為用戶界面來建立一個小應用程式。
在一個名為 chatbot.py
的檔案中,首先設置 ChatBot 類,該類將封裝與 Anthropic SDK 的互動。
該類應該有兩個主要方法:generate_message
和 process_user_input
。
建立您的用戶界面
使用主方法測試部署此程式碼。這個 main()
函數設置了基於 Streamlit 的聊天界面。
我們將在一個名為 app.py
的檔案中執行此操作
使用以下命令運行程式:
評估您的提示
提示通常需要測試和優化才能準備好投入生產。要確定您的解決方案是否準備就緒,請使用系統化流程結合定量和定性方法來評估聊天機器人的表現。根據您定義的成功標準創建強大的實證評估將允許您優化您的提示。
改進性能
在複雜的場景中,除了標準的提示工程技術和護欄實施策略之外,考慮其他策略來改進性能可能會有幫助。以下是一些常見場景:
使用 RAG 減少長上下文延遲
在處理大量靜態和動態上下文時,在提示中包含所有資訊可能會導致高成本、較慢的回應時間和達到上下文窗口限制。在這種情況下,實施檢索增強生成(RAG)技術可以顯著改善性能和效率。
透過使用像 Voyage 這樣的嵌入模型將資訊轉換為向量表示,您可以創建一個更可擴展和響應迅速的系統。這種方法允許基於當前查詢動態檢索相關資訊,而不是在每個提示中包含所有可能的上下文。
實施支援用例的 RAG RAG 配方已被證明可以提高準確性、減少回應時間,並降低具有大量上下文要求的系統的 API 成本。
使用工具整合即時數據
在處理需要即時資訊的查詢時,如帳戶餘額或保單詳情,基於嵌入的 RAG 方法是不夠的。相反,您可以利用工具使用來顯著增強您的聊天機器人提供準確、即時回應的能力。例如,您可以使用工具使用來查詢客戶資訊、檢索訂單詳情,並代表客戶取消訂單。
這種方法,在我們的工具使用:客服代理配方中概述,允許您將即時數據無縫整合到您的 Claude 回應中,並提供更個性化和高效的客戶體驗。
加強輸入和輸出護欄
在部署聊天機器人時,特別是在客服場景中,防止與誤用、超出範圍的查詢和不當回應相關的風險至關重要。雖然 Claude 本身對這些場景具有彈性,但以下是加強您的聊天機器人護欄的額外步驟:
- 減少幻覺:實施事實檢查機制和引用以將回應建立在提供的資訊基礎上。
- 交叉檢查資訊:驗證代理的回應是否符合您公司的政策和已知事實。
- 避免合約承諾:確保代理不會做出未經授權的承諾或簽訂協議。
- 減輕越獄:使用無害性篩選和輸入驗證等方法來防止用戶利用模型漏洞,試圖生成不當內容。
- 避免提及競爭對手:實施競爭對手提及過濾器以保持品牌焦點,不提及任何競爭對手的產品或服務。
- 保持 Claude 的角色:防止 Claude 在長期、複雜的互動中改變其風格或上下文。
- 移除個人識別資訊(PII):除非明確要求並授權,否則從回應中刪除任何 PII。
使用串流減少感知回應時間
在處理可能較長的回應時,實施串流可以顯著改善用戶參與度和滿意度。在這種情況下,用戶會逐步收到答案,而不是等待整個回應生成完成。
以下是如何實施串流:
- 使用 Anthropic 串流 API 來支援串流回應。
- 設置您的前端以處理傳入的文本塊。
- 在收到每個塊時顯示它,模擬即時打字。
- 實施機制來保存完整回應,允許用戶在離開並返回時查看它。
在某些情況下,串流使得使用具有較高基礎延遲的更高級模型成為可能,因為漸進式顯示減輕了較長處理時間的影響。
擴展您的聊天機器人
隨著您的聊天機器人複雜性增加,您的應用程式架構可以相應發展。在向您的架構添加更多層之前,請考慮以下較少耗費的選項:
如果您的聊天機器人處理極其多樣的任務,您可能想考慮添加一個單獨的意圖分類器來路由初始客戶查詢。對於現有應用程式,這將涉及創建一個決策樹,該樹將透過分類器將客戶查詢路由到專門的對話(具有其自己的工具集和系統提示)。請注意,這種方法需要額外呼叫 Claude,可能會增加延遲。
將 Claude 整合到您的支援工作流程中
雖然我們的範例專注於 Python 函數可在 Streamlit 環境中呼叫,但部署 Claude 進行即時支援聊天機器人需要一個 API 服務。
以下是您可以採取的方法:
-
創建 API 包裝器:圍繞您的分類函數開發一個簡單的 API 包裝器。例如,您可以使用 Flask API 或 Fast API 將您的程式碼包裝成 HTTP 服務。您的 HTTP 服務可以接受用戶輸入並完整返回助理回應。因此,您的服務可以具有以下特徵:
- 伺服器發送事件(SSE):SSE 允許從伺服器到客戶端的即時回應串流。這對於使用 LLM 時提供流暢、互動的體驗至關重要。
- 快取:實施快取可以顯著改善回應時間並減少不必要的 API 呼叫。
- 上下文保留:當用戶離開並返回時保持對話上下文對於對話的連續性很重要。
-
建立網頁界面:實施一個用戶友好的網頁 UI 來與 Claude 驅動的代理互動。