왜 Regex는 Google Taxonomy에서 실패하는가: 98% 정확한 RAG 에이전트 구축
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: 표준 검색 → 결과: 미분류.
-
트리거: 에이전트가 실패를 감지.
-
액션: 에이전트가 LLM(
gpt-5-nano)을 호출해 쿼리를 “확장”합니다.프롬프트: “Kurti가 뭐야? 동의어를 알려줘.”
응답: “Tunic, Blouse, Shirt”.
-
시도 2: “Tunic Blouse Shirt”로 벡터 검색.
-
결과: 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 에이전트에 대한 더 깊은 엔지니어링 이야기를 원한다면 팔로우해주세요.