OpenAI SDK 마스터하기: 단계별 튜토리얼
요약
본 튜토리얼은 표준 OpenAI SDK를 사용하여 원시 고객 이메일을 분석하고, 이슈 분류 및 우선순위 할당이 가능한 지원 티켓 트리아지 에이전트를 구축하는 방법을 안내합니다. 복잡한 인프라 없이도 레벨 0 지원 자동화를 목표로 하며, 구조화된 JSON 출력을 강제하여 안정적인 파싱을 보장합니다.
핵심 포인트
- OpenAI SDK를 활용하여 트리아지 에이전트 구현 가능
- 시스템 프롬프트와 JSON 출력 강제를 통해 신뢰성 확보
- 다중 턴 메모리 관리를 통해 실제 대화 흐름 유지
- Oxlo.ai 사용 시 다양한 모델을 동일한 SDK로 쉽게 전환
본 튜토리얼에서는 원시 고객 이메일을 읽고, 이슈를 분류하며, 우선순위를 할당하고, 첫 응답 초안을 작성하는 작동 가능한 지원 티켓 트리아지 에이전트를 구축할 것입니다. 이는 복잡한 인프라 관리를 하지 않으면서 레벨 0(level-zero) 지원을 자동화하려는 엔지니어링 팀을 대상으로 합니다. 모든 것을 표준 OpenAI SDK를 사용하여 Oxlo.ai를 통해 실행하므로, 여기에 작성하는 코드는 기존의 어떤 Python 프로젝트에도 적용할 수 있습니다.
준비물
- Python 3.10 이상.
- OpenAI SDK:
pip install openai. - https://portal.oxlo.ai에서 받은 Oxlo.ai API 키. 무료 등급(free tier)에는 하루 60개의 요청이 포함되어 있어 따라 하기에 충분합니다.
Step 1: 클라이언트 초기화
SDK를 가져와서 클라이언트를 Oxlo.ai로 지정합니다. 표준 OpenAI 설정과 유일한 차이점은 base_url입니다.
from openai import OpenAI
client = OpenAI(
...
Step 2: 트리아지 시스템 프롬프트 작성
에이전트의 동작은 시스템 프롬프트에 있습니다. 저는 엄격한 JSON 출력을 강제하여 다운스트림 코드가 모델이 무엇을 말할지 추측할 필요가 없도록 합니다.
SYSTEM_PROMPT = """You are a support triage agent. Read the customer ticket below and produce a structured assessment.\n
Output strict JSON with exactly these keys:
...
Step 3: 수신 티켓 형식 지정
들어오는 티켓을 일관된 형식으로 감싸 모델이 매번 동일한 구조를 보도록 합니다. 여기는 현실적인 기술 티켓입니다.
def format_ticket(subject, body):
return f"Subject: {subject}\n\nBody:\n{body}"
...
Step 4: 모델 호출 및 구조화된 출력 파싱
이제 티켓을 Oxlo.ai로 보냅니다. 저는 Llama 3.3 70B를 사용하는데, 이는 구조화된 명령어 준수에 신뢰성이 높기 때문이며, 이후 JSON 응답을 파싱합니다.
import json
response = client.chat.completions.create(
...
Step 5: 후속 조치를 위한 다중 턴 메모리 추가
실제 대화는 한 턴으로 끝나지 않습니다. 어시스턴트의 답변과 새로운 사용자 컨텍스트를 추가하여 스레드를 유지하고, 모델을 다시 호출할 수 있습니다. 여기서는 Qwen 3 32B로 전환하는 것이 매우 간단한데, Oxlo.ai가 모든 모델에 동일한 SDK를 사용하기 때문입니다.
messages = [
{"role": "system", "content": SYSTEM_PROMPT},
{"role": "user", "content": ticket},
...
실행해 보기 (Run it)
완성된 스크립트를 triage.py로 저장하고, API 키를 설정한 후 실행합니다. Oxlo.ai가 인기 모델을 콜드 스타트 없이 제공하기 때문에 즉시 구조화된 출력을 볼 수 있을 것입니다.
$ export OXLO_API_KEY="oxlo_..."
$ python triage.py
예상 출력:
{
"issue_type": "technical",
"priority": "high",
...
마무리 및 다음 단계 (Wrap-up and next steps)
이 에이전트는 이미 CLI 도구로서 유용하지만, 명확한 다음 단계는 웹훅(webhook)에 연결하여 티켓이 도착하는 대로 처리하도록 하는 것입니다. 긴 대화 기록이나 전체 로그 덤프를 전달해야 하는 경우에도 Oxlo.ai의 요청 기반 가격 책정 방식은 입력 길이와 관계없이 호출당 비용을 일정하게 유지합니다. 플랜 비교는 https://oxlo.ai/pricing에서 할 수 있습니다. 또 다른 좋은 업그레이드는 함수 호출(function calling) 기능을 추가하여 에이전트가 Jira나 Linear에 이슈를 자동으로 생성할 수 있게 하는 것입니다. Oxlo.ai는 이 기능을 동일한 채팅 완료 엔드포인트(chat completions endpoint)에서 지원합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기