django chatterbot

장종민·2023년 8월 24일
0

django

목록 보기
4/4

Chatterbot 사용법

  1. 기본 프로젝트 설정

    • 가상환경, 앱프로젝트 생성
  2. ChatterBot을 사용하기 위한 라이브러리 설치

     python -m pip install wheel==0.33.0
     pip install -U chatterbot==1.0.4
     pip install pytz
  3. 프로젝트 폴더 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"
    
  4. 마이그레이트 하기

     python manage.py makemigrations
     python manage.py migrate
  5. 앱 폴더의 urls.py 내용추가

    from django.urls import path
    from . import views
    
    urlpatterns = [
        path('chat/', views.chat, name='chat')
    ]
  6. 프로젝트 폴더의 urls.py 내용추가

    from django.contrib import admin
    from django.urls import path, include
    
    urlpatterns = [
        path("admin/", admin.site.urls),
        path("", include("chatbot_app.urls")),
    ]
  7. 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>
  8. 앱 폴더 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')
  9. 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"
  10. views에 아래 내용 추가

    from chatterbot.trainers import ChatterBotCorpusTrainer
    
    chatbot = ChatBot(**settings.CHATTERBOT)    # 해당 내용은 함수에서 빼서 전역으로 선언
    trainer = ChatterBotCorpusTrainer(chatbot)
    trainer.train("chatterbot.corpus.korean")
  11. django_env > Lib > site-packages > chatterbot_corpus > data에 한글 패키지 추가하기

  12. 앱폴더 views.py에 내용 추가

    import collections.abc
    collections.Hashable = collections.abc.Hashable
profile
비전공 오르미부트캠프 2기

0개의 댓글

관련 채용 정보