IT/Python

[Python] 파이썬으로 간단한 챗봇 만들기

멋진 선배 2025. 1. 21. 09:15
반응형

파이썬을 이용해서 간단한 챗봇을 만드는 방법에 대해서 알아보도록 하겠습니다. 챗봇은 사용자와 대화를 나누는 프로그램으로, 다양한 분야에서 활용되고 있습니다. 이 글에서는 초보자도 쉽게 따라할 수 있는 방법에 대해서 알아보도록 하겠습니다. 

준비 사항

먼저 필요한 라이브러리를 설치해야 합니다. 터미널에서 다음 명령어를 입력하세요.

pip install openai

OpenAI API 키 설정

OpenAI의 API를 사용하기 위해서는 API키가 필요 합니다. OpenAI 웹사이트에서 회원가입 후  API 키를 받을 수 있습니다.

코드 작성하기

이제 본격적으로 챗봇 코드를 작성해보겠습니다.

from openai import OpenAI

# API 키 설정
api_key = 'YOUR_API_KEY_HERE'
client = OpenAI(api_key=api_key)

def ask_openai(question, chat_log=None):
    if chat_log is None:
        chat_log = []
    messages = [{"role": "user", "content": msg} for msg in chat_log]
    messages.append({"role": "user", "content": question})
    
    response = client.chat.completions.create(
        model="gpt-3.5-turbo",
        messages=messages
    )
    
    answer = response.choices[0].message.content
    return answer

def chat():
    print("챗봇과의 대화를 시작합니다. 종료하려면 'exit'를 입력하세요.")
    chat_log = []
    while True:
        user_input = input("사용자: ")
        if user_input.lower() == 'exit':
            print("대화를 종료합니다...")
            break
        response = ask_openai(user_input, chat_log)
        print(f"챗봇: {response}")
        chat_log.extend([user_input, response])

if __name__ == "__main__":
    chat()

코드 설명

  1. OpenAI 라이브러리를 임포트하고 API 키를 설정 합니다.
  2. 'ask_openai' 함수는 사용자의 질문을 받아 OpenAI API를 전송하고 응답을 받아옵니다.
  3. 'chat' 함수는 사용자와 챗봇 간의 대화를 관리합니다. 사용자 입력을 받고, 챗봇의 응답을 출력 합니다.
  4. 메인 부분에서 'chat' 함수를 호출하여 대화를 시작 합니다.

챗봇 실행하기

코드를 실행하면 다음과 같이 챗봇과 대화 할 수 있습니다.

챗봇과의 대화를 시작합니다. 종료하려면 'exit'를 입력하세요.
사용자: 안녕하세요!
챗봇: 안녕하세요! 반갑습니다. 무엇을 도와드릴까요?
사용자: 오늘 날씨 어때요?
챗봇: 죄송합니다. 저는 실시간 날씨 정보를 제공하는 기능이 없습니다. 하지만 일반적인 날씨 관련 질문에 대해 답변할 수 있습니다. 예를 들어, 계절별 날씨 특징이나 날씨와 관련된 일반적인 정보에 대해 물어보실 수 있습니다. 혹시 다른 주제로 도움이 필요하신가요?
사용자: exit
대화를 종료합니다...

주의사항

  1. API 사용량 : OpenAI API는 사용량에 따라 요금이 부과될 수 있습니다. 무료 크래딧을 초과하지 않도록 주의하세요.
  2. 개인정보 보호 : 민감한 개인정보를 챗봇에 입력하지 않도록 주의하세요.
  3. 응답 품질 : 이 챗봇은 OpenAI의 GPT 모델을 사용하므로 때때로 부정확하거나 편향된 응답을 할 수 있습니다.

개선방향

  1. 맞춤형 학습 : 특정 도메인에 대한 지식을 가진 챗봇을 만들고 싶다면, 해당 분야의 데이터로 모델을 fine-tuning 할 수 있습니다.
  2. GUI 추가 : Streamlit 같은 라이브러리를 사용하여 웹 인터페이스를 추가할 수 있습니다.
  3. 대화 기록 저장 : 대화 내용을 파일이나 데이터베이스에 저장하여 챗봇의 성능을 분석하고 개선할 수 있습니다.
  4. 에러 처리 : API 호출 실패 등의 예외 상황에 대한 처리를 추가하여 안정성을 높일 수 있습니다.

결론

이렇게 간단한 코드로 파이썬을 이용해 챗봇을 만들어 보았습니다. OpenAI의 강력한 언어 모델을 활용하면 복잡한 알고리즘 없이도 꽤 똑똑한 챗보을 만들수 있습니다. 이를 기반으로 더 발전된 기능을 추가하거나, 특정 분야에 특화된 챗봇을 개발하면 좋을 것 같습니다.

 

 

 

반응형