[파이썬][AI Chatbot] Rasa의 Core (대화 관리) 예제

Rasa의 Core는 대화 흐름을 관리하고 응답을 생성하는 역할을 합니다. 사용자와 시스템 간의 상호작용을 조율하고 대화 로직을 구축하는 데 사용됩니다. 아래는 Rasa Core의 예제 코드입니다.

먼저, Rasa를 설치합니다:

pip install rasa` 

다음은 Rasa Core의 예제 코드입니다:

  1. Core 대화 흐름 설정:

    Rasa Core의 대화 흐름을 정의합니다. 아래는 대화 흐름의 예제 (data/stories.md)입니다:

## greet
    * greet
     - utter_greet
    
    ## goodbye
    * goodbye
       - utter_goodbye
    
    ## book_flight
    * book_flight
     - utter_ask_city
    * provide_city{"city": "London"}
       - utter_confirm_city{"city": "London"}
       - utter_ask_date
    * provide_date{"date": "2023-08-18"}
     - utter_confirm_date{"date": "2023-08-18"}
     - utter_booking_confirmation` 
  1. Core 정책 설정:

    Rasa Core의 정책(policy)을 설정합니다. 아래는 정책 설정의 예제 (config.yml)입니다:

policies:
      - name: MemoizationPolicy
      - name: TEDPolicy
        max_history: 5
      - name: RulePolicy
  1. Rasa Core 모델 훈련:

    Core 대화 흐름과 정책 설정을 사용하여 Rasa Core 모델을 훈련합니다.

    `rasa train core` 
  1. Rasa Core 대화 테스트:

    훈련된 Core 모델을 사용하여 대화 흐름을 시뮬레이션하고 시스템 응답을 생성합니다.

    `rasa shell` 
이후에 사용자의 발화를 입력하면 해당 발화에 대한 시스템 응답이 출력됩니다.

위의 예제에서는 “greet”, “goodbye”, “book_flight” 등의 대화 흐름을 정의하고, 응답 메시지를 연결하여 사용자와의 대화를 구성합니다. Rasa Core를 사용하여 더 복잡한 대화 흐름을 구현하고, 사용자와의 상호작용을 관리할 수 있습니다.