700===Dev Project/파이썬 챗봇

RASA (NLP AI Chatbot)

블로글러 2020. 11. 23. 12:51

Rasa is an open-source machine learning framework for automated text and voice-based conversations, enabling understanding of messages, holding conversations, and connecting to messaging channels and APIs.


The Big Picture

Imagine Rasa as a well-trained concierge at a hotel. This concierge can understand your requests, have a conversation with you, and even connect you to different services or other staff members.

Core Concepts

  1. Rasa Framework:
    • Understanding Messages: Interpreting what users say.
    • Holding Conversations: Managing the flow of dialogue.
    • Connecting to Channels and APIs: Interacting with external systems.
  2. Installation and Setup:
    • Pycharm: The integrated development environment (IDE) for Python.
    • Using pip for Installation:
      pip install rasa
      # If there's an issue, update pip and retry
      pip install --U pip
      pip install --U rasa
    • Initialization:
      rasa init
    • Training the Model:
      rasa train
    • Running the Shell:
      rasa shell

Detailed Walkthrough

  1. Setup in PyCharm:
    • Open PyCharm and navigate to the terminal.
    • Use pip to install Rasa:
      pip install rasa
    • If you encounter any issues, update pip and try installing Rasa again:
      pip install --U pip
      pip install --U rasa
  2. Initialization:
    • Initialize a new Rasa project with:
      rasa init
    • This command sets up a basic "Hello World" bot.
  3. Training the Model:
    • Train your model to understand and process user inputs with:
      rasa train
  4. Conversing with the Bot:
    • Use the Rasa shell to interact with your bot:
      rasa shell

Understanding Through an Example

Let's break down the main components in domain.yml which defines your assistant's structure:

  • Intents: Categories of user queries, e.g., affirm, deny, greet.
  • Entities: Keywords extracted from user messages, e.g., name.
  • Slots: Memory storage for the bot, e.g., a list of concerts.
  • Responses: Predefined replies, e.g., utter_greet.
  • Actions: Custom actions the bot can perform, e.g., action_search_concerts.
  • Session Configuration: Settings for conversation management, e.g., session expiration time.

Here's a sample domain.yml snippet:

intents:
  - affirm
  - deny
  - greet

entities:
  - name

slots:
  concerts:
    type: list
    influence_conversation: false

responses:
  utter_greet:
    - text: "Hey there!"
  utter_goodbye:
    - text: "Goodbye :("

actions:
  - action_search_concerts
  - action_search_venues

session_config:
  session_expiration_time: 60  # value in minutes
  carry_over_slots_to_new_session: true

Conclusion and Summary

Rasa is like a smart concierge, capable of understanding and responding to guests' requests, managing ongoing conversations, and connecting to other services. By setting up Rasa in PyCharm, you can train it to handle various intents, recognize entities, store conversation context, and perform actions. The domain.yml file is crucial as it outlines how the assistant processes and responds to user interactions.

Test Your Understanding

  1. How do you install Rasa using pip?
  2. What command do you use to initialize a new Rasa project?
  3. Explain the purpose of domain.yml in Rasa.
  4. What is an "intent" in Rasa?

Reference

 

728x90