1. 서론
대규모 언어모델(LLM, Large Language Model)은 단순 질의응답을 넘어, 맥락을 이해하고 연속적인 대화를 이어갈 수 있는 지능을 제공합니다.
OpenAI의 Chat API는 기존 텍스트 완성 모델과 달리 대화 메시지(message) 구조를 기반으로 설계되어, 대화 맥락 추적, 역할 지정, 스트리밍 응답이 가능합니다.
이 문서는 개발자가 Playground 실험 → Python 코드 구현 → Streamlit/Gradio UI 적용 → 금융/엔터테인먼트 응용까지 차근차근 따라 할 수 있는 학습형 화이트 페이퍼입니다.
2. OpenAI Playground에서 Chat 기능 이해하기
2.1 Playground 개요
- OpenAI Playground는 브라우저 기반 실험실로, API 호출을 직접 작성하지 않고도 모델을 실험할 수 있는 환경입니다.
- 주소: OpenAI Playground Chat
- 결제 정보(카드 등록)가 필요하며, 소규모 크레딧 제공 후 사용량에 따라 과금됩니다.
Playground는 빠른 프로토타입 제작에 유용하며, 추후 Python 코드/API 호출로 확장하기 전에 개념을 이해하기 좋은 툴입니다.
2.2 메시지 구조와 역할(role)
Chat API의 핵심은 messages
배열입니다.
각 메시지는 아래 3가지 역할(role) 중 하나를 가집니다:
- system: 모델의 페르소나를 정의 예:
"너는 요리 연구가야. 가을 제철 요리를 설명해줘."
- user: 사용자의 질문이나 지시 입력
- assistant: AI가 응답한 내용
예시 대화 (Playground UI)
system : 너는 시적 보조자야. 복잡한 프로그래밍 개념을 시로 설명해.
user : 재귀(recursion)의 개념을 한국어 시로 설명해줘.
assistant : (재귀 개념을 시로 표현한 응답)
2.3 요청 메시지 형식 (Chat Completion Request Body)
{
"model": "gpt-4o-mini",
"messages": [
{"role":"system", "content":"너는 자바 개발 전문가야."},
{"role":"user", "content":"스프링 프레임워크의 장점을 알려줘"}
],
"temperature": 0.7,
"max_tokens": 500,
"stream": false
}
주요 파라미터 정리
파라미터 | 설명 | 예시 |
---|---|---|
model | 사용할 모델 ID | "gpt-4o" , "gpt-4o-mini" |
messages | 대화 기록 (system, user, assistant) | 리스트 형태 |
temperature | 무작위성 조절 (0=결정적, 2=창의적) | 0.7 |
max_tokens | 생성할 최대 토큰 수 | 500 |
stream | 스트리밍 응답 여부 | true / false |
stop | 특정 문자열에서 응답 중단 | [“종료”, “\n\n”] |
2.4 대화 맥락 유지 전략
대화형 챗봇은 사용자 입력과 AI 응답을 계속 messages 배열에 누적해야 합니다.
messages = [] # 대화 기록 저장
while True:
content = input("사용자: ")
if content == "종료":
break
messages.append({"role":"user", "content":content})
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=messages
)
answer = response.choices[0].message.content
print("AI:", answer)
messages.append({"role":"assistant", "content":answer})
3. Python 기반 구현 실습
3.1 환경 준비
pip install openai python-dotenv
3.2 .env 파일 생성
OPENAI_API_KEY=sk-xxxxxxxx
3.3 기본 코드
from openai import OpenAI
import os
from dotenv import load_dotenv
load_dotenv()
api_key = os.getenv("OPENAI_API_KEY")
client = OpenAI(api_key=api_key)
messages = [{"role":"user", "content":"봄에 대해 알려줘"}]
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=messages
)
print(response.choices[0].message.content)
4. [실습] Streamlit 기반 챗봇
4.1 Streamlit 설치
pip install streamlit
4.2 단일 질문 챗봇
# st_main_01.py
import streamlit as st
from openai import OpenAI
import os, dotenv
dotenv.load_dotenv()
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
st.title("AI Chatbot")
user_question = st.text_input("질문을 입력하세요:")
if st.button("질문하기"):
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role":"user","content":user_question}],
max_tokens=100
)
st.write(response.choices[0].message.content)
실행:
streamlit run st_main_01.py
4.3 Spinner 적용 (로딩 UI)
with st.spinner("답변 준비 중..."):
response = client.chat.completions.create(...)
4.4 대화 히스토리 유지 챗봇
Streamlit의 st.session_state
를 이용해 messages를 보존할 수 있습니다.
5. [실습] Gradio 기반 챗봇
5.1 Gradio 설치
pip install gradio
5.2 기본 챗봇
import gradio as gr
def respond(message, history):
return history + [(message, "응답 예시")]
demo = gr.ChatInterface(fn=respond, title="기본 챗봇")
demo.launch()
5.3 영화 추천 챗봇 (프롬프트 설계)
movie_prompt = """
당신은 영화 추천 전문가입니다.
사용자의 입력(배우, 감독, 영화 제목, 연령대 등)에 따라 3~5편 영화를 추천하세요.
"""
Gradio UI와 OpenAI API 연동 → 실습 코드 포함.
6. 응용 사례: 주식 분석 챗봇
- yfinance 라이브러리로 주가 데이터 수집
- AI가 통계 요약 + 투자 관점 분석
import yfinance as yf
df = yf.download("AAPL", period="30d")
print(df.tail())
AI 응답 예시:
AAPL 최근 30일 주가 요약:
- 최고가: 198.32
- 최저가: 184.10
- 평균 종가: 191.50
→ 단기적으로 상승세, 그러나 변동성 주의 필요.
7. 활용 시나리오 확장
- 교육: 수학 문제 튜터, 프로그래밍 과외
- 헬스케어: 건강 상담 챗봇
- 금융: 주식/암호화폐 리포트 자동 생성
- 엔터테인먼트: 영화·음악 추천, 대화형 게임 NPC
- 기업 서비스: 고객 FAQ 자동화
8. 기술적 고려사항
- 토큰 관리: 긴 대화 시 메시지 누적 →
max_tokens
와context window
고려 - 에러 처리:
RateLimitError
,AuthenticationError
대비 - 보안: API Key는
.env
로 관리, 절대 코드에 하드코딩 금지
부록
A. 주요 파라미터 튜닝 팁
- temperature=0.2 → 정밀한 요약/분석
- temperature=0.9 → 창의적 글쓰기
B. 토큰 계산 예시
import tiktoken
enc = tiktoken.encoding_for_model("gpt-4o-mini")
print(len(enc.encode("안녕하세요")))
C. Playground vs API 비교
- Playground: 시각적 실험 → 빠른 테스트
- API: 코드화 → 제품/서비스에 통합 가능
9. 결론
본 화이트 페이퍼는 Playground 학습 → Python API → Streamlit/Gradio UI → 응용 사례로 이어지는 전 과정을 다뤘습니다.
이 접근법을 따르면 누구나 기초 실습 → 서비스 프로토타입 제작 → 산업 응용까지 확장할 수 있습니다.
대화형 AI는 교육·금융·엔터테인먼트 분야에서 빠르게 확산 중이며, OpenAI Chat API는 이를 구현할 수 있는 가장 강력하고 직관적인 도구 중 하나입니다.
답글 남기기