본문 바로가기

VS Code에서 Python으로 ChatGPT API 연동하기 – 설치부터 간단 콘솔 챗봇, 개선 아이디어까지

@mg-lab+2026. 2. 24. 09:31
반응형

VS Code + Python 환경에서 ChatGPT API로 나만의 콘솔 챗봇 만들기

1. 전체 흐름 한 번에 보기

이 글에서는 VS Code 환경에서 Python으로 OpenAI ChatGPT API를 연동해, 터미널에서 대화할 수 있는 간단한 콘솔 챗봇을 만드는 과정을 단계별로 정리합니다. 구성은 다음과 같습니다.

  • VS Code + Python 개발 환경 준비
  • 가상환경(venv) 설정 & 라이브러리 설치
  • OpenAI API 키 발급 및 환경 변수 설정
  • ChatGPT API 호출용 Python 코드 작성 (대화 히스토리 유지)
  • 실행 테스트 및 확장 아이디어

2. 개발 환경 준비 – VS Code + Python + 확장

먼저 기본 개발 환경을 준비합니다.

[4][2]

  • VS Code 설치
    - 공식 사이트에서 VS Code를 설치합니다. 한국어 UI가 필요하면 Korean Language Pack 확장을 추가하면 됩니다.
  • Python 설치
    - Python 3.10 이상 버전을 설치한 뒤, 터미널에서 python --version으로 버전을 확인합니다.
  • VS Code Python 확장
    - VS Code Extensions에서 “Python” 검색 → Microsoft 제공 Python 확장 설치.

이렇게 해 두면 VS Code에서 Python 파일 실행, 디버깅, 가상환경 인식이 편해집니다.

3. 프로젝트 폴더 생성 & 가상환경 구성

  1. 프로젝트 폴더 만들기
    - 예: chatgpt-vscode-demo 폴더 생성 후 VS Code에서 “폴더 열기”로 연다.
  2. VS Code 터미널 열기
    - 단축키: Ctrl + ` (백틱).
  3. 가상환경(venv) 생성
    python -m venv venv
  4. 가상환경 활성화
    - Windows (PowerShell):
    venv\Scripts\Activate
    - macOS / Linux:
    source venv/bin/activate
  5. 필요 패키지 설치
    최신 OpenAI 파이썬 라이브러리는 openai 패키지를 사용합니다.
    pip install --upgrade openai

가상환경을 쓰면 다른 프로젝트와 라이브러리 충돌을 피하고, 의존성 관리도 쉬워집니다.

4. OpenAI API 키 발급 & 환경 변수 설정

ChatGPT API를 사용하려면 OpenAI 계정과 API 키가 필요합니다.

  1. 키 발급
    - OpenAI 계정 로그인 → “API keys” 페이지 → 새 키 생성. - 키는 한 번만 전체가 보이므로, 안전한 곳에 복사해 둡니다.
  2. 환경 변수 설정 (코드에 키를 직접 넣지 않기 위해 권장)
     - Windows (PowerShell):
    $env:OPENAI_API_KEY = "여기에_발급받은_키_입력"
    - macOS / Linux:
    export OPENAI_API_KEY="여기에_발급받은_키_입력"

이제 코드에서 os.getenv("OPENAI_API_KEY")로 키를 읽어 올 수 있습니다.

5. 가장 기본적인 ChatGPT API 호출 예제

이제 실제로 Chat Completions API를 호출하는 가장 단순한 예제를 먼저 만들어 봅니다. VS Code에서 simple_test.py 파일을 만들고 아래 코드를 입력합니다.

from openai import OpenAI import os api_key = os.getenv("OPENAI_API_KEY") if not api_key: raise RuntimeError("OPENAI_API_KEY 환경 변수가 설정되어 있지 않습니다.") client = OpenAI(api_key=api_key) resp = client.chat.completions.create( model="gpt-4o-mini", # 사용 가능한 모델로 변경 가능 messages=[ {"role": "system", "content": "당신은 한국어를 잘하는 친절한 AI 비서입니다."}, {"role": "user", "content": "간단하게 자기소개해줘."} ], temperature=0.4, ) print(resp.choices.message.content) 

터미널에서 다음 명령으로 실행합니다.

python simple_test.py

정상적으로 동작하면 콘솔에 ChatGPT의 한국어 자기소개가 출력됩니다.

6. 대화 히스토리를 유지하는 콘솔 챗봇 구현

이제 한 번만 호출하는 것이 아니라, 여러 번 입력하면서 맥락을 유지하는 간단 콘솔 챗봇을 만들어 봅니다. app.py 파일을 생성하고 아래 코드를 넣습니다.

from openai import OpenAI import os # 1. API 키 읽기 api_key = os.getenv("OPENAI_API_KEY") if not api_key: raise RuntimeError("OPENAI_API_KEY 환경 변수가 설정되어 있지 않습니다.") client = OpenAI(api_key=api_key) # 2. 시스템 프롬프트 (역할 정의) SYSTEM_PROMPT = ( "당신은 한국어로 답변하는 친절한 AI 비서입니다. " "답변은 너무 길지 않게, 핵심 위주로 설명해주세요." ) def chat_loop(): # 대화 히스토리 messages = [ {"role": "system", "content": SYSTEM_PROMPT} ] print("💬 ChatGPT 콘솔 챗봇 시작!") print(" 끝내려면 /quit 를 입력하세요.\n") while True: user_input = input("나: ").strip() # 종료 명령 if user_input == "/quit": print("👋 챗봇을 종료합니다.") break # 빈 입력은 무시 if not user_input: continue # 3. 사용자 메시지 추가 messages.append({"role": "user", "content": user_input}) try: # 4. Chat Completions API 호출 response = client.chat.completions.create( model="gpt-4o-mini", messages=messages, temperature=0.3, ) except Exception as e: print(f"[에러] API 호출 중 문제가 발생했습니다: {e}") continue # 5. 응답 꺼내기 answer = response.choices.message.content # 6. 화면 출력 print("\n봇:", answer, "\n") # 7. 어시스턴트 메시지도 히스토리에 추가 messages.append({"role": "assistant", "content": answer}) if __name__ == "__main__": chat_loop() 

터미널에서 다음 명령을 실행합니다.

python app.py

이제 ‘나:’ 프롬프트에 질문을 계속 입력하면, 이전 대화 히스토리를 포함해 ChatGPT가 응답해 줍니다. /quit를 입력하면 루프가 종료되고 프로그램이 끝납니다.

7. 코드 구조 간단 해설

위 코드의 핵심 포인트를 정리하면 다음과 같습니다.

  • client 생성
    client = OpenAI(api_key=api_key)로 API 클라이언트를 만들고, 이후 client.chat.completions.create()로 요청을 보냅니다.
  • messages 배열
    - system: 모델의 역할·말투·언어 설정. - user: 사용자가 입력한 메시지. - assistant: 이전에 모델이 답한 메시지. 이 구조로 대화 맥락 전체를 계속 보내는 것이 Chat Completions 패턴입니다.
  • 모델 선택
    - 예제에서는 gpt-4o-mini를 사용했지만, 계정이 허용하는 범위에서 gpt-4o 등 다른 모델로 교체할 수 있습니다.
  • 온도(temperature)
    - 0에 가까울수록 일정하고 보수적인 답변, 1에 가까울수록 창의·랜덤성이 커집니다. - 예제에서는 0.3~0.4로 설정해 튀지 않으면서도 약간의 변주를 허용했습니다.

8. VS Code에서 더 편하게 사용하는 팁

VS Code는 Python 디버깅·코드 실행을 쉽게 해 주는 기능을 제공합니다.

  • 실행 버튼 사용
    - app.py 상단의 “Run Python File” 아이콘으로 바로 실행.
  • 디버깅
    - 좌측 Run & Debug 메뉴에서 “Python File” 구성 후, 중단점(breakpoint)을 찍어 변수 값·흐름을 확인하며 단계별 실행.
  • Dev Container (선택)
    - 팀 프로젝트라면 Dev Container로 컨테이너 안에 Python + openai 환경을 구성해, 모두 같은 개발 환경을 공유할 수도 있습니다.

9. 확장 아이디어 – 여기서 한 단계 더

기본 콘솔 챗봇이 동작한다면, 다음과 같은 방향으로 기능을 확장해 볼 수 있습니다.

  • 대화 로그 파일 저장 – 각 user/assistant 메시지를 chat_log.txt에 append해서, 나중에 대화 기록을 분석·재사용.
  • 프리셋 모드/summary, /translate 같은 명령에 따라 SYSTEM_PROMPT를 동적으로 변경.
  • 스트리밍 응답stream=True 옵션을 활용해 답변을 한 줄씩 받아오며 실시간 출력하는 형태로 바꾸기.
  • 간단 GUI 붙이기 – Tkinter, 또는 Flask/FastAPI + HTML로 웹 UI를 만들어 브라우저에서 사용하는 챗봇으로 확장.
  • 다국어 지원 – 시스템 프롬프트에 “질문 언어를 자동 감지해 같은 언어로 답하라”는 조건을 넣어 한국어/영어 혼합 대화 지원.

이 정도 셋업이면 VS Code + Python만으로도 실제 서비스 초기 프로토타입 수준의 챗봇을 빠르게 만들어 볼 수 있습니다.

반응형
mg-lab+
@mg-lab+ :: MG's Lab+

알짜정보만 요약&정리

공감하셨다면 ❤️ 구독도 환영합니다! 🤗

목차