v2.2.321: /naver-shopping "분야 내 인기 검색어" 질문이 무의미한 1행 표만 주던 문제 수정

- 쇼핑인사이트 API 는 분야 자체의 클릭 추이만 주고 분야 안의 키워드 순위 API가
  없음 — intentParser 에 scope(category/keywords) 필드 추가해 "인기 검색어"
  류 질문을 감지하고, 검증된 검색어트렌드 rankKeywords 로 우회 처리하도록 수정
This commit is contained in:
2026-08-06 10:30:30 +09:00
parent 29ad4cc023
commit 61246bb0cb
13 changed files with 97 additions and 36 deletions
+7
View File
@@ -1,5 +1,12 @@
# Astra Patch Notes
## v2.2.321 (2026-08-05)
### 🛍️ `/naver-shopping` "분야 안의 인기 검색어" 질문이 쓸모없는 1행 표만 주던 문제 수정
실사례: `/naver-shopping 디지털/가전 인기 검색어` → "디지털/가전" 분야 자체의 클릭 비율 1행짜리 표만 나와 사용자가 "쓸 수 있는 데이터가 없다"고 피드백. 원인: 쇼핑인사이트 API는 "분야 자체"의 클릭 추이만 제공하고, 분야 *안*에서 어떤 상품/검색어가 인기인지는 애초에 이 API로 알 수 없다(그런 API가 없음) — intentParser 가 "인기 검색어"라는 표현도 그냥 분야명 비교(compare)로 잘못 처리했다.
- **scope 필드 추가(intentParser)**: `category`(분야 자체 트렌드/비교, 기존 동작) vs `keywords`(분야 "안"의 인기 상품/검색어가 궁금함 — "인기 검색어"/"뭐가 잘 팔려"/"인기 상품" 같은 표현) 를 LLM 이 구분해서 판정.
- **scope="keywords" 처리**: 분야명을 맥락으로 LLM 이 검색어 후보를 제안하고, 이미 검증된 검색어트렌드 API(`rankKeywords`)로 순위를 매겨 보여준다 — 쇼핑인사이트에 없는 "분야 내 키워드 순위" API를 검색어트렌드로 우회 검증하는 방식. 결과에는 "쇼핑 카테고리로 필터링된 수치가 아님"을 명시.
검증: tsc 무오류 + jest 1015 통과(신규 2) + esbuild 정상.
## v2.2.320 (2026-08-05)
### 🐛 `/naver-shopping` "CATEGORY_TREE is not iterable" 크래시 수정 + 카테고리 목록 조회
실사례: 배포 직후 `/naver-shopping 요즘 뜨는 뷰티 카테고리 알려줘` 실행 시 `CATEGORY_TREE is not iterable` 에러. 원인: `import * as x from './data.json'`(네임스페이스 import)를 esbuild 로 번들하면 배열 최상위 JSON 이 `{ default: [...] }` 로 감싸져 `x` 자체가 배열이 아니게 됨 — ts-jest 는 require() 그대로라 이 클래스의 버그를 테스트로 못 잡는다(실제로 기존 유닛 테스트는 전부 통과했었음).