AI 기반 지능형 티켓 긴급도 분류 시스템
Ticket Urgency Classification
RAG 아키텍처 기반의 지능형 티켓 분류 시스템으로, 벡터 검색을 통해 과거 사례를 참조하여 티켓의 긴급도를 자동으로 판단하며, 자동 기록 및 이상 알림 기능을 지원합니다.
워크플로우 개요
이 시스템은 RAG(Retrieval-Augmented Generation, 검색 강화 생성) 아키텍처 기반의 지능형 고객 지원 티켓 긴급도 분류 시스템입니다. 이 워크플로우는 Webhook을 통해 티켓 데이터를 수신하고, Pinecone 벡터 데이터베이스에 과거 티켓 정보를 저장 및 검색하며, Anthropic Claude 대형 언어 모델(LLM)을 활용해 지능적으로 분석 및 분류합니다. 최종적으로 처리 결과는 Google Sheets에 기록되며, 오류 발생 시 Slack을 통해 경고 알림을 전송합니다.
핵심 기능
이 워크플로우는 티켓 처리의 엔드투엔드(end-to-end) 자동화를 구현합니다:
- 데이터 수신 및 전처리: POST 방식의 Webhook을 통해 티켓 데이터 수신
- 텍스트 벡터화: 티켓 내용을 청크로 분할한 후 벡터 표현으로 변환
- 지식 베이스 관리: Pinecone 벡터 데이터베이스에서 관련 티켓 정보 저장 및 검색
- 지능형 분석: AI 에이전트가 과거 데이터를 결합하여 긴급도 판단
- 결과 기록: 분류 결과를 자동으로 Google Sheets에 작성
- 예외 모니터링: 오류 발생 시 실시간으로 Slack 경고 알림 발송
노드 상세 분석
1. Webhook Trigger (진입 노드)
노드 유형: n8n-nodes-base.webhook
설정 파라미터:
- HTTP 메서드: POST
- 경로:
ticket-urgency-classification - 위치: (-300, 0)
기능 설명: 외부 시스템에서 전송된 티켓 데이터를 수신하는 워크플로우 진입점입니다. 새 티켓이 생성되면 POST 요청을 통해 해당 노드로 티켓 정보가 전달됩니다.
출력 연결:
- 주 출력 → Text Splitter(텍스트 청킹 처리)
- 동시에 Window Memory(대화 기억)에도 연결
2. Text Splitter (텍스트 청킹기)
노드 유형: @n8n/n8n-nodes-langchain.textSplitterCharacterTextSplitter
설정 파라미터:
- 청크 크기: 400자
- 중첩 길이: 40자
- 위치: (-130, 0)
기능 설명: 수신된 티켓 텍스트를 고정 크기의 청크로 분할하여 후속 벡터화 처리를 용이하게 합니다. 40자의 중첩은 문맥의 연속성을 보장하고, 청크 경계에서 중요한 정보가 손실되지 않도록 합니다.
출력 연결:
- 주 출력 → Embeddings
- AI 텍스트 청킹 출력 → Pinecone Insert
3. Embeddings (벡터 임베딩)
노드 유형: @n8n/n8n-nodes-langchain.embeddingsCohere
설정 파라미터:
- 모델:
embed-english-v3.0 - 위치: (70, 0)
- 인증 정보: Cohere API
기능 설명: Cohere의 임베딩 모델을 사용해 텍스트 청크를 벡터 표현으로 변환합니다. 이 모델은 영문 텍스트에 특화되어 있어 텍스트의 의미 정보를 효과적으로 포착합니다.
출력 연결:
- AI 임베딩 출력은 동시에 다음 두 곳으로 연결됨:
- Pinecone Insert(벡터 저장)
- Pinecone Query(벡터 검색)
4. Pinecone Insert (벡터 저장 – 삽입)
노드 유형: @n8n/n8n-nodes-langchain.vectorStorePinecone
설정 파라미터:
- 모드: insert(삽입)
- 인덱스 이름:
ticket_urgency_classification - 위치: (270, 0)
- 인증 정보: Pinecone API
기능 설명: 티켓의 벡터 표현을 Pinecone 벡터 데이터베이스에 저장하여 과거 티켓 지식 베이스를 구축합니다. 모든 신규 티켓은 인덱스에 추가되어 향후 유사 티켓 검색에 활용됩니다.
5. Pinecone Query (벡터 검색 – 쿼리)
노드 유형: @n8n/n8n-nodes-langchain.vectorStorePinecone
설정 파라미터:
- 인덱스 이름:
ticket_urgency_classification - 위치: (270, -180)
- 인증 정보: Pinecone API
기능 설명: 현재 티켓과 가장 유사한 과거 티켓을 Pinecone 벡터 데이터베이스에서 검색합니다. 벡터 유사도 계산을 통해 의미적으로 유사한 사례를 찾아 분류의 참고 자료로 활용합니다.
출력 연결: AI 벡터 저장소 출력 → Vector Tool
6. Vector Tool (벡터 도구)
노드 유형: @n8n/n8n-nodes-langchain.toolVectorStore
설정 파라미터:
- 도구 이름: Pinecone
- 설명: Vector context
- 위치: (450, -180)
기능 설명: 벡터 검색 기능을 AI 에이전트가 호출 가능한 도구 형태로 캡슐화합니다. 에이전트는 이 도구를 통해 관련 과거 티켓 정보를 능동적으로 조회할 수 있습니다.
출력 연결: AI 도구 출력 → RAG Agent
7. Window Memory (슬라이딩 윈도우 메모리)
노드 유형: @n8n/n8n-nodes-langchain.memoryBufferWindow
버전: 1.3
위치: (450, -40)
기능 설명: AI 에이전트에 단기 기억 기능을 제공하여 최근 대화 컨텍스트를 유지합니다. 이를 통해 에이전트는 다중 라운드 대화 내의 문맥 관계를 이해할 수 있습니다.
출력 연결: AI 메모리 출력 → RAG Agent
8. Chat Model (언어 모델)
노드 유형: @n8n/n8n-nodes-langchain.lmChatAnthropic
위치: (450, -340)
인증 정보: Anthropic API
기능 설명: Anthropic Claude 대형 언어 모델을 에이전트의 추론 엔진으로 사용합니다. Claude는 티켓 내용을 이해하고 관련 과거 사례를 분석하여 긴급도를 판단합니다.
출력 연결: AI 언어 모델 출력 → RAG Agent
9. RAG Agent (검색 강화 생성 에이전트)
노드 유형: @n8n/n8n-nodes-langchain.agent
설정 파라미터:
- 프롬프트 유형: define
- 텍스트: "Handle data"
- 시스템 메시지: "You are an assistant for Ticket Urgency Classification"
- 위치: (720, -40)
기능 설명: 워크플로우의 핵심 의사결정 노드입니다. 이 에이전트는 언어 모델, 벡터 검색 도구, 메모리 시스템을 통합하여 다음 작업을 수행합니다:
- 현재 티켓의 내용 및 특성 분석
- 벡터 도구를 호출하여 유사한 과거 사례 검색
- 문맥 메모리를 결합하여 지능적 판단 수행
- 티켓의 긴급도 분류 결과 출력
출력 연결:
- 주 출력 → Append Sheet
- 오류 출력 → Slack Alert
10. Append Sheet (데이터 기록)
노드 유형: n8n-nodes-base.googleSheets
설정 파라미터:
- 작업: append(추가)
- 문서 ID: SHEET_ID
- 시트 이름: Log
- 열 매핑: Status
- 위치: (930, -40)
- 인증 정보: Google Sheets OAuth2 API
기능 설명: 에이전트의 분류 결과를 Google Sheets 로그 시트에 자동으로 추가합니다. 이를 통해 감사 가능한 기록을 확보하고, 향후 데이터 분석 및 모델 개선에 활용할 수 있습니다.
11. Slack Alert (오류 경고)
노드 유형: n8n-nodes-base.slack
설정 파라미터:
- 채널: #alerts
- 메시지 템플릿: "Ticket Urgency Classification error: {$json.error.message}"
- 위치: (930, 120)
- 인증 정보: Slack API
기능 설명: 워크플로우의 오류 처리 노드입니다. RAG 에이전트 실행 중 예외가 발생하면 자동으로 Slack의 #alerts 채널에 오류 세부 정보를 전송하여 팀이 즉시 대응하고 문제를 해결할 수 있도록 합니다.
12. Sticky Note (설명 주석)
노드 유형: n8n-nodes-base.stickyNote
설정 파라미터:
- 내용: "Placeholder for Ticket Urgency Classification"
- 높이: 530px
- 너비: 1100px
- 색상: 5
- 위치: (-480, -240)
기능 설명: 워크플로우에 대한 문서화 설명을 제공하는 시각적 주석입니다.
데이터 흐름 분석
주요 흐름
- 티켓 수신 → Webhook Trigger에서 외부 티켓 데이터 수신
- 텍스트 처리 → Text Splitter 청킹 → Embeddings 벡터화
- 지식 저장 → Pinecone Insert로 벡터를 데이터베이스에 저장
- 유사 검색 → Pinecone Query로 관련 과거 사례 검색
- 지능형 분석 → RAG Agent가 종합 분석 후 분류
- 결과 기록 → Append Sheet로 Google Sheets에 기록
보조 흐름
- 컨텍스트 메모리: Webhook → Window Memory → RAG Agent
- 도구 호출: Pinecone Query → Vector Tool → RAG Agent
- 모델 지원: Chat Model → RAG Agent
- 예외 처리: RAG Agent (onError) → Slack Alert
기술 스택
- 워크플로우 엔진: n8n
- 벡터 데이터베이스: Pinecone
- 임베딩 모델: Cohere embed-english-v3.0
- 언어 모델: Anthropic Claude
- 데이터 저장소: Google Sheets
- 알림 시스템: Slack
- 아키텍처 패턴: RAG (검색 강화 생성)
장점 및 특징
- 지능화: AI를 활용해 티켓 긴급도를 자동으로 판단하여 인력 개입 최소화
- 컨텍스트 인식: 벡터 검색을 통해 유사 과거 사례를 참조하여 분류 정확도 향상
- 확장성: 처리된 티켓이 누적될수록 지식 베이스가 자동으로 축적되고 모델 성능이 지속적으로 개선됨
- 추적 가능성: 모든 분류 결과가 Google Sheets에 기록되어 감사 및 분석 용이
- 고신뢰성: 오류 발생 시 자동 경고로 시스템 안정성 확보
적용 시나리오
- 고객 지원 티켓 자동 분류
- IT 운영 장애 티켓 우선순위 정렬
- 고객 피드백 긴급도 평가
- 지원 요청 지능형 라우팅
- 자동화된 텍스트 분류가 필요한 모든 시나리오