시작하게 된 계기
회사에서 매일 반복되는 작업이 있었습니다. 슬랙에 올라오는 비슷한 질문들에 답변하고, 정형화된 보고서를 작성하고, 데이터를 정리하는 일들이었죠. 이런 작업들이 하루에 2-3시간은 족히 걸렸습니다.
그러던 중 ChatGPT API가 공개되었고, "이걸로 뭔가 할 수 있지 않을까?"라는 생각이 들었습니다. 그렇게 시작된 자동화 프로젝트가 지금은 팀 전체가 사용하는 도구가 되었습니다.
무엇을 만들었나
크게 세 가지 도구를 만들었습니다:
- 슬랙 Q&A 봇: 자주 묻는 질문에 자동으로 답변
- 보고서 생성기: 데이터를 입력하면 자동으로 보고서 작성
- 이메일 초안 작성: 키워드만 입력하면 이메일 초안 생성
기술 스택
다음과 같은 기술들을 사용했습니다:
# 주요 라이브러리
import openai
from langchain import ChatOpenAI, PromptTemplate
from slack_sdk import WebClient
# API 설정
openai.api_key = "your-api-key"
client = ChatOpenAI(temperature=0.7)배운 점들
1. 프롬프트가 전부다
처음에는 단순하게 "이 질문에 답변해줘"라고만 했더니 답변 품질이 일정하지 않았습니다. 프롬프트를 구체적으로 작성하고, 예시를 포함시키니 결과가 훨씬 좋아졌습니다.
좋은 프롬프트 = 명확한 지시 + 구체적인 예시 + 제약 조건
2. 에러 핸들링이 중요하다
API 호출이 실패하거나, 예상치 못한 응답이 오는 경우가 많았습니다. Retry 로직과 폴백(fallback) 메시지를 꼭 준비해야 합니다.
def call_openai_with_retry(prompt, max_retries=3):
for i in range(max_retries):
try:
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[{"role": "user", "content": prompt}]
)
return response.choices[0].message.content
except Exception as e:
if i == max_retries - 1:
return "죄송합니다. 일시적인 오류가 발생했습니다."
time.sleep(2 ** i) # Exponential backoff3. 비용 최적화는 필수
처음에는 모든 요청에 GPT-4를 사용했다가 비용이 폭탄처럼 나왔습니다. 간단한 작업은 GPT-3.5를 사용하고, 캐싱을 활용하니 비용이 70% 절감되었습니다.
성과
이 도구들을 만들고 나서:
- 하루 평균 2시간 절약 (팀원 1인당)
- 슬랙 응답 시간 80% 단축
- 보고서 작성 시간 90% 감소
다음 계획
현재 RAG(Retrieval-Augmented Generation)를 공부하고 있습니다. 회사 내부 문서를 벡터 DB에 저장하고, 더 정확한 답변을 제공하는 시스템을 만들 예정입니다.