ChatterBot 인공지능 챗봇 구현 가이드 (사용법)

기본 코드 예제

from chatterbot import ChatBot
from chatterbot.trainers import ListTrainer

# 대화형 AI 챗봇 생성
ai_assistant = ChatBot("AI도우미",
    trainer='chatterbot.trainers.ListTrainer',
)

# 대화 데이터 학습
dialogue_pairs = [
    "안녕하세요",
    "안녕하세요! 만나서 반갑습니다.",
    "안녕하세요!"
]
ai_assistant.train(dialogue_pairs)

dialogue_pairs = [
    "어떻게 지내세요?",
    "저는 잘 지내고 있습니다. 감사합니다!"
]
ai_assistant.train(dialogue_pairs)

dialogue_pairs = [
    "당신의 이름은 무엇인가요?",
    "저는 AI도우미입니다"
]
ai_assistant.train(dialogue_pairs)

dialogue_pairs = [
    "오늘 날씨가 어떤가요?",
    "제가 날씨를 알 수는 없지만, 좋은 하루 보내세요!"
]
ai_assistant.train(dialogue_pairs)

dialogue_pairs = [
    "ㅎㅎ",
    "ㅎㅎ",
    "ㅎㅎㅎ"
]
ai_assistant.train(dialogue_pairs)

# 대화 루프
while True:
    user_input = input("사용자: ")
    bot_response = ai_assistant.get_response(user_input)
    print("AI:", bot_response)

AI도우미는 챗봇의 이름으로 기능에는 영향을 주지 않습니다.

dialogue_pairs 리스트는 학습할 대화 데이터로, 질문과 답변 쌍으로 구성됩니다.

기본적으로 사용되는 Levenshtein distance 알고리즘은 엔진이 대화 데이터에서 가장 유사한 답변을 선택하도록 합니다.

또한 ChatBot 생성 시 다음과 같은 옵션을 추가할 수 있습니다:

logic_adapters=[
    {
        'import_path': 'chatterbot.logic.BestMatch'
    },
    {
        'import_path': 'chatterbot.logic.LowConfidenceAdapter',
        'threshold': 0.65, # 일치도 임계값
        'default_response': '죄송하지만, 잘 이해하지 못했습니다.' # 일치도가 낮을 때 기본 응답
    }
]

read_only=True # 사용자 입력을 학습하지 않도록 설정 (권장: 비활성화, 무작위 학습이 발생할 수 있음)

고급 설정 버전

from chatterbot import ChatBot
from chatterbot.trainers import ListTrainer

# 고급 설정으로 챗봇 생성
ai_assistant = ChatBot("AI도우미",
    trainer='chatterbot.trainers.ListTrainer',
    read_only=True,
    logic_adapters=[
    {
        "import_path": 'chatterbot.logic.BestMatch'# 응답 로직
    },
    
    {
        "import_path": 'chatterbot.logic.LowConfidenceAdapter',# 응답 로직
        "threshold": 0.65,# 신뢰도가 낮으면 기본 응답
        "default_response": "저는 아직 배우는 단계라 답변을 잘 못할 수 있어요"
    }]
)

# 대화 데이터 학습
dialogue_pairs = [
    "안녕하세요",
    "안녕하세요! 만나서 반갑습니다.",
    "안녕하세요!"
]
ai_assistant.train(dialogue_pairs)

dialogue_pairs = [
    "어떻게 지내세요?",
    "저는 잘 지내고 있습니다. 감사합니다!"
]
ai_assistant.train(dialogue_pairs)

dialogue_pairs = [
    "당신의 이름은 무엇인가요?",
    "저는 AI도우미입니다"
]
ai_assistant.train(dialogue_pairs)

dialogue_pairs = [
    "오늘 하루는 어땠나요?",
    "저는 잘 지내고 있습니다. 감사합니다!"
]
ai_assistant.train(dialogue_pairs)

dialogue_pairs = [
    "ㅎㅎ",
    "ㅎㅎ",
    "ㅎㅎㅎ"
]
ai_assistant.train(dialogue_pairs)

# 대화 루프
while True:
    user_input = input("사용자: ")
    bot_response = ai_assistant.get_response(user_input)
    print("AI:", bot_response)

태그: ChatterBot 인공지능 챗봇 파이썬

6월 1일 20:06에 게시됨