Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Chatbot menggunakan Python dan Rasa

Chatbot menggunakan Python dan Rasa

WBOY
WBOYke hadapan
2023-09-15 11:33:02891semak imbas

Chatbot menggunakan Python dan Rasa

Chatbots telah diiktiraf sebagai alat komunikasi pilihan untuk perusahaan berinteraksi dengan pelanggan, menyediakan cara interaksi yang lebih cekap dan mudah. Python, bahasa pengaturcaraan yang dipermudahkan oleh sumber pembangunannya, telah menjadi pilihan pertama untuk membina pelbagai bot sembang. Rasa, sebaliknya, ialah alat khusus yang memfokuskan pada membina chatbots dengan pemahaman bahasa semula jadi.

Dalam artikel ini, kita akan menyelidiki dunia pembangunan chatbot yang menarik menggunakan Python dan Rasa. Kami akan melihat dengan lebih dekat proses mentakrifkan tujuan chatbot, melatihnya untuk memahami bahasa semula jadi dan memperhalusi responsnya melalui latihan. Dengan alatan berkuasa ini, pembangun boleh mencipta chatbot tersuai yang memberikan pengalaman interaktif yang lancar dan mesra pengguna. Sama ada matlamat anda adalah untuk membangunkan bot sembang untuk perkhidmatan pelanggan, e-dagang atau apa-apa tujuan lain, artikel ini akan memperkenalkan anda kepada kemungkinan menarik membina bot sembang menggunakan Python dan Rasa!

Mulakan dengan Rasa

Rasa tersedia sebagai pakej Python dan boleh dipasang menggunakan pip, pengurus pakej Python. Untuk memasang Rasa, buka terminal atau command prompt dan jalankan arahan berikut:

pip install rasa

Selepas pemasangan selesai, anda boleh menggunakan arahan Rasa init untuk mencipta projek Rasa baharu. Perintah ini akan mencipta direktori baharu untuk projek chatbot anda yang mengandungi fail dan folder yang diperlukan.

rasa init --no-prompt

Arahan ini akan mencipta projek Rasa baharu dengan struktur direktori berikut:

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

Folder tindakan mengandungi skrip Python yang mentakrifkan tindakan tersuai untuk chatbot. Folder data mengandungi data latihan dalam bentuk fail Markdown untuk NLU (pemahaman bahasa semula jadi), cerita dan peraturan. Folder model mengandungi model terlatih yang digunakan oleh chatbot untuk memahami dan menjawab pertanyaan.

Buat chatbot mudah

Untuk membuat chatbot, anda perlu menentukan domain, niat, entiti dan tindakannya. Fail domain.yml mentakrifkan domain chatbot, yang merangkumi niat, entiti, slot dan tindakan.

Niat ialah niat pengguna dan entiti ialah data yang disediakan oleh pengguna untuk memenuhi niat mereka. Slot digunakan untuk menyimpan maklumat tentang pengguna, seperti nama atau lokasi mereka. Tindakan ialah respons yang disediakan oleh chatbot kepada pengguna.

Berikut ialah contoh fail 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

Dalam contoh ini, kita telah mentakrifkan empat niat: memberi salam (salam), selamat tinggal (perpisahan), mengesahkan (mengesahkan) dan menafikan (menyangkal). Kami juga mentakrifkan dua entiti: nama dan lokasi. Akhir sekali, kami mentakrifkan empat tindakan: utter_greet (jawab salam), utter_goodbye (jawapan selamat tinggal), utter_ask_name (jawapan nama permintaan) dan utter_ask_location (jawapan lokasi permintaan).

Tindakan ini mentakrifkan respons yang diberikan oleh bot sembang kepada pengguna. Contohnya, tindakan utter_greet mungkin berkata "Helo, bagaimana saya boleh membantu anda hari ini?"

Setelah anda menentukan domain anda, anda perlu menyediakan data latihan untuk chatbot anda. Anda boleh melakukan ini dengan mencipta fail NLU, cerita dan peraturan dalam folder data.

Fail NLU mengandungi contoh pertanyaan pengguna dan niat serta entiti yang sepadan. Berikut ialah contoh fail NLU:

## intent:greet
- hello
- hi
- hey

## intent:

Fail NLU mentakrifkan empat niat: memberi salam (salam), selamat tinggal (perpisahan), mengesahkan (mengesahkan) dan menafikan (menafikan). Setiap niat mempunyai satu set contoh pertanyaan yang mungkin dimasukkan oleh pengguna.

Fail cerita mentakrifkan laluan perbualan yang mungkin diambil pengguna semasa berinteraksi dengan chatbot. Berikut adalah contoh fail cerita:

## 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

Kes ini melibatkan definisi dua cerita. Cerita pertama bermula dengan pengguna menyapa chatbot, yang kemudiannya membalas salam dan meminta nama pengguna. Pengguna memberikan nama mereka dan chatbot kemudian meminta lokasi mereka. Akhirnya, pengguna menyediakan lokasi mereka dan chatbot mengucapkan terima kasih kepada mereka.

Cerita kedua bermula dengan pengguna menyapa chatbot. Pengguna menafikan memerlukan bantuan dan chatbot membalas dengan mesej perpisahan.

Fail peraturan mentakrifkan keadaan yang mencetuskan tindakan tertentu. Berikut ialah contoh fail peraturan:

## 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

Dalam contoh ini, kami telah menentukan peraturan yang mencetuskan tindakan utter_ask_name apabila pengguna menyambut chatbot.

Latih dan uji chatbots

Setelah anda menentukan domain anda dan menyediakan data latihan, anda boleh menggunakan arahan kereta api Rasa untuk melatih chatbot anda.

rasa train

Arahan ini melatih model pembelajaran mesin berdasarkan data latihan anda dan menyimpannya ke direktori model.

Untuk menguji chatbot anda, anda boleh menggunakan arahan shell Rasa. Perintah ini melancarkan shell yang membolehkan anda berinteraksi dengan chatbot menggunakan input teks.

rasa shell

Arahan ini memulakan shell Rasa dan anda boleh mula berinteraksi dengan chatbot anda. Contohnya, anda boleh menaip "hello" untuk memulakan perbualan dengan chatbot anda.

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

结论

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

Atas ialah kandungan terperinci Chatbot menggunakan Python dan Rasa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam