搜尋
首頁科技週邊人工智慧基於狀態機的聊天機器人設計經驗總結

為了更了解智慧機器人專案的需求和改進方向,我們常常需要研發一些工具。在我參與的多個機器人專案中,大多數都能夠成功地滿足產品需求。透過這些實踐,我們深刻認識到,如果要不斷進步和提高,就必須對現有的機器人定義語言進行重大的改進。

  • 簡化需要複雜對話流程的機器人的創建過程。
  • 最大限度地提高可重用性,透過重複使用過去已經定義過的模組和對話路徑來創建機器人

在傳統的做法中,完成這些並不容易,因為意圖定義與部分排序約束混合在一起,限制了對話路徑的自由。這對於處理「開放式」機器人(常見於FAQ樣式的機器人),其中大多數問題是獨立的且始終可用的,這已經足夠了。但對於更「封閉」的機器人來說,潛在的對話限制要多得多(例如用於從線上訂票機器人)。

基於狀態機的聊天機器人設計經驗總結

為了將聊天機器人定義語言的功能提升到一個新的水平,在一些專案中我們引進了更接近狀態機語義的DSL,並完全將意圖定義與控制機器人執行定點可用意圖的轉換規則分離,這麼做有以下優勢:

  1. 新機器人中可以復用先前的意圖,即使設定的對話路徑不同。
  2. 可以使用狀態機定義複雜的對話流,讓機器人保持清晰和精確的語意。
  3. 可以建立複雜的狀態守護來控制轉換。根據使用者輸入、即將發生的事件以及先前的資料、對話參數等,將機器人移動到新狀態。
  4. 可以使用狀態主體來儲存複雜的對話邏輯,以回應使用者請求。
  5. 可以將機器人模組化,以便在其他機器人中重複使用部分狀態機。
  6. 可以將本地回退定義為狀態行為的一部分。除了預設的全域回退,還可以將本機回退與狀態相關聯,以便在狀態上下文中處理錯誤,例如顯示一則訊息,幫助使用者回答機器人在對話中的特定狀態下提出的問題。

意圖定義語言

意圖定義現在與執行部分解耦,但仍然是單獨的子語言。對於每個意圖,我們只需提供一些訓練句子,讓機器人能夠辨識出使用者話語的意圖,並從中提取所需的參數。

舉個例子,我們有一個簡單的機器人,它只能理解兩種類型的使用者話語:問候和陳述姓名。我們可以為每種話語類型提供幾個範例句子,讓機器人學會如何辨識它們。當使用者輸入話語時,機器人會根據它的意圖執行相應的操作,並從中提取所需的參數。

intent Hello {
inputs {
"你好"
"早上好"
}
}
 
intent MyNameIs {
inputs {
"我的名字叫小明"
"我是小明"
"你可以叫我小明"
}
creates context Greetings {
set parameter name from fragment "小明" (entity any)
}
}

我們為每個意圖提供一些樣本句子,來訓練機器人如何識別它們。此外,在某些情況下,我們也會在上下文中收集一些參數(例如,使用者的姓名),以便日後能更個人化地回答使用者。

我們還沒有具體說明機器人應該先嘗試匹配哪個意圖,這是執行部分語言的內容。這種方法使我們能夠重複利用這些意圖(例如,在另一個機器人中,我們可能需要詢問使用者的姓名,而不僅僅是在問候意圖之後)。

執行定義語言

使用執行檔來定義一個狀態機,描述機器人如何回應意圖/事件,並且可以進行轉換。這使得機器人的設計者可以查看執行文件,並了解整個對話流程。

執行語言中的每個狀態包含 3 個部分

  • Body (可選):機器人在進入狀態時執行的反應。
  • Next (必備):定義了出站轉換,表示為 condition –> State。  當接收到事件/意圖時,會評估條件,如果滿足轉換,則執行引擎會移動到指定的狀態並執行其相應的反應。需要注意的是,轉換條件可以非常複雜。  它們是真正的守衛,這意味著如果整個條件不為真,則轉換不可導航,引擎將保持當前狀態。
  • Fallback (可選):此部分可以包含任何程式碼(就像 Body 部分一樣),如果引擎無法找到可導航的轉換,則會執行這些代碼。

執行模型還包含 2 個特殊狀態:

  • Init:是创建用户会话时进入的常规状态。它可以包含 Body、_Next_和 Fallback 部分。
  • Default_Fallback:它只能包含 Body 部分,并且不能作为转换的目标状态。该状态表示在当前状态中未定义本地回退时执行的默认回退代码。该状态可用于打印通用错误消息(例如,“抱歉,我没明白您的意思”),而本地回退则可以打印针对当前状态的定制消息(例如,“请回答是或否”)。

最后,一个状态可以定义一个单一的通配符转换(使用保留字符___作为转换条件),当计算状态主体时将自动导航。这使我们能够在多个地方重用相同的代码并模块化执行逻辑。下面是一个简单的机器人示例,它只回复问候意图,询问用户名并向用户问好。这个机器人的回复可以通过我们基于 React 的聊天小部件显示。

//We can always have an init state in case we need to initialize some bot parameters (e.g. welcoming message)
Init {
Next { 
//Here we state that the bot will first listen for an utterance matching the Hello intent, it will ignore anything else
intent == Hello --> HandleHello
}
}
HandleHello {
Body {
 ReactPlatform.Reply("你好, 你叫什么名字?")
}
Next {
//We wait for the user to input the name, no other transition is possible at this point
//Obviously, in more complex bots we may have several possible outgoing transitions in a given state
intent == MyNameIs --> HandleMyNameIs
}
}
HandleMyNameIs {
Body {
ReactPlatform.Reply("你好 " + context.get("Greetings").get("name"))
}
Next {
// An automatic transition to the Init state since at this point the conversation is finished and we can start again
_ --> Init
}
}
// Default Fallback state could go here


以上是基於狀態機的聊天機器人設計經驗總結的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:51CTO.COM。如有侵權,請聯絡admin@php.cn刪除
無法使用chatgpt!解釋可以立即測試的原因和解決方案[最新2025]無法使用chatgpt!解釋可以立即測試的原因和解決方案[最新2025]May 14, 2025 am 05:04 AM

ChatGPT無法訪問?本文提供多種實用解決方案!許多用戶在日常使用ChatGPT時,可能會遇到無法訪問或響應緩慢等問題。本文將根據不同情況,逐步指導您解決這些問題。 ChatGPT無法訪問的原因及初步排查 首先,我們需要確定問題是出在OpenAI服務器端,還是用戶自身網絡或設備問題。 請按照以下步驟進行排查: 步驟1:檢查OpenAI官方狀態 訪問OpenAI Status頁面 (status.openai.com),查看ChatGPT服務是否正常運行。如果顯示紅色或黃色警報,則表示Open

計算ASI的風險始於人類的思想計算ASI的風險始於人類的思想May 14, 2025 am 05:02 AM

2025年5月10日,麻省理工學院物理學家Max Tegmark告訴《衛報》,AI實驗室應在釋放人工超級智能之前模仿Oppenheimer的三位一體測試演算。 “我的評估是'康普頓常數',這是一場比賽的可能性

易於理解的解釋如何編寫和撰寫歌詞和推薦工具易於理解的解釋如何編寫和撰寫歌詞和推薦工具May 14, 2025 am 05:01 AM

AI音樂創作技術日新月異,本文將以ChatGPT等AI模型為例,詳細講解如何利用AI輔助音樂創作,並輔以實際案例進行說明。我們將分別介紹如何通過SunoAI、Hugging Face上的AI jukebox以及Python的Music21庫進行音樂創作。 通過這些技術,每個人都能輕鬆創作原創音樂。但需注意,AI生成內容的版權問題不容忽視,使用時務必謹慎。 讓我們一起探索AI在音樂領域的無限可能! OpenAI最新AI代理“OpenAI Deep Research”介紹: [ChatGPT]Ope

什麼是chatgpt-4?對您可以做什麼,定價以及與GPT-3.5的差異的詳盡解釋!什麼是chatgpt-4?對您可以做什麼,定價以及與GPT-3.5的差異的詳盡解釋!May 14, 2025 am 05:00 AM

ChatGPT-4的出现,极大地拓展了AI应用的可能性。相较于GPT-3.5,ChatGPT-4有了显著提升,它具备强大的语境理解能力,还能识别和生成图像,堪称万能的AI助手。在提高商业效率、辅助创作等诸多领域,它都展现出巨大的潜力。然而,与此同时,我们也必须注意其使用上的注意事项。 本文将详细解读ChatGPT-4的特性,并介绍针对不同场景的有效使用方法。文中包含充分利用最新AI技术的技巧,敬请参考。 OpenAI发布的最新AI代理,“OpenAI Deep Research”详情请点击下方链

解釋如何使用chatgpt應用程序!日本支持和語音對話功能解釋如何使用chatgpt應用程序!日本支持和語音對話功能May 14, 2025 am 04:59 AM

CHATGPT應用程序:與AI助手釋放您的創造力!初學者指南 ChatGpt應用程序是一位創新的AI助手,可處理各種任務,包括寫作,翻譯和答案。它是一種具有無限可能性的工具,可用於創意活動和信息收集。 在本文中,我們將以一種易於理解的方式解釋初學者,從如何安裝chatgpt智能手機應用程序到語音輸入功能和插件等應用程序所獨有的功能,以及在使用該應用時要牢記的要點。我們還將仔細研究插件限制和設備對設備配置同步

如何使用中文版Chatgpt?註冊程序和費用的說明如何使用中文版Chatgpt?註冊程序和費用的說明May 14, 2025 am 04:56 AM

ChatGPT中文版:解鎖中文AI對話新體驗 ChatGPT風靡全球,您知道它也提供中文版本嗎?這款強大的AI工具不僅支持日常對話,還能處理專業內容,並兼容簡體中文和繁體中文。無論是中國地區的使用者,還是正在學習中文的朋友,都能從中受益。 本文將詳細介紹ChatGPT中文版的使用方法,包括賬戶設置、中文提示詞輸入、過濾器的使用、以及不同套餐的選擇,並分析潛在風險及應對策略。此外,我們還將對比ChatGPT中文版和其他中文AI工具,幫助您更好地了解其優勢和應用場景。 OpenAI最新發布的AI智能

5 AI代理神話,您需要停止相信5 AI代理神話,您需要停止相信May 14, 2025 am 04:54 AM

這些可以將其視為生成AI領域的下一個飛躍,這為我們提供了Chatgpt和其他大型語言模型聊天機器人。他們可以代表我們採取行動,而不是簡單地回答問題或產生信息

易於理解使用Chatgpt創建和管理多個帳戶的非法性的解釋易於理解使用Chatgpt創建和管理多個帳戶的非法性的解釋May 14, 2025 am 04:50 AM

使用chatgpt有效的多個帳戶管理技術|關於如何使用商業和私人生活的詳盡解釋! Chatgpt在各種情況下都使用,但是有些人可能擔心管理多個帳戶。本文將詳細解釋如何為ChatGpt創建多個帳戶,使用時該怎麼做以及如何安全有效地操作它。我們還介紹了重要的一點,例如業務和私人使用差異,並遵守OpenAI的使用條款,並提供指南,以幫助您安全地利用多個帳戶。 Openai

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具