Coder Social home page Coder Social logo

rule_based_chatbot's Introduction

rule_based_chatbot

bert모델은 너무 무거워 네이버 클라우드의 무료 서버([MICRO] 1vCPU, 1GB Mem, 50GB Disk [g1]) 사양에서는 응답이 20분 뒤에 와 규칙기반 챗봇을 적용하였습니다.

🤖 개인 프로젝트 소개

실무자들을 위한 민원 상담 챗봇입니다. 민원처리법 해석, 서식민원 접수 방법 등을 설명해줍니다.

개발 기간

  • 2023.01.01. ~ 2023.01.31.

결과물

image http://www.minwonchatbot.site/

  • 질문 예시 (실무자들 대상이라 몇 개의 질문 예시를 들겠습니다.)
    • 이송할 때 어떻게 하니?
    • 민원이란?

설명

요구사항 및 해결 방법

  • 사용자는 원하는 양식이 필요한 경우 다운로드 받을 수 있습니다.
    • 사용자가 "취하원 양식이 뭐야?"라는 질문을 하면 "취하원 양식"을 다운로드 받을 수 있는 링크가 등장합니다.
  • 답변이 빠르게 와야 합니다.
    • 서버가 감당할 수 있는 모델의 무게를 결정해야 합니다.
  • 정확한 답변이 와야 합니다.
    • DB를 연동해서 이상한 답변이 가는 데이터들을 모아 주기적으로 올바른 답변으로 업데이트 합니다.

Chatbot

- 데이터가 부족한 경우, Bert 모델을 이용할 수도 있습니다.
- 내부 python파일을 필요에 따라 원하는 모델로 바꾸시면 됩니다.
- 규칙기반 챗봇의 경우 데이터가 많고 특정 분야가 정해진 경우에 이용합니다.
- 위 챗봇은 민원처리에 관한 특정 분야가 정해져 있기 때문에 규칙 기반으로 정했습니다.

Web

백엔드

  • 규칙 기반을 통해 답변을 찾는 python 외부 파일을 Java가 실행해야 합니다.
    • ProcessBuilder를 이용하여 외부에 있는 python 파일을 실행했습니다.
    • 프로젝트의 src\main\java\hello\chatbot\python 안에 놓았지만 실제는 외부에 있어야 합니다.
  • 사용자는 원하는 양식이 필요한 경우 다운로드 받을 수 있습니다.
    • excel에 저장된 답변 데이터에 태그를 통해 파일의 링크를 넣었습니다.
    • 이 답변 데이터는 src\main\java\hello\chatbot\domain\question에 있는 **"FileLinkMaker"**를 통해서 HTML태그를 분리합니다.
    • 분리된 HTML에 태그는 Javascript에서 HTML태그를 만드는 innerhtml를 통해서 HTML 태그로 리턴됩니다.

프론트

  • 비동기 통신으로 이루어지기 때문에 Javascript의 Ajax를 사용했습니다.

DB

- 규칙 기반 챗봇의 경우 대량의 데이터가 필요하기 때문에 사용자로부터 잘못된 답변이 오는 경우 DB에 쌓이도록 구현했습니다.
- 사용자가 잘못된 답변을 받은 경우 "바보: 잘못된 답변이 간 질문"을 챗팅창에 넣으면 이 데이터가 DB에 쌓입니다.
- 올바른 답변 데이터를 연결하는 작업을 주기적으로 진행합니다.
- 두 달간 실무자들이 자주 질문하는 내용을 모았고 민원처리법을 기반으로 작성하였습니다.

rule_based_chatbot's People

Contributors

byeolhaha avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.