Post

OpenAI API 기반 챗봇 구현

OpenAI API를 활용한 챗봇 구현 프로젝트입니다. Python과 가상환경 설정, 패키지 설치, API 키 설정, 디렉토리 구조 설정, 메인 코드 작성, 그리고 실행 및 테스트 과정을 다룹니다.

OpenAI API 기반 챗봇 구현

1. 프로젝트 폴더 생성

  • 프로젝트 이름: LLM_gpt01

    1
    2
    
    mkdir LLM_gpt01
    cd LLM_gpt01
    
  • 프로젝트 폴더 내부 구조를 명확히 정리하여 관리하기 용이하게 설정.

2. 가상환경 생성 및 활성화

  • Python 가상환경을 통해 독립된 환경을 구성하여 외부 환경과의 충돌 방지.

    1
    
    python -m venv gpt_env
    
  • 가상환경 활성화:

    • Windows:

      1
      
      gpt_env\Scripts\activate
      
    • macOS/Linux:

      1
      
      source gpt_env/bin/activate
      

3. 패키지 다운로드

  • OpenAI API와 환경 변수 관리를 위한 패키지를 설치.

    1
    2
    
    pip install openai==0.28
    pip install python-dotenv
    
  • pip freeze > requirements.txt 명령어를 사용하여 설치된 패키지를 관리 가능.

4. .env 파일 생성 및 API 키 설정

  • 루트 폴더에 .env 파일 생성:

    1
    
    touch .env
    
  • .env 파일 내용:

    1
    
    OPENAI_API_KEY="오픈 API 키 입력하기"
    
  • .env 파일은 민감한 정보를 담고 있으므로 .gitignore에 반드시 추가.

5. 디렉토리 구조 설정

  • 디렉토리 구조:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    LLM_gpt01/          # 프로젝트 이름
    ├── gpt_env/        # 가상환경 폴더
    ├── main/           # 과제 진행할 폴더
    │   ├── main.py
    │   ├── text.txt
    │   └── simpletest.py
    │
    ├── .gitignore
    └── .env            # .gitignore 할 파일
    

6. main.py 파일 작성

  • 챗봇 기능을 구현하는 메인 Python 코드:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import openai
from dotenv import load_dotenv
import os

# 환경 변수 로드
load_dotenv()
openai.api_key = os.getenv("OPENAI_API_KEY")

# 초기 프롬프트 설정
prompt = "너는 영어 선생님이야. user의 영어 공부를 도와줘."
messages = [{"role": "system", "content": prompt}]

# 대화 기록 저장
with open("text.txt", "w", encoding="utf-8") as file:
    file.write("대화시작: " + prompt + "\n")

    while True:
        user_input = input("USER: ")

        if user_input.lower() == "그만":
            print("종료합니다.")
            break

        messages.append({"role": "user", "content": user_input})

        file.write("USER: " + user_input + "\n")

        response = openai.ChatCompletion.create(
            model="gpt-3.5-turbo",
            messages=messages
        )

        ai_response = response['choices'][0]['message']['content']

        print("AI: " + ai_response)

        file.write("AI: " + ai_response + "\n")
  • 주요 기능:
    1. OpenAI API와 연동하여 챗봇 동작 구현.
    2. dotenv 패키지를 활용해 환경 변수에서 API 키를 로드.
    3. 대화 내용을 text.txt 파일에 저장.
    4. 사용자가 “그만”을 입력하면 대화 종료.

7. .gitignore 설정

  • 민감한 파일을 Git에 포함하지 않도록 .gitignore 파일 작성:

    1
    2
    3
    
    .env
    gpt_env/
    text.txt
    

8. 실행 및 테스트

  • main.py 파일 실행:

    1
    
    python main/main.py
    
  • 실행 시 사용자 입력에 따라 AI가 영어 학습을 도와주는 응답 제공.
  • 대화 예시:
    1
    2
    3
    4
    
     USER: 안녕
     AI: 안녕하세요! 영어 공부를 시작하신 건가요? 무엇을 도와드릴까요?
     USER: 쉬운 영어 알려줘
     AI: 물론이죠! "Hello"는 "안녕"이라는 인사말을 영어로 표현한 것이에요. 다른 쉬운 영어 표현을 알려드릴까요?
    
This post is licensed under CC BY 4.0 by the author.