25분
Week 1 핵심 패턴 총정리
Day 5: 제조 매뉴얼 Q&A 챗봇
Week 1 핵심 패턴 총정리
LLM 기초 > Day 5: 제조 매뉴얼 Q&A 챗봇
학습 목표
Week 1 전체 학습 내용을 체계적으로 정리한다 각 패턴의 코드 스니펫을 빠르게 참조할 수 있다
Week 1 핵심 패턴 레퍼런스
패턴 1: API 기본 호출
from openai import OpenAI
from dotenv import load_dotenv
load_dotenv()
client = OpenAI()
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": "제조 전문가 역할"},
{"role": "user", "content": "질문 내용"}
],
temperature=0.3,
max_tokens=1500
)
answer = response.choices[0].message.content
패턴 2: 스트리밍
stream = client.chat.completions.create(
model="gpt-4o-mini",
messages=[...],
stream=True
)
for chunk in stream:
content = chunk.choices[0].delta.content
if content:
print(content, end="", flush=True)
패턴 3: 에러 처리 + 재시도
import time, random
from openai import RateLimitError, APITimeoutError
def safe_call(messages, max_retries=3):
for attempt in range(max_retries):
try:
return client.chat.completions.create(
model="gpt-4o-mini",
messages=messages,
timeout=30.0
)
except (RateLimitError, APITimeoutError) as e:
if attempt == max_retries - 1:
raise
delay = (2 ** attempt) + random.uniform(0, 1)
time.sleep(delay)
패턴 4: 비용 추적
usage = response.usage
input_cost = usage.prompt_tokens / 1e6 * 0.15
output_cost = usage.completion_tokens / 1e6 * 0.60
total_cost = input_cost + output_cost
패턴 5: Streamlit 챗봇
import streamlit as st
# 세션 초기화
if "messages" not in st.session_state:
st.session_state.messages = []
# 히스토리 표시
for msg in st.session_state.messages:
with st.chat_message(msg["role"]):
st.markdown(msg["content"])
# 사용자 입력
if prompt := st.chat_input("질문"):
st.session_state.messages.append({"role": "user", "content": prompt})
# 스트리밍 응답
with st.chat_message("assistant"):
response = st.write_stream(generator())
st.session_state.messages.append({"role": "assistant", "content": response})
패턴 6: 분야별 시스템 프롬프트
PROMPTS = {
"CNC": "당신은 CNC 전문가입니다...",
"PLC": "당신은 PLC 전문가입니다...",
}
system_prompt = PROMPTS[selected_domain]
패턴 7: 대화 히스토리 관리
MAX_HISTORY = 10
messages = st.session_state.messages[-MAX_HISTORY:]
api_messages = [{"role": "system", "content": system}] + messages
이 7가지 패턴을 조합하면 프로덕션급 제조 챗봇이 완성된다.
AI로 학습하기 — 꿀팁
🧪Week 1 핵심 패턴 — 취약 개념 집중 복습AI 학습 팁
Week 1 전체를 정리할 때 단순 재열거가 아니라 자신이 약한 개념을 집중 심화하는 방식으로 활용하세요.
Week 1 LLM 기초 학습 내용(토큰화, 프롬프트 기법 5종, API 비용 관리, Streamlit 챗봇 패턴)을 복습하는데, 저는 특히 'Few-shot 예시를 얼마나 넣어야 최적인지'와 '한국어 제조 문서의 토큰 효율 최적화'를 어떻게 해야 할지 아직 불명확합니다. 이 두 가지를 (1) 제조 현장 실제 예시(불량 보고서, 설비 점검 기록) 기반으로 직관적으로 설명하고, (2) 각각 최적값을 찾는 실험 방법, (3) 기억하기 쉬운 경험 법칙(rule of thumb)으로 정리해주세요.
이 팁이 도움이 됐나요?
핵심 포인트
- • API 기본 호출: model, messages, temperature, max_tokens
- • 스트리밍: stream=True + chunk 순회
- • 에러 처리: 지수 백오프 + 에러 분류
- • 비용 추적: usage.prompt_tokens / completion_tokens
- • Streamlit: session_state + chat_message + write_stream