RASA - 첫 번째 챗봇 만들기

8567 단어 chatbotairasanlp
아주 간단한 예부터 시작하겠습니다.
인사말에 응답하는 챗봇이 있습니다.

새로 시작하려면 data/nlu.yml , data/rules.yml , data/stories.ymldomain.yml 의 내용을 삭제하십시오.

의도



인사말을 의도라고 합니다. 의도를 메시지의 의미로 생각하십시오.
이 의도는 예를 들어 "안녕하세요!"라고 말하는 등 여러 가지 방법으로 표현할 수 있습니다. data/nlu.yml 파일에 이 의도를 생성합니다. 의도 아래의 예에서 사용자가 인사말 의도를 표현하기 위해 말할 수 있는 몇 가지 구를 나열합니다. 제안된 예제 수는 5개 이상입니다.

# data/nlu.yml
version: "2.0"

nlu:
  - intent: greet
    examples: |
      - hey
      - hello
      - hi
      - hello there
      - good morning
      - good evening
      - moin
      - hey there
      - let's go
      - hey dude
      - goodmorning
      - goodevening
      - good afternoon

인텐트와 해당 예시는 어시스턴트의 자연어 이해(NLU) 모델에 대한 학습 데이터로 사용됩니다. 모델이 일반화하는 법을 배우기 때문에 사용자가 말하는 것과 정확히 일치할 필요는 없습니다.
훈련을 위해 적어도 2개의 다른 의도DIETClassifier(의도 분류와 엔터티 인식을 모두 처리하는 아키텍처)가 필요하므로 또 다른 의도 mood_great를 추가합니다.

# data/nlu.yml
# ... previous content ...
  - intent: mood_great
    examples: |
      - perfect
      - great
      - amazing
      - feeling like a king
      - wonderful
      - I am feeling very good
      - I am great
      - I am amazing
      - I am going to save the world
      - super stoked
      - extremely good
      - so so perfect
      - so good
      - so perfect

documentation 에서 의도에 대해 자세히 알아볼 수 있습니다.

도메인



이제 domain.yml 파일을 살펴보겠습니다.
도메인은 어시스턴트가 작동하는 유니버스를 정의합니다.
data/nlu.yml 에서 모든 인텐트를 나열해야 합니다. 우리는 분위기를 맞이하라_위대한 두 가지를 가졌습니다.

# domain.yml
version: "2.0"

intents:
  - greet
  - mood_great

다음으로 챗봇이 말할 수 있는 응답을 정의합니다.
응답 이름은 utter_ 로 시작해야 합니다.
우리는 두 개를 만들 것입니다. 첫 번째는 utter_greet이라고 하는 인사말 의도에 대한 응답이고 두 번째는 utter_happy로 사용자가 기분이 좋다고 말하는 응답입니다. 각 응답의 이름 아래 응답 텍스트를 지정합니다.
응답에 여러 텍스트 옵션이 있는 경우 해당 응답이 예측될 때마다 이러한 옵션 중 하나가 무작위로 선택됩니다.

# domain.yml
# ... previous content ...
responses:
  utter_greet:
    - text: Hey! How are you?
    - text: Hi, how's it going?
  utter_happy:
    - text: Great, carry on!

documentation에서 응답에 대해 자세히 알아볼 수 있습니다.

이야기



스토리는 사용자가 대화에서 이전에 말한 내용에 따라 어시스턴트가 올바르게 응답하도록 교육하는 예제 대화입니다. 스토리 형식은 사용자 메시지의 의도와 어시스턴트의 작업 또는 응답을 보여줍니다.
첫 번째 이야기를 추가해 보겠습니다.

# data/stories.yml
version: "2.0"

stories:
  - story: happy path
    steps:
      - intent: greet
      - action: utter_greet
      - intent: mood_great
      - action: utter_happy

스토리의 이름, 이 경우 happy path는 가독성과 디버깅 목적을 위한 것입니다.
이 이야기에서 사용자와 어시스턴트는 인사를 주고받으며 사용자는 행복하다고 말하고 어시스턴트는 훌륭하다고 응답합니다.

documentation에서 스토리에 대해 자세히 알아볼 수 있습니다.

비서와 채팅



이제 어시스턴트가 해야 할 일을 지정했으면 rasa train 를 실행하여 어시스턴트를 훈련시킵니다.
교육이 완료되면 rasa shell를 실행합니다.
이제 비서와 대화할 수 있습니다.

엄청난! 잘 되었습니다.

어시스턴트 테스트



어시스턴트가 예상대로 작동하는지 확인하기 위해 테스트를 작성합니다.

# tests/test_stories.yml
version: "2.0"

stories:
  - story: happy path 1
    steps:
      - user: |
          hi
        intent: greet
      - action: utter_greet
      - user: |
          good
        intent: mood_great
      - action: utter_happy

이 테스트에서 우리는 사용자가 hi를 입력할 때 의도 인사로 분류하고 utter_greet 작업이 뒤따른다는 것을 말하고 있습니다.
그런 다음 사용자가 good이라고 대답하면 인텐트 mood_great로 분류하고 utter_happy 작업이 이어집니다.rasa test를 실행하여 이 테스트를 실행합니다.
다음 결과가 표시됩니다.


documentation에서 어시스턴트 테스트에 대해 자세히 알아볼 수 있습니다.

다음 장에서는 양식에 대해 살펴보겠습니다.

이 튜토리얼의 저장소:


펫7555 / rasa-dev-튜토리얼






이 튜토리얼의 끝에서 다음을 실행하여 리포지토리의 상태를 체크아웃할 수 있습니다.

git clone --branch 02-creating-chatbot [email protected]:petr7555/rasa-dev-tutorial.git

좋은 웹페이지 즐겨찾기