LLM을 활용한 텍스트 분석의 힘 발휘하기
요약
본 문서는 LLM과 OpenAI SDK를 활용하여 고객 지원 티켓을 분석하는 배치 피드백 시스템 구축 방법을 안내합니다. 이 파이프라인은 감성 점수, 주제 추출, 긴급 이슈 표시 기능을 제공하며, 개발자가 실제 운영 환경에 적용할 수 있는 구체적인 Python 코드를 제시합니다.
핵심 포인트
- OpenAI SDK와 Oxlo.ai API를 사용하여 구조화된 JSON 출력을 강제하는 방법을 배웁니다.
- 시스템 프롬프트 정의 및 스키마 지정은 안정적인 데이터 추출의 핵심입니다.
- Pandas 라이브러리를 활용하여 배치 처리 및 필터링 로직을 구현합니다.
- 이 코드는 50줄 미만으로 작동하며, 실제 운영 환경에 바로 적용 가능합니다.
우리는 원본 고객 지원 티켓을 읽고, 감성 점수를 매기고, 주제를 추출하며, 긴급 이슈를 표시하는 배치 피드백 분석기를 구축할 것입니다. 이는 지원팀이 모든 메시지를 수동으로 읽지 않고도 대기열의 우선순위를 정하도록 돕습니다. 저는 Oxlo.ai와 OpenAI SDK를 사용하여 코드가 플랫한 요청별 엔드포인트에 대해 완전히 실행 가능하도록 할 것입니다.
필요한 것들
Python 3.10 이상, OpenAI SDK, 그리고 Oxlo.ai API 키가 필요합니다. 키는 https://portal.oxlo.ai에서 가져오세요. pip으로 종속성을 설치하세요.
pip install openai pandas
1단계: 클라이언트 설정하기
Oxlo.ai를 가리키도록 OpenAI 클라이언트를 초기화합니다. Oxlo.ai가 OpenAI SDK와 완전히 호환되기 때문에, 이것이 표준 설정에서 필요한 유일한 변경 사항입니다.
import os
from openai import OpenAI
...
2단계: 스키마 및 시스템 프롬프트 정의하기
결과를 데이터프레임에 직접 공급할 수 있도록 구조화된 JSON을 원합니다. 시스템 프롬프트는 정확히 세 가지 필드(sentiment, topics, urgent)를 강제합니다.
SYSTEM_PROMPT = """당신은 지원 티켓 분석가입니다. 티켓을 읽고 이 정확한 형태의 JSON 객체만 반환하세요:
{
"sentiment": "positive" | "neutral" | "negative",
...
3단계: 분석 함수 구축하기
이 함수는 Oxlo.ai 호출을 감싸는 역할을 합니다. 저는 Llama 3.3 70B를 사용하는데, 이는 지침 준수(instruction following)를 안정적으로 처리하기 때문이며, 출력 구조를 고정하기 위해 응답 형식을 JSON으로 설정합니다.
import json
from openai import OpenAI
...
4단계: 배치 처리하기
스크립트가 외부 파일 없이 실행 가능하도록 작은 인라인 데이터셋을 만들 것입니다. 실제 운영 환경에서는 이를 pandas를 사용한 CSV 읽기로 대체할 것입니다.
import pandas as pd
tickets = [
...
5단계: 긴급 이슈 표시하기
마지막으로, 'urgent'가 True이고 감성이 'negative'인 항목만 필터링한 다음 우선순위 목록을 출력합니다. 이것이 제가 매일 아침 온콜 리드에게 보내는 정확한 보기입니다.
flagged = df[(df["urgent"] == True) & (df["sentiment"] == "negative")]
if flagged.empty:
...
실행하기
실행하기
전체 스크립트가 여기 있습니다. 이를 feedback_analyzer.py로 저장하고, API 키를 내보낸(export) 다음 실행하세요.
import json
import os
import pandas as pd
...
터미널에서 다음과 같이 실행합니다:
export OXLO_API_KEY="sk-oxlo.ai-..."
python feedback_analyzer.py
이것을 Oxlo.ai에 적용하여 실행했을 때의 출력은 다음과 같았습니다:
id sentiment topics urgent
0 101 negative [export, dashboard] False
1 102 negative [payment, billing] True
...
마무리
이 파이프라인을 사용하면 50줄 미만의 코드로 작동하는 텍스트 분석 계층(text analysis layer)을 얻을 수 있습니다. 확장할 수 있는 두 가지 구체적인 방법이 있습니다. 첫째, 스크립트를 야간 크론 작업(cron job)으로 예약하고 플래그가 지정된 티켓들을 Slack 웹훅으로 POST하여 팀원들이 아침에 가장 먼저 확인할 수 있도록 할 수 있습니다. 둘째, 다단계 분류 작업을 위해 더 강력한 추론이 필요하다면 DeepSeek V3.2 또는 Kimi K2.6으로 교체할 수 있습니다. Oxlo.ai는 요청당 단일(flat per-request) 가격을 사용하므로, 티켓 길이가 길어져도 비용이 증가하는 걱정 없이 대규모 백로그를 처리할 수 있습니다. 자세한 내용은 https://oxlo.ai/pricing에서 확인하세요.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기