자주 묻는 질문 ChatBot
자동으로 답변을 받는 것은 마법입니다!! 진짜 AI(튜링 테스트 기억하시나요?)
이 프로젝트는 간단한 질문-답변(원자 쿼리) 기반의 챗봇 프레임워크입니다. 다양한 벡터화 도구를 기반으로 유사성을 사용하여 일치하는 질문을 찾은 다음 해당 답변으로 응답합니다.
적용 범위:
- 일상적인 쿼리를 처리하려는 엄청난 수요
- 확장(레버리지, 자동화, 수동)
- 모국어 챗봇에서는 작업이 많지 않습니다(인류에 봉사).
참고:
- 이 챗봇은 먼저 카테고리 분류를 기반으로 한 다음 선택한 카테고리 내 유사성을 기반으로 합니다.
- NLU가 의도와 엔터티를 기반으로 하는 반면 대화 관리는 시퀀스/LSTM 예측을 기반으로 하는 인기 있는 오픈 소스 챗봇 프레임워크인 Rasa와는 다릅니다.
- 개념적으로는 Microsoft의 QnA Maker와 유사합니다. 그러나 가장 큰 차이점은 전체 github 코드 기반을 모두 얻으면 모델이 로컬이라는 것입니다. 서버에 아무것도 없습니다. 특히 HR 또는 재무와 같은 민감한 데이터 챗봇에 대한 보안이 향상되었습니다.
저작권 (C) 2019 Yogesh H Kulkarni
할 일
- HuggingFace 또는 Spacy를 통해 문장 임베딩 구현
- 전환 가능한 임베딩을 사용하여 전체 FAQ 챗봇 플랫폼 구축
- [New] LangChain + GPT-Index 또는 Pinecone(클라우드)과 같은 벡터 Db를 사용하여 FAQ를 수행할 수 있습니다.
작동 방식:
- 각 행에 질문-답변 클래스가 있는 csv(쉼표로 구분된 파일) 형식으로 FAQ를 제공합니다(예: "치약에 대한 GST 세율은 얼마입니까?,12,세율")
- 질문은 벡터화되어 분류 모델 [X=벡터(질문), y=클래스]와 함께 일치 준비가 유지됩니다.
- 사용자 쿼리가 오면 분류자 모델을 사용하여 해당 '클래스'가 예측되고 클래스 내에서 벡터화된 쿼리가 기존 벡터화된 질문과 일치됩니다.
- 가장 유사한 것이 무엇이든 그에 대한 답변이 사용자에게 제시됩니다.
스크립트:
- app.py: template/*.html을 사용하여 Flask를 사용하여 구축된 Chatbot UI
- bankfaqs.py: Chatbot 핵심 논리 및 지식 기반.
기타 데이터:
- 자주 묻는 질문: 질문과 답변이 포함된 csv 파일
- 정적 및 템플릿: Flask UI 관련 파일
실행하려면:
- app.py 실행
- 브라우저에서 http://127.0.0.1:8080/을 엽니다.
- 채팅 시작
종속성:
- Python 3.6, numpy, scipy, sklearn 필요
참고자료
- Bhavani Ravi의 이벤트 봇 코드, YouTube 비디오
- 뱅킹 FAQ 봇 코드
부인 성명:
- 작성자([email protected])는 프로그램 결과를 보장하지 않습니다. 그냥 재미있는 스크립트입니다. 아직 많은 개선이 이루어져야 합니다. 그러므로 그것에 전혀 의존하지 마십시오.