머신러닝 & 딥러닝/자연어처리

대학교 AI 질의응답 챗봇 만들기 - 12. 챗봇 API 개선하기(1)

by seokii 2022. 8. 11.
728x90
반응형

0. 포스팅 목록 & GitHub

(깃허브 스타 버튼 눌러주시면 글 작성에 큰 도움이 됩니다!)

https://github.com/Seokii/Chatbot4Univ

 

GitHub - Seokii/Chatbot4Univ: 대학생을 위한 AI 질의응답 챗봇 만들기

대학생을 위한 AI 질의응답 챗봇 만들기. Contribute to Seokii/Chatbot4Univ development by creating an account on GitHub.

github.com

https://seokii.tistory.com/146

 

[Project] 대학생을 위한 AI 질의응답 챗봇 만들기

1. GitHub https://github.com/Seokii/Chatbot4Univ GitHub - Seokii/Chatbot4Univ: 대학교 재학생을 위한 AI 질의응답 챗봇 대학교 재학생을 위한 AI 질의응답 챗봇. Contribute to Seokii/Chatbot4Univ development by creating an account o

seokii.tistory.com

 

1. 시작 문구 추가

@app.route('/hello', methods=['GET'])
def index():
    try:
        message = "안녕하세요, 호서대학교 챗봇 바울(PAUL)입니다.\n" \
                  "현재 다음 기능을 제공하고 있습니다.\n" \
                  "1.번호안내 2.장소안내\n" \
                  "사용예시 - (학과/트랙/기관명)번호 알려줘, (건물이름)위치 알려줘\n" \
                  "사용예시2 - 컴퓨터공학부 번호 알려줘, 상담실 위치 알려줘\n"\
                  "답변 받고 싶은 질문을 입력해주시면 빠르게 업데이트 하겠습니다."

        json_data = {
            'message': message
        }
        message = json.dumps(json_data, ensure_ascii=False)
        message = json.loads(message)
        return jsonify(message)

    except Exception as ex:
        # 오류 발생 시 500 Error
        abort(500)

API에 /hello 라우트를 추가해 챗봇 클라이언트에 접속시, GET방식으로 메시지를 받아오도록 설정했습니다.

 

 

2. 퀵리플라이형 json 객체 받아오기

# 챗봇 엔진 query 전송 API
@app.route('/query/<bot_type>', methods=['GET', 'POST'])
def query(bot_type):
    body = request.get_json()
    try:
        if bot_type == 'NORMAL':
            # 일반 질의응답 API
            ret = get_answer_from_engine(bottype=bot_type, query=body['query'])
            return jsonify(ret)
        elif bot_type == 'QUICK':
            with open("/home/hoseo420/python_chatbot/Chatbot4Univ/chatbot_api/static/json/quick_reply.json", "r", encoding='utf-8') as json_file:
                jdata = json.load(json_file)
            return jdata
        else:
            # 정의되지 않은 bot type인 경우 404 Error
            abort(404)

    except Exception as ex:
        # 오류 발생 시 500 Error
        abort(500)

챗봇을 사용하다보면 사용자가 직접 질문을 입력하고 응답을 받아오는 구조가 있고,

버튼을 눌러 빠르게 원하는 답변을 받아오는 퀵리플라이형 구조가 있습니다.

 

chatbot_api 폴더의 static/json 폴더를 생성하고 quick_reply.json의 형태로 파일을 작성했습니다.

퀵리플라이형의 버튼을 선택시, GET 방식으로 해당 json 객체를 받아올수 있도록 구현했습니다.

학사 일정, 도서관 이용 안내, 학칙 및 규정과 같은 사용자 어플리케이션에서 메뉴 버튼을 만들어 빠르게 답변을 받아올수 있는 방식으로 구현될 예정입니다.

json 작성 파일의 예시입니다. 다음 글에서 자세히 다루도록 하겠습니다.

 

 

728x90
반응형

댓글