首頁  >  文章  >  後端開發  >  使用Python和Rasa的聊天機器人

使用Python和Rasa的聊天機器人

WBOY
WBOY轉載
2023-09-15 11:33:02892瀏覽

使用Python和Rasa的聊天機器人

聊天機器人已被公認為企業與客戶互動的首選溝通工具,提供了更有效率、便利的互動方式。 Python這種因其開發資源而變得簡單的程式語言已成為建立各種聊天機器人的首選。另一方面,Rasa 是一個專門的工具,專注於建立具有自然語言理解的聊天機器人。

在本文中,我們將深入研究使用 Python 和 Rasa 開發聊天機器人的迷人世界。我們將仔細研究定義聊天機器人的目的、訓練其理解自然語言以及透過訓練微調其回應的過程。借助這些強大的工具,開發人員可以創建客製化的聊天機器人,提供無縫且用戶友好的互動體驗。無論您的目標是開發用於客戶服務、電子商務或任何其他目的的聊天機器人,本文都將向您介紹使用 Python 和 Rasa 建立聊天機器人的令人興奮的可能性!

開始使用Rasa

Rasa可作為Python軟體套件使用,並可使用pip進行安裝,pip是Python的軟體套件管理器。若要安裝Rasa,請開啟終端機或命令提示符,並執行下列命令:

pip install rasa

安裝完成後,您可以使用Rasa init指令建立一個新的Rasa專案。該命令將為您的聊天機器人專案建立一個新的目錄,其中包含所需的檔案和資料夾。

rasa init --no-prompt

這個指令將會建立一個新的Rasa項目,並且有以下目錄結構:

myproject/
├── actions/
├── data/
│   ├── nlu.md
│   ├── rules.md
│   └── stories.md
├── models/
├── tests/
├── config.yml
├── credentials.yml
├── domain.yml
├── endpoints.yml
└── README.md

actions資料夾包含定義聊天機器人自訂動作的Python腳本。 data資料夾包含以Markdown文件形式的訓練數據,用於NLU(自然語言理解)、故事和規則。 models資料夾包含訓練好的模型,供聊天機器人用於理解和回應查詢。

創建一個簡單的聊天機器人

要建立聊天機器人,您需要定義其網域、意圖、實體和操作。 domain.yml 檔案定義聊天機器人的網域,其中包括意圖、實體、槽和操作。

意圖是使用者的意圖,實體是使用者提供的資料來滿足他們的意圖。插槽用於儲存關於用戶的信息,例如他們的姓名或位置。動作是聊天機器人向使用者提供的回應。

這是一個範例的 domain.yml 檔案:

intents:
  - greet
  - goodbye
  - affirm
  - deny

entities:
  - name
  - location

slots:
  name:
    type: text
  location:
    type: text

actions:
  - utter_greet
  - utter_goodbye
  - utter_ask_name
  - utter_ask_location

在這個例子中,我們定義了四個意圖:greet(問候),goodbye(告別),affirm(確認)和deny(否認)。我們也定義了兩個實體:name(姓名)和location(位置)。最後,我們定義了四個動作:utter_greet(回答問候),utter_goodbye(回答告別),utter_ask_name(回答要求姓名)和utter_ask_location(回答要求位置)。

這些操作定義聊天機器人提供給使用者的回應。例如,utter_greet 操作可能會說「你好,今天需要什麼幫助嗎?」

一旦您定義了您的領域,您需要為您的聊天機器人提供訓練資料。您可以透過在資料資料夾中建立NLU、故事和規則檔案來實現這一點。

NLU 檔案包含使用者查詢及其對應意圖和實體的範例。下面是一個 NLU 檔案範例:

## intent:greet
- hello
- hi
- hey

## intent:

NLU檔案定義了四個意圖:greet(問候),goodbye(告別),affirm(確認)和deny(否認)。每個意圖都有一組使用者可能輸入的範例查詢。

故事檔案定義使用者與聊天機器人互動時可能採取的對話路徑。這是一個範例故事檔案:

## story1
* greet
  - utter_greet
* affirm
  - utter_ask_name
* inform{"name": "Alice"}
  - slot{"name": "Alice"}
  - utter_ask_location
* inform{"location": "New York"}
  - slot{"location": "New York"}
  - utter_thanks

## story2
* greet
  - utter_greet
* deny
  - utter_goodbye

這個特殊案例涉及兩個故事的定義。第一個故事從用戶問候聊天機器人開始,然後聊天機器人返回問候語並請求用戶的姓名。用戶提供他們的姓名,隨後聊天機器人會詢問他們的位置。最後,用戶提供他們的位置,聊天機器人表示感謝。

第二個故事以使用者問候聊天機器人開始。用戶否認需要幫助,聊天機器人會回覆一條告別訊息。

規則檔案定義了觸發特定動作的條件。以下是一個範例規則檔:

## rule1
# greet and ask for name
rule "greet and ask for name"
when
  # the user greets the chatbot
  intent: greet

then
  # ask the user for their name
  - utter_ask_name
end

在這個範例中,我們定義了一個規則,當使用者向聊天機器人打招呼時觸發utter_ask_name動作。

訓練與測試聊天機器人

一旦您定義了您的領域並提供了訓練數據,您可以使用Rasa train命令來訓練您的聊天機器人。

rasa train

此指令是根據您的訓練資料訓練一個機器學習模型,並將其儲存到模型目錄中。

要測試您的聊天機器人,您可以使用Rasa shell命令。這個指令會啟動一個shell,讓您可以使用文字輸入與聊天機器人進行互動。

rasa shell

這個指令啟動Rasa shell,您可以開始與您的聊天機器人互動。例如,您可以輸入「hello」來開始與您的聊天機器人對話。

Your input -> hello
Hello, how can I help you today?

结论

总之,Python和Rasa提供了出色的工具,用于创建能够有效理解和回应人类语言和互动的聊天机器人。通过定义聊天机器人的领域、意图、实体和动作,开发人员可以训练他们的聊天机器人以自然而高效的方式与用户进行互动。Rasa的先进的自然语言处理能力简化了开发能够提供出色客户体验的聊天机器人的过程。Python和Rasa为构建能够改善沟通和流程的聊天机器人提供了一个有用和直观的框架,无论是用于客户服务还是特定的业务领域。通过它们用户友好的界面和丰富的功能,Python和Rasa提供了一个可靠和高效的平台,用于构建激励用户和支持业务增长的聊天机器人。

以上是使用Python和Rasa的聊天機器人的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除