왜 Regex는 Google Taxonomy에서 실패하는가: 98% 정확한 RAG 에이전트 구축

발행: (2025년 12월 15일 오후 03:42 GMT+9)
3 min read
원문: Dev.to

Source: Dev.to

The Problem

Google Merchant Center에서는 카테고리 지정이 모든 것을 좌우합니다. 제품을 잘못 분류하면 광고가 중단됩니다. 대부분의 피드 도구는 키워드 매칭(Regex)을 사용합니다.

규칙: 제목에 “Dog”이 포함되면 → 카테고리: Animals > Pets > Dogs
입력: “Hot Dog Costume”
결과: Animals > Pets > Dogs ❌ (잘못된 결과!)

이 때문에 대형 카탈로그의 15‑20 % 제품이 “Disapproved” 상태에 머무르는 경우가 많습니다.

Solution: Vector‑Based Categorization

키워드가 아니라 벡터를 사용해 이 문제를 해결하기 위해 CatMap AI를 만들었습니다. 규칙 대신 Google Product Taxonomy(5,500개 이상 노드)를 OpenAI의 text-embedding-3-small을 이용해 벡터 인덱스로 변환합니다.

제품이 들어올 때(예: “Pallash Casual Women’s Kurti”) “Kurti”라는 단어를 찾는 것이 아니라, 벡터 공간에서 해당 제품의 수학적 개념을 찾습니다.

Handling Cultural Terms

표준 벡터 검색은 문화적으로 특수한 용어에 대해 실패할 수 있습니다.

입력: “Kurri”
벡터 매치: 일반 의류 (신뢰도: 낮음)

Agentic Loop

  1. 시도 1: 표준 검색 → 결과: 미분류.

  2. 트리거: 에이전트가 실패를 감지.

  3. 액션: 에이전트가 LLM(gpt-5-nano)을 호출해 쿼리를 “확장”합니다.

    프롬프트: “Kurti가 뭐야? 동의어를 알려줘.”

    응답: “Tunic, Blouse, Shirt”.

  4. 시도 2: “Tunic Blouse Shirt”로 벡터 검색.

  5. 결과: Apparel > Clothing > Shirts & Tops

Results

  • Coverage: 100 % (이전 85 % 대비 상승).
  • Accuracy: 98.3 %.
  • Latency: 행당 약 200 ms.

Simplified Logic

// Simplified categorization flow
if (result.status === "Uncategorized") {
    const synonyms = await expandQuery(product.name); // AI call
    const newContext = await VectorStore.search(synonyms);
    return categorizeWithContext(product, newContext);
}

Try It Out

개발자를 위한 Free Beta를 오픈합니다. Link to CatMap AI

AI 에이전트에 대한 더 깊은 엔지니어링 이야기를 원한다면 팔로우해주세요.

Back to Blog

관련 글

더 보기 »