Implementing Node.js Support Triage — Summarize PDF Pages with Embeddings

개요

B2B 지원 티켓 분류를 위해 PDF 검색과 답변 생성을 분리하고, 검색된 증거 세트를 재순위화한 후 최종 요약 단계에서 인용된 페이지가 결정될 때만 큐를 할당하는 방식을 제안합니다.

주요 내용

* B2B 지원 티켓 분류 전략:
* 임베딩 검색 후 요약 (Embedding search, then summary): 가장 낮은 지연 시간과 운영 부하를 가지며, 문서 범위가 좁고 티켓 언어가 매뉴얼과 유사할 때 적합합니다.
* 임베딩 검색, 재순위화 후 요약 (Embedding search, rerank, then summary): 더 나은 증거 순서 제공, 한 단계의 추가 모델 작업, 중간 수준의 지연 시간 및 운영 부하를 가집니다. 잘못된 라우팅 비용이 한 번의 추가 호출 비용보다 크거나, 미리 계산된 이슈-페이지 규칙의 유지 관리가 높을 때 사용합니다.
* 사전 구성된 이슈-페이지 규칙 (Precomputed issue-to-page rules): 알려진 경우 예측 가능하며, 낮은 운영 부하를 가지지만 높은 유지 관리 비용이 듭니다. 이슈 분류 체계가 안정적이고 감사 가능성이 회수율보다 중요할 때 사용합니다.
* 재순위화의 중요성: 임베딩 검색은 의미론적으로 관련된 페이지를 검색하는 데 유용하지만, 검색 순위가 항상 진실은 아닙니다. 재순위화는 답변 생성 전에 티켓과 후보 페이지를 비교하는 단계를 제공하며, 이는 정확한 제품 조건에 따라 큐 선택이 결정될 때 중요합니다.
* 증거 계약 (Evidence Contract): 출력은 하나의 큐를 명시하고, 페이지 식별자를 인용하며, 증거가 무엇을 지원하는지 명시하고, 페이지가 라우트를 정당화하지 못할 때 needs_review를 반환하는 방식으로 정의됩니다. 이는 유창한 문장이 정확하다고 가정하지 않고도 확인할 수 있습니다.
* 지연 시간 관리: 고객이 인지하는 응답 시간과 지원 담당자가 인지하는 신뢰할 수 있는 라우팅 시간으로 구분됩니다. 각 단계(검색, 재순위화, 요약)에 독립적인 타임아웃을 설정해야 합니다.
* Node.js에서의 PDF 페이지 재순위화: PDF 페이지를 신원(문서 ID, 페이지 번호, 개정판, 텍스트)을 가진 증거로 취급합니다. 티켓 쿼리를 임베딩하고, 최종 프롬프트가 감당할 수 있는 것보다 더 많은 페이지를 검색한 후, 후보 페이지들을 전체 티켓에 대해 재순위화하고, 가장 잘 지원되는 페이지만 요약 단계로 전달합니다.
* 구조화된 데이터 처리: 검색, 재순위화, 구조화된 생성의 세 가지 인터페이스(port)를 정의합니다. 각 어댑터는 호스팅된 API, 내부 서비스 또는 자체 호스팅 모델을 호출할 수 있습니다.
* 품질 게이트: 대표적인 지원 티켓(모호한 표현, 복사된 오류 텍스트, 오래된 용어, 하나의 메시지에 설명된 두 가지 문제 포함)으로 품질 게이트를 구축해야 합니다.
* No-rerank 릴리스 레인: 잘못된 라우팅이 수정하기 저렴하고, 매뉴얼이 작고 명확하며, 재순위화로 인한 측정된 이득이 추가 지연 시간 및 실패 표면을 정당화하지 못할 때 임베딩 검색 후 바로 요약하는 방식을 사용합니다.
* 결정론적 규칙: 안정적이고 명시적인 트리거(문서화된 오류 코드, 계약 계획 식별자, 알려진 마이그레이션 버전)가 있는 경우, 결정론적 이슈-페이지 규칙을 사용합니다.

시사점

이 접근 방식은 B2B 지원 티켓 분류의 정확성과 효율성을 높이는 데 중점을 두며, 임베딩 검색, 재순위화, 구조화된 요약의 조합을 통해 복잡한 PDF 콘텐츠에서 필요한 정보를 추출하고 적절한 지원 큐로 라우팅하는 체계적인 방법을 제시합니다.

원문 읽기 →
원문을 불러오는 중...

댓글

GitHub Discussions