기본 코드 예제
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)