기본 프로젝트 설정
ChatterBot을 사용하기 위한 라이브러리 설치
python -m pip install wheel==0.33.0
pip install -U chatterbot==1.0.4
pip install pytz
프로젝트 폴더 settings.py 내용 추가
INSTALLED_APPS = [
...
"chatterbot.ext.django_chatterbot",
"프로젝트 이름",
...
]
# CHATTERBOT을 사용하기 위한 설정
CHATTERBOT = {
"name": "Chatterbot",
"django_app_name": "chatbot_app",
"storage_adapter": "chatterbot.storage.DjangoStorageAdapter",
}
CHATTERBOT_RESPONSE_SELECT_METHOD = "chatterbot.ext.django_chatterbot.select_example_response"
마이그레이트 하기
python manage.py makemigrations
python manage.py migrate
앱 폴더의 urls.py 내용추가
from django.urls import path
from . import views
urlpatterns = [
path('chat/', views.chat, name='chat')
]
프로젝트 폴더의 urls.py 내용추가
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path("admin/", admin.site.urls),
path("", include("chatbot_app.urls")),
]
templates 생성하고 html 파일 만들기.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ChatBot Example</title>
</head>
<body>
<h1>ChatterBot과 함께 나누는 대화</h1>
<form method="post">
{% csrf_token %}
<labe for="user_input">사용자 입력 : </labe>
<input type="text" name="user_input" id="user_input">
<button type="submit">전송</button>
</form>
{% if user_input %}
<p><strong>사용자: </strong>{{ user_input }}</p>
<p><strong>Oreumi: </strong>{{ response }}</p>
{% endif %}
</body>
</html>
앱 폴더 views.py에 내용 추가
# ChatterBot 사용을 위한 import
from chatterbot import ChatBot
from chatterbot.ext.django_chatterbot import settings
# Create your views here.
def chat(reqeust) :
if request.method == 'POST' :
user_input = request.POST.get('user_input')
# ChatterBot 가져오기
chatbot = ChatBot(**settings.CHATTERBOT )
response = chatbot.get_response(user_input)
data = {
"user_input" : user_input,
"response" : response,
}
return render(request, 'chatbot_app/chat.html', data)
return render(request, 'chatbot_app/chat.html')
chatterbot이 안된다면 settings.py에서 아래 내용 주석처리
# # CHATTERBOT을 사용하기 위한 설정
# CHATTERBOT = {
# "name": "Chatterbot ",
# "django_app_name": "chatbot_app",
# "storage_adapter": "chatterbot.storage.DjangoStorageAdapter",
# }
# CHATTERBOT_RESPONSE_SELECT_METHOD = "chatterbot.ext.django_chatterbot.select_example_response"
views에 아래 내용 추가
from chatterbot.trainers import ChatterBotCorpusTrainer
chatbot = ChatBot(**settings.CHATTERBOT) # 해당 내용은 함수에서 빼서 전역으로 선언
trainer = ChatterBotCorpusTrainer(chatbot)
trainer.train("chatterbot.corpus.korean")
django_env > Lib > site-packages > chatterbot_corpus > data에 한글 패키지 추가하기
앱폴더 views.py에 내용 추가
import collections.abc
collections.Hashable = collections.abc.Hashable