Skip to content

LaonMoon/OSS_chatbot

Repository files navigation

OSS_chatbot

About the project

“안녕하세요, 경희대학교 제2기숙사 학식 알리미 챗봇입니다. 무엇을 도와드릴까요?”

"Hello, This is the 2nd dormitory cafeteria menu notification chatbot at Kyunghee University. How can I help you?"

  • 기본적인 대화

  • [help]

    • help : 사용할 수 있는 명령을 보여드려요.
    • about : about, 서비스 소개 등의 명령을 통해 챗봇에 대한 정보를 알아보세요.
    • 오늘/내일/이번주/(다음주) 메뉴 : ‘[오늘/내일/이번주/다음주] 메뉴 알려줘’를 통해 오늘의 메뉴를 알아봐요.
    • 오늘 학식 리뷰 입력 : “리뷰 작성” 등을 이용해 오늘의 리뷰를 남겨봐요.
    • 오늘 학식 평점 출력 : “오늘 학식 평점 어때"를 통해 오늘의 평점을 확인해요.
    • 오늘 학식 후기 출력 : "오늘 학식 후기 어때"를 통해 오늘의 후기를 확인해요.
    • 사용자 메뉴 지정 : “메뉴 지정”을 통해 좋아하는 메뉴를 미리 설정하고 알림을 받아요.
    • 사용자 지정 메뉴 알림
    • 시간 설정
    • 정해진 시간에 메뉴 알림
  • “help, 도움말, 명령어” 등 설명을 요구하는 input이 들어왔을 경우 가능한 명령어들을 출력한다.

    U : (help와 관련된 단어들)

    C : 사용할 수 있는 명령을 보여드려요. (위의 명령어 내용 출력)

  • “about, 서비스 소개” 등의 명령어를 입력하여 봇에 대한 간략한 설명을 볼 수 있다.

    • input : about, 서비스 소개
    • 동작 :

    제2기숙사 학식 알리미 챗봇에 대한 설명입니다.

    그 외 설명 : 개발자 소개, 서비스 시작 날짜 등

    U : (about과 관련된 단어들)

    C : 소개에 대한 위의 내용 출력

  • 사용자 입력 : 시작을 알려줄 메세지 입력(혹은 기본적으로 챗봇을 실행시키면 시간에 따라(점심 이전이면 중식, 석식 모두 불러오고, 점심 이후 시간이면 저녁 메뉴만 불러온다.) - 오늘 메뉴, 오늘 메뉴 뭐야, 학식 알려줘 등

    • “오늘” 메뉴를 알려달라는 인풋 → 오늘 메뉴관련 사용자 input 받거나 봇 실행시킬 때 디폴트로 출력
    • “내일” 메뉴 알려달라는 인풋 → 내일 메뉴
    • “이번주” 메뉴 → 이번 주 메뉴
    • (다음 주의 경우 제2기숙사 페이지에 식단이 올라왔을 경우에만 출력 가능 → 만약 다음주 메뉴를 알려달라고 했을 때 아직 db에 해당 요소가 없을 경우 아직 정보가 업로드 되지 않았다는 출력 보내기)

    (오늘 메뉴 예시 - 오늘, 내일, 이번 주의 경우 입력만 다르게 하면 똑같은 형식을 사용할 수 있다.)

    U : (사용자 입력 - 예시) [오늘/내일/이번 주] 메뉴 알려줘)

    C : [오늘/내일/이번 주] 메뉴를 알려드릴게요.

    **~~~ 저장되어 있는 식단 내역을 불러온다.~~~**

  • 오늘 학식 리뷰 입력 : 메뉴 입력 받고 리뷰 출력(메뉴 입력을 받거나 아니면 오늘 식단에 대한 리뷰만 가능하게 하거나)

  • 오늘 식단에 대한 리뷰만 작성할 수 있게 하려면 사용자가 “리뷰 작성” 등의 input을 주어서 리뷰를 남기도록 알려준다. - 사용자가 입력하는 경우 - input 1: 리뷰 작성 - 동작 : 소반,특식,석식 중 사용자가 먹은 종류를 선택 > 해당 메뉴의 별점을 입력 > text후기 (ex. "맛있다","별로였다") 입력 > 입 력완료 - input 2: 사용자가 메뉴에 대한 별점과 후기를 입력한다.

U : (사용자 입력 - 예시) 리뷰 작성)

학식 리뷰를 입력해주세요. 먼저 menu의 종류를 입력해주세요(소반,특식,석식)

U : (사용자 입력 - 예시) 소반)

입력해주셔서 감사합니다. 다음으로 menu의 별점을 0부터 5까지 정수형으로 입력하세요

U : 4

입력해주셔서 감사합니다. 다음으로 menu에 대한 text 후기를 남겨주세요

U : 안 먹으면 후회합니다. 최근 메뉴 중에 최고!

리뷰 입력이 완료되었습니다. 입력해주셔서 감사합니다.

  • 만약 각 단계에서 사용자가 올바르지 못한 입력을 했을 경우

학식 리뷰를 입력해주세요. 먼저 menu의 종류를 입력해주세요(소반,특식,석식)

U : (사용자 입력 - 예시) 맛있었어요!)

현재, 리뷰 작성 중 메뉴의 종류를 입력 중입니다.\n앞선 안내문에 따라 소반,특식,석식 중에서 입력해주십시오. 만약 리뷰 작성을 종료하고 싶다면 '처음으로' 라고 입력해주세요

입력해주셔서 감사합니다.\n다음으로, menu의 별점를 0부터5까지 정수형으로 입력하세요

U : (사용자 입력 - 예시) 100점!! 너무 맛있어요)

"잘못 입력하셨습니다.\n현재, 리뷰 작성 중 별점을 입력하는 부분입니다 앞선 안내문에 따라 0,1,2,3,4,5 중에서 정수형으로 입력해주세요\n만약 리뷰 작성을 종료하고 싶다면 '처음으로' 라고 입력해주세요

U : (사용자 입력 - 예시) 1)

입력해주셔서 감사합니다. 다음으로 menu에 대한 text 후기를 남겨주세요

U : (사용자 입력 - 예시) 처음으로)

리뷰 작성을 종료합니다

  • <오늘 학식 평점 출력 (평점의 통계)>
    • input : 오늘 학식 평점 어때
    • 사용자가 학식 평점을 보고 싶다는 input을 입력할 경우
    • output : 오늘 메뉴의 별점

U : (사용자 입력 - 예시) 오늘 학식 평점 어때)

**C : (리뷰가 있을 경우) 학식 평점을 보여드리겠습니다. 먼저 menu의 종류를 입력해주세요(소반,특식,석식) **

**C : (리뷰가 있을 경우) 사용자들이 입력한 점수의 평균은 별점 4.1점. **

  • [만약 각 단계에서 사용자가 올바르지 못한 입력을 했을 경우 ]

U : (사용자 입력 - 예시) 오늘 학식 평점 어때)

**U 학식 평점을 보여드리겠습니다. 먼저 menu의 종류를 입력해주세요(소반,특식,석식) **

**C : 맛있는 점심! **

U :잘못 입력하셨습니다. 앞선 안내문에 따라 소반,특식,석식 중에서 입력해주십시오. (만약 평점 확인 기능을 종료하고 싶다면 '처음으로'라고 입력해주세요)

**C : 소반 **

U : 사용자들이 입력한 점수의 평균은 별점 4.1점

**C : 처음으로 **

U : 평점 확인 기능이 종료됩니다

  • 오늘 학식 후기 출력 (평점 + 사용자들의 text 후기)
    • input : 오늘 학식 후기 어때
    • 사용자가 학식 후기을 보고 싶다는 input을 입력할 경우
    • output : 오늘 메뉴의 별점 + text 후기

U : (사용자 입력 - 예시) 오늘 학식 후기 어때)

**C : (리뷰가 있을 경우) 학식 리뷰를 보여드리겠습니다. 먼저 menu의 종류를 입력해주세요(소반,특식,석식) **

**U : 소반 **

**C : 1번째 후기 : 별점 3점, "그저 그래요" 2번째 후기 : 별점 5점 "너무 맛있어요!" **

  • [만약 각 단계에서 사용자가 올바르지 못한 입력을 했을 경우 ]

U : (사용자 입력 - 예시) 오늘 학식 후기 어때)

**C : (리뷰가 있을 경우) 학식 후기를 보여드리겠습니다. 먼저 menu의 종류를 입력해주세요(소반,특식,석식) **

**C : 맛있는 점심! **

U :잘못 입력하셨습니다. 앞선 안내문에 따라 소반,특식,석식 중에서 입력해주십시오. (만약 후기 확인 기능을 종료하고 싶다면 '처음으로'라고 입력해주세요)

**C : 소반 **

U : 1번째 후기 : 별점 3점, "그저 그래요" 2번째 후기 : 별점 5점 "너무 맛있어요!"

**C : 처음으로 **

U : 후기 확인 기능이 종료됩니다

  • 사용자 메뉴 지정
    • input : 메뉴 지정, 메뉴 설정 등
    • 사용자가 특정 메뉴(카레, 돈까스 등)를 입력할 수 있도록 한다.
    • output : 현재까지 해당 사용자가 등록한 메뉴들을 볼 수 있도록 한다. 새로 추가된 메뉴의 경우에는 (”new! 돈까스(이)가 등록되었습니다.”)라는 메세지를 보내줌.

U : (사용자 입력 - 예시) 메뉴 지정)

C : 원하시는 메뉴를 입력해주세요!(간단명료하게 음식을 지정할 수록 더 많은 추천을 받으실 수 있습니다. 눈꽃치즈돈까스(X) → 돈까스, 튀김카레라이스(X) → 카레)

U : 돈까스

C: “돈까스”를 좋아하는 메뉴로 지정하시겠습니까? 1) 예, 2) 아니오

U: 1

C: “돈까스”가 등록되었습니다.

  • 사용자가 지정한 메뉴 나올 시에 알림

    • 사용자가 지정한 메뉴가 나왔을때(지정한 단어가 포함되어 있는 메뉴(*** 단, 김치, 단무지와 같은 경우 매번 기본 반찬으로 나오기 때문에 이를 구분할 방법 필요함**)가 나왔을 때 특정한 시간을 지정하여(중식이라면 오전 9시, 석식이라면 오후 3,4시 정도) 사용자에게 알림을 준다.
    • “딩동! 지정하신 메뉴가 등장했어요. 오늘의 메뉴는 “눈꽃돈까스”입니다! 어서 가서 먹어볼까요?”
  • 시간 설정(★)

    • 오늘의 식단을 언제 알림 받을 것인지를 입력받는다.
    • input : 시간 설정, 알림 설정 등
    • 동작 : 대표적으로 지정할 수 있는 옵션을 제시한다.
      • 1) 오전 9시 2) 오후 1시 3) 등등 4) 사용자 입력
        • 사용자가 4)를 선택하였을 경우 직접 시간을 입력할 수 있도록 한다.(00:00과 같은 형식으로 시간을 지정해주세요)
    • output : 사용자가 선택한 시간을 알려줌.
      • “좋아요, 그럼 매일 “9시”에 오늘의 식단을 알려드릴게요.”
  • (★ 이후 실행) → 정해진 시간에 메뉴 알림

    • 사용자가 지정한 시간이 되었을 경우 오늘의 메뉴에 대한 메세지를 보낸다. 시간대에 따라 점심 이전일 경우 점심과 저녁 메뉴 모두 보내주고, 저녁 시간일 경우 저녁 메뉴만 보내준다.
    • 딩동! 오늘의 메뉴는 “눈꽃돈까스”입니다! 어서 가서 먹어볼까요?”

Getting Started ( Installation )

Usage

You can use demo chatbot at this page.

Roadmap

  • Make Default Chatbot
  • Crate Database
  • Add new feature

Contributing

@3un0ia

@Baejjjjjjjj

@HeySueng

@InseopSeo

@jamm-king

@LaonMoon

License

Apache License 2.0

Contact

[email protected]

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published