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. 프로젝트 폴더 생성 & 가상환경 구성
- 프로젝트 폴더 만들기
- 예:chatgpt-vscode-demo폴더 생성 후 VS Code에서 “폴더 열기”로 연다. - VS Code 터미널 열기
- 단축키:Ctrl + `(백틱). - 가상환경(venv) 생성
python -m venv venv - 가상환경 활성화
- Windows (PowerShell):
- macOS / Linux:venv\Scripts\Activatesource venv/bin/activate - 필요 패키지 설치
최신 OpenAI 파이썬 라이브러리는openai패키지를 사용합니다.pip install --upgrade openai
가상환경을 쓰면 다른 프로젝트와 라이브러리 충돌을 피하고, 의존성 관리도 쉬워집니다.
4. OpenAI API 키 발급 & 환경 변수 설정
ChatGPT API를 사용하려면 OpenAI 계정과 API 키가 필요합니다.
- 키 발급
- OpenAI 계정 로그인 → “API keys” 페이지 → 새 키 생성. - 키는 한 번만 전체가 보이므로, 안전한 곳에 복사해 둡니다. - 환경 변수 설정 (코드에 키를 직접 넣지 않기 위해 권장)
- Windows (PowerShell):
- macOS / Linux:$env:OPENAI_API_KEY = "여기에_발급받은_키_입력"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만으로도 실제 서비스 초기 프로토타입 수준의 챗봇을 빠르게 만들어 볼 수 있습니다.
'IT+ > AI' 카테고리의 다른 글
| AI 에이전트 시대, 2026년에 떠오르는 ‘일하는 AI’와 워크플로 자동화 트렌드 (0) | 2026.03.03 |
|---|---|
| VS Code에서 Python으로 Gemini API 연동하기 – 설치부터 콘솔 챗봇, 멀티턴 대화까지 (0) | 2026.02.25 |
| 요즘 많이 쓰는 주요 AI 챗봇 4종 비교 – ChatGPT, Claude, Gemini, Perplexity (0) | 2026.02.21 |
| SLM(스몰 언어 모델)과 엣지 AI, 2026년 ‘작은 모델’이 만드는 현실적인 AI 혁신 (1) | 2026.02.05 |
| 현대자동차그룹 로봇 전략, ‘피지컬 AI’로 공장·물류·서비스를 다시 짜다 – 아틀라스부터 웨어러블 로봇까지 (0) | 2026.01.28 |