From f1548fc74df6ab5284f89a0ee8f8efe15cbec26a Mon Sep 17 00:00:00 2001 From: Hana Date: Fri, 12 Jun 2026 18:56:48 +0900 Subject: [PATCH] feat: add find-goods skill with pipeline structure --- skills/find-goods/SKILL.md | 118 ++++++++++++ skills/find-goods/config.yaml | 156 ++++++++++++++++ .../pipeline/01-requirement-parsing.md | 123 +++++++++++++ .../pipeline/02-search-execution.md | 135 ++++++++++++++ .../pipeline/03-result-collection.md | 144 +++++++++++++++ .../pipeline/04-product-validation.md | 145 +++++++++++++++ .../pipeline/05-report-generation.md | 172 ++++++++++++++++++ 7 files changed, 993 insertions(+) create mode 100644 skills/find-goods/SKILL.md create mode 100644 skills/find-goods/config.yaml create mode 100644 skills/find-goods/pipeline/01-requirement-parsing.md create mode 100644 skills/find-goods/pipeline/02-search-execution.md create mode 100644 skills/find-goods/pipeline/03-result-collection.md create mode 100644 skills/find-goods/pipeline/04-product-validation.md create mode 100644 skills/find-goods/pipeline/05-report-generation.md diff --git a/skills/find-goods/SKILL.md b/skills/find-goods/SKILL.md new file mode 100644 index 0000000..cd5fa1e --- /dev/null +++ b/skills/find-goods/SKILL.md @@ -0,0 +1,118 @@ +--- +name: find-goods +description: "인터넷에서 요구받은 상품의 존재 여부를 찾고 유효성을 검증하는 파이프라인 스킬입니다. USE FOR: find product, search item, check availability, 상품 찾기, 재고 확인, 제품 검색, 가격 확인, 사양 확인. DO NOT USE FOR: 구매 대행, 가격 추적, 배송 추적." +version: 2.0.0 +author: Find Goods System +tags: [shopping, product, validation, search, availability, pipeline] +dependencies: [websearch, webfetch] +--- + +# Find Goods + +인터넷에서 요구받은 상품이 존재하는지 찾고, 유효성을 검증하는 파이프라인 스킬입니다. + +## 전체 파이프라인 + +``` +┌─────────────────────────────────────────────────────────────────────────┐ +│ FIND-GOODS PIPELINE │ +├─────────────────────────────────────────────────────────────────────────┤ +│ │ +│ [Step 1: 요구사항 분석] │ +│ │ │ +│ ▼ │ +│ 사용자 입력 → 키워드 추출 → 카테고리 분류 → 검증 기준 설정 │ +│ │ +│ [Step 2: 검색 실행] │ +│ │ │ +│ ▼ │ +│ 웹 검색 → 쇼핑몰 검색 → 가격 비교 → 결과 통합 │ +│ │ +│ [Step 3: 결과 수집] │ +│ │ │ +│ ▼ │ +│ 중복 제거 → 신뢰도 평가 → 기본 필터링 → 상품 목록 │ +│ │ +│ [Step 4: 상품 검증] │ +│ │ │ +│ ▼ │ +│ 재고 확인 → 사양 검증 → 가격 검증 → 검증 결과 │ +│ │ +│ [Step 5: 리포트 생성] │ +│ │ │ +│ ▼ │ +│ 결과 요약 → 대안 제안 → 최종 리포트 │ +│ │ +└─────────────────────────────────────────────────────────────────────────┘ +``` + +## 파이프라인 단계 + +| 단계 | 파일 | 설명 | +|------|------|------| +| 1 | `pipeline/01-requirement-parsing.md` | 요구사항 분석 및 검색 키워드 생성 | +| 2 | `pipeline/02-search-execution.md` | 3단계 검색 실행 (웹→쇼핑몰→가격비교) | +| 3 | `pipeline/03-result-collection.md` | 검색 결과 통합 및 중복 제거 | +| 4 | `pipeline/04-product-validation.md` | 재고/사양/가격 유효성 검증 | +| 5 | `pipeline/05-report-generation.md` | 리포트 생성 및 대안 제안 | + +## When to Use + +- 사용자가 특정 상품을 찾고 있을 때 +- 상품의 재고/품절 여부를 확인할 때 +- 상품의 사양/스펙이 요구사항과 일치하는지 확인할 때 +- 가격 비교가 필요할 때 +- 대안 상품을 찾아야 할 때 + +## 실행 규칙 + +1. **단계 순차 실행** — 각 단계는 이전 단계의 출력이 필요 +2. **에러 시 재시도** — 네트워크 오류 시 최대 3회 재시도 +3. **중간 결과 저장** — 각 단계 완료 시 결과 저장 +4. **사용자 확인** — 최종 결과는 사용자에게 제시 후 확인 +5. **대안 제안** — 검증 실패 시 유사 상품 제안 + +## 데이터 흐름 + +``` +사용자 요구사항 (텍스트) + │ + ▼ +[01-requirement-parsing] + │ + ├─> 검색 키워드 (배열) + ├─> 카테고리 (문자열) + └─> 검증 기준 (객체) + │ + ▼ +[02-search-execution] + │ + ├─> 웹 검색 결과 (배열) + ├─> 쇼핑몰 검색 결과 (배열) + └─> 가격 비교 결과 (배열) + │ + ▼ +[03-result-collection] + │ + └─> 필터링된 상품 목록 (배열) + │ + ▼ +[04-product-validation] + │ + ├─> 검증된 상품 (배열) + └─> 검증 상태 (객체) + │ + ▼ +[05-report-generation] + │ + └─> 최종 리포트 (마크다운) +``` + +## 에러 핸들링 + +| 상황 | 처리 방법 | +|------|-----------| +| **검색 실패** | 해당 소스 건너뛰고 다음 소스로 진행 | +| **네트워크 오류** | 최대 3회 재시도, 실패 시 로그 기록 | +| **결과 없음** | 대안 검색 키워드로 재검색 제안 | +| **검증 실패** | 실패 사유 명시 및 대안 상품 제안 | diff --git a/skills/find-goods/config.yaml b/skills/find-goods/config.yaml new file mode 100644 index 0000000..cf93a7f --- /dev/null +++ b/skills/find-goods/config.yaml @@ -0,0 +1,156 @@ +# Find Goods - 파이프라인 파라미터 + +# 파이프라인 설정 +pipeline: + max_retries: 3 + timeout_seconds: 30 + save_intermediate_results: true + +# 검색 설정 +search: + # 검색 소스 활성화 + sources: + web_search: true + shopping_mall: true + price_comparison: true + + # 검색 결과 제한 + max_results_per_source: 10 + max_total_results: 30 + + # 검색 쇼핑몰 + shopping_malls: + - name: coupang + domain: coupang.com + enabled: true + - name: naver_shopping + domain: shopping.naver.com + enabled: true + - name: elevenst + domain: 11st.co.kr + enabled: true + - name: gmarket + domain: gmarket.co.kr + enabled: true + - name: amazon + domain: amazon.com + enabled: false # 해외 직구 비활성화 + + # 가격 비교 사이트 + price_comparison_sites: + - name: danawa + domain: danawa.com + enabled: true + category: electronics + - name: naver_price + domain: search.naver.com + enabled: true + category: all + - name: enuri + domain: enuri.com + enabled: true + category: all + +# 결과 수집 설정 +collection: + # 중복 제거 기준 + deduplication: + name_similarity_threshold: 0.8 + model_match_exact: true + url_match_exact: true + + # 신뢰도 평가 가중치 + trust_score_weights: + source_count: 0.3 + seller_trust: 0.25 + review_score: 0.2 + price_consistency: 0.15 + information_completeness: 0.1 + + # 필터링 기준 + filtering: + min_trust_score: 0.5 + min_review_count: 0 + min_rating: 0 + +# 검증 설정 +validation: + # 재고 검증 + stock_check: + enabled: true + require_real_time: false + + # 사양 검증 + spec_match: + enabled: true + critical_spec_match_required: true + critical_specs: + - cpu + - ram + - storage + - screen_size + + # 가격 검증 + price_consistency: + enabled: true + tolerance_percent: 30 + warning_threshold_percent: 20 + + # 제품 특성 검증 + product_match: + enabled: true + check_category: true + check_brand: true + check_model: true + +# 리포트 설정 +report: + # 리포트 형식 + format: markdown + + # 포함 항목 + include_summary: true + include_detailed_products: true + include_alternatives: true + include_buying_guide: true + + # 대안 제안 + alternatives: + max_count: 3 + min_trust_score: 0.6 + +# 카테고리별 설정 +categories: + electronics: + validation: + stock_check: true + spec_match: true + price_consistency: true + warranty_check: true + search: + priority_sources: ["danawa", "coupang", "naver_shopping"] + + clothing: + validation: + stock_check: true + size_match: true + color_match: true + price_consistency: true + search: + priority_sources: ["naver_shopping", "coupang", "11st"] + + food: + validation: + stock_check: true + expiry_check: true + price_consistency: true + search: + priority_sources: ["coupang", "naver_shopping"] + + books: + validation: + stock_check: true + edition_check: true + price_consistency: true + search: + priority_sources: ["yes24", "kyobo", "naver_shopping"] diff --git a/skills/find-goods/pipeline/01-requirement-parsing.md b/skills/find-goods/pipeline/01-requirement-parsing.md new file mode 100644 index 0000000..131ce8b --- /dev/null +++ b/skills/find-goods/pipeline/01-requirement-parsing.md @@ -0,0 +1,123 @@ +# Step 1: 요구사항 분석 + +## 개요 + +사용자로부터 상품 요구사항을 분석하고, 검색에 필요한 키워드와 검증 기준을 추출합니다. + +## 입력 + +사용자로부터 다음 정보를 수집합니다: + +| 항목 | 필수 | 설명 | +|------|------|------| +| **상품명** | O | 찾고자 하는 상품의 이름 | +| **브랜드** | X | 선호하는 브랜드 | +| **모델번호** | X | 특정 모델 번호 | +| **카테고리** | X | 상품 분류 (전자제품, 의류 등) | +| **사양/스펙** | X | 요구하는 기능이나 사양 | +| **예산** | X | 희망 가격 범위 | +| **기타 요구사항** | X | 추가 조건 (색상, 크기 등) | + +## 처리 과정 + +### 1단계: 입력 파싱 + +사용자 입력에서 핵심 정보를 추출합니다: + +``` +입력: "삼성 갤럭시북 프로 360 15인치 i7 16GB 찾기" + +추출 결과: +- 상품명: 갤럭시북 프로 360 +- 브랜드: 삼성 +- 사양: 15인치, i7, 16GB +- 카테고리: 노트북 +``` + +### 2단계: 검색 키워드 생성 + +추출된 정보를 기반으로 검색 키워드를 생성합니다: + +| 키워드 유형 | 형식 | 예시 | +|-------------|------|------| +| **기본 검색** | [상품명] [브랜드] | "갤럭시북 프로 360 삼성" | +| **상세 검색** | [상품명] [모델번호] [사양] | "갤럭시북 프로 360 NT950QDX-G516 15인치 i7 16GB" | +| **대안 검색** | [상품명] [유사제품] | "갤럭시북 프로 360 vs 엘리엇북 프로" | + +### 3단계: 카테고리 분류 + +상품 카테고리를 자동 분류합니다: + +| 카테고리 | 키워드 예시 | +|----------|-------------| +| **노트북** | 노트북, 북, 랩탑, 울트라북 | +| **스마트폰** | 폰, 스마트폰, 휴대폰 | +| **태블릿** | 태블릿, 아이패드, 갤럭시탭 | +| **가전** | 냉장고, 세탁기, 에어컨, TV | +| **의류** | 옷, 티셔츠, 바지, 자켓 | +| **식품** | 음식, 식료품, 과자, 음료 | +| **도서** | 책, 서적, 만화 | + +### 4단계: 검증 기준 설정 + +카테고리에 따라 검증 기준을 자동 설정합니다: + +```yaml +validation_criteria: + electronics: + stock_check: true + spec_match: true + price_consistency: true + warranty_check: true + + clothing: + stock_check: true + size_match: true + color_match: true + price_consistency: true + + food: + stock_check: true + expiry_check: true + price_consistency: true +``` + +## 출력 + +```json +{ + "requirement_id": "req_001", + "original_input": "삼성 갤럭시북 프로 360 15인치 i7 16GB 찾기", + "parsed": { + "product_name": "갤럭시북 프로 360", + "brand": "삼성", + "model_number": null, + "category": "노트북", + "specs": { + "screen_size": "15인치", + "cpu": "i7", + "ram": "16GB" + }, + "budget": null, + "other_requirements": [] + }, + "search_keywords": { + "basic": ["갤럭시북 프로 360", "삼성 노트북"], + "detailed": ["갤럭시북 프로 360 15인치 i7 16GB"], + "alternative": ["갤럭시북 프로 360 리뷰", "갤럭시북 프로 360 비교"] + }, + "validation_criteria": { + "stock_check": true, + "spec_match": true, + "price_consistency": true, + "warranty_check": true + } +} +``` + +## 규칙 + +1. **최소 1개 필수 항목** — 상품명은 반드시 있어야 함 +2. **키워드 중복 제거** — 동일한 키워드가 여러 번 생성되지 않도록 +3. **카테고리 자동 분류** — 명시적이지 않은 경우 키워드로 추론 +4. **검증 기준 기본값** — 카테고리 미지정 시 일반적인 기준 적용 diff --git a/skills/find-goods/pipeline/02-search-execution.md b/skills/find-goods/pipeline/02-search-execution.md new file mode 100644 index 0000000..2b1453c --- /dev/null +++ b/skills/find-goods/pipeline/02-search-execution.md @@ -0,0 +1,135 @@ +# Step 2: 검색 실행 + +## 개요 + +생성된 검색 키워드를 사용하여 3단계 검색을 실행합니다. + +## 검색 단계 + +| 단계 | 소스 | 도구 | 우선순위 | +|------|------|------|----------| +| **1차** | 웹 검색 엔진 | `websearch` | 높음 | +| **2차** | 온라인 쇼핑몰 | `websearch` + `webfetch` | 중간 | +| **3차** | 가격 비교 사이트 | `websearch` + `webfetch` | 낮음 | + +## 1차 검색: 웹 검색 엔진 + +### 검색 전략 + +``` +검색 쿼리: [상품명] + [브랜드] + [사양] +예시: "갤럭시북 프로 360 삼성 15인치 i7 16GB" +``` + +### 검색 대상 + +| 검색엔진 | 특징 | 사용 시점 | +|----------|------|-----------| +| **Google** | 가장 광범위한 결과 | 기본 검색 | +| **Bing** | 이미지/쇼핑 결과 강화 | 이미지 확인 필요 시 | +| **Naver** | 한국어 콘텐츠 특화 | 한국 상품 검색 시 | + +### 수집 정보 + +- 상품명, 브랜드, 모델 +- 가격 정보 +- 판매처 URL +- 리뷰/평점 요약 + +## 2차 검색: 온라인 쇼핑몰 + +### 검색 대상 쇼핑몰 + +| 쇼핑몰 | 특징 | 검색 방법 | +|--------|------|-----------| +| **쿠팡** | 빠른 배송, 다양한 상품 | "site:coupang.com [상품명]" | +| **네이버 쇼링** | 가격 비교, 리뷰 | "site:shopping.naver.com [상품명]" | +| **11번가** | 다양한 할인 | "site:11st.co.kr [상품명]" | +| **G마켓** | 중고/리퍼 가능 | "site:gmarket.co.kr [상품명]" | +| **Amazon** | 해외 직구 | "site:amazon.com [상품명]" | + +### 수집 정보 + +- 정확한 가격 +- 재고 상태 +- 배송 정보 +- 판매자 정보 +- 상세 스펙 + +## 3차 검색: 가격 비교 사이트 + +### 검색 대상 + +| 사이트 | 특징 | 사용 시점 | +|--------|------|-----------| +| **다나와** | 전자제품 가격 비교 | 전자제품 검색 시 | +| **네이버 가격비교** | 범용 가격 비교 | 일반 상품 검색 시 | +| **에누리** | 실시간 가격 추적 | 가격 변동 확인 시 | + +### 수집 정보 + +- 최저가 정보 +- 가격 변동 이력 +- 판매처별 가격 비교 +- 리뷰/평점 종합 + +## 검색 실행 규칙 + +1. **단계별 실행** — 1차 → 2차 → 3차 순서로 실행 +2. **결과 통합** — 각 단계의 결과를 통합하여 처리 +3. **에러 시 건너뛰기** — 검색 실패 시 다음 단계로 진행 +4. **중복 제거** — 동일 상품은 하나로 통합 + +## 출력 + +```json +{ + "search_id": "search_001", + "keyword": "갤럭시북 프로 360 15인치 i7 16GB", + "results": { + "web_search": [ + { + "source": "web", + "url": "https://...", + "title": "상품 제목", + "price": 1500000, + "seller": "판매처", + "rating": 4.5, + "review_count": 123 + } + ], + "shopping_mall": [ + { + "source": "coupang", + "url": "https://coupang.com/...", + "title": "상품 제목", + "price": 1480000, + "seller": "삼성 공식", + "stock": "in_stock", + "shipping": "무료배송" + } + ], + "price_comparison": [ + { + "source": "danawa", + "url": "https://danawa.com/...", + "title": "상품 제목", + "min_price": 1450000, + "max_price": 1600000, + "price_history": [...] + } + ] + }, + "total_results": 15, + "search_timestamp": "2024-01-15T10:30:00Z" +} +``` + +## 에러 핸들링 + +| 상황 | 처리 방법 | +|------|-----------| +| **검색엔진 차단** | 다른 검색엔진으로 변경 | +| **쇼핑몰 접속 불가** | 해당 쇼핑몰 건너뛰기 | +| **결과 없음** | 키워드 수정 제안 | +| **네트워크 오류** | 최대 3회 재시도 | diff --git a/skills/find-goods/pipeline/03-result-collection.md b/skills/find-goods/pipeline/03-result-collection.md new file mode 100644 index 0000000..602c621 --- /dev/null +++ b/skills/find-goods/pipeline/03-result-collection.md @@ -0,0 +1,144 @@ +# Step 3: 결과 수집 + +## 개요 + +각 검색 소스에서 수집한 결과를 통합하고, 중복을 제거하며, 기본 필터링을 수행합니다. + +## 처리 과정 + +### 1단계: 결과 통합 + +여러 검색 소스의 결과를 하나의 목록으로 통합합니다: + +``` +웹 검색 결과 (5건) ++ 쇼핑몰 검색 결과 (8건) ++ 가격 비교 결과 (3건) += 통합 결과 (16건) +``` + +### 2단계: 중복 제거 + +동일한 상품을 여러 소스에서 발견한 경우 하나로 통합합니다. + +#### 중복 기준 + +| 기준 | 방법 | +|------|------| +| **상품명 유사도** | 텍스트 유사도 80% 이상 | +| **모델번호 일치** | 동일 모델번호 | +| **URL 중복** | 동일 URL | +| **가격+판매처** | 동일 가격의 동일 판매처 | + +#### 통합 규칙 + +```json +{ + "product": "원본 상품 정보", + "sources": [ + {"source": "web", "url": "..."}, + {"source": "coupang", "url": "..."} + ], + "best_price": 1450000, + "price_range": {"min": 1450000, "max": 1600000} +} +``` + +### 3단계: 신뢰도 평가 + +각 상품의 신뢰도를 평가합니다: + +| 요소 | 가중치 | 평가 기준 | +|------|--------|-----------| +| **소스 수** | 30% | 여러 소스에서 확인된 상품 | +| **판매처 신뢰도** | 25% | 대형 쇼핑몰, 공식 판매처 | +| **리뷰/평점** | 20% | 평점 4.0 이상, 리뷰 10건 이상 | +| **가격 정합성** | 15% | 시장 평균가 대비 정상 범위 | +| **정보 완성도** | 10% | 상세 스펙, 이미지 등 정보 풍부 | + +#### 신뢰도 점수 계산 + +``` +trust_score = ( + source_count_score * 0.3 + + seller_trust_score * 0.25 + + review_score * 0.2 + + price_consistency_score * 0.15 + + information_completeness_score * 0.1 +) +``` + +### 4단계: 기본 필터링 + +다음 기준으로 기본 필터링을 수행합니다: + +| 필터 | 기준 | 처리 | +|------|------|------| +| **가격 범위** | 사용자 예산 범위 밖 | 제외 | +| **재고 상태** | 품절/재고 없음 | 별도 표시 | +| **판매처** | 비신뢰 판매처 | 신뢰도 낮춤 | +| **정보 부족** | 상세 정보 없음 | 신뢰도 낮춤 | + +## 출력 + +```json +{ + "collection_id": "col_001", + "search_id": "search_001", + "products": [ + { + "product_id": "prod_001", + "name": "삼성 갤럭시북 프로 360 15인치 i7 16GB", + "brand": "삼성", + "model_number": "NT950QDX-G516", + "category": "노트북", + "price": { + "min": 1450000, + "max": 1600000, + "average": 1520000, + "currency": "KRW" + }, + "sources": [ + { + "source": "coupang", + "url": "https://coupang.com/...", + "price": 1480000, + "stock": "in_stock", + "seller": "삼성 공식스토어" + }, + { + "source": "naver", + "url": "https://shopping.naver.com/...", + "price": 1450000, + "stock": "in_stock", + "seller": "삼성전자 공식" + } + ], + "trust_score": 0.85, + "rating": 4.5, + "review_count": 234, + "specs": { + "screen_size": "15.6인치", + "cpu": "인텔 코어 i7-1360P", + "ram": "16GB", + "storage": "512GB SSD", + "weight": "1.71kg" + } + } + ], + "summary": { + "total_found": 15, + "after_dedup": 8, + "after_filter": 6, + "price_range": {"min": 1400000, "max": 1800000} + }, + "collection_timestamp": "2024-01-15T10:35:00Z" +} +``` + +## 규칙 + +1. **중복 제거 우선** — 통합 전 중복 제거 수행 +2. **신뢰도 기반 정렬** — 높은 신뢰도 순으로 정렬 +3. **가격 정보 보존** — 통합 시 모든 가격 정보 보존 +4. **출처 명시** — 각 상품의 출처 정보 반드시 포함 diff --git a/skills/find-goods/pipeline/04-product-validation.md b/skills/find-goods/pipeline/04-product-validation.md new file mode 100644 index 0000000..326df4d --- /dev/null +++ b/skills/find-goods/pipeline/04-product-validation.md @@ -0,0 +1,145 @@ +# Step 4: 상품 검증 + +## 개요 + +수집된 상품 목록에 대해 유효성을 검증합니다. 재고, 사양, 가격 등을 종합적으로 검증합니다. + +## 검증 항목 + +| 검증 항목 | 방법 | 기준 | +|-----------|------|------| +| **재고/품절 여부** | 쇼핑몰 상세 페이지에서 재고 상태 확인 | "품절", "일시 품절", "재고 없음" 표시 여부 | +| **사양/스펙 일치** | 사용자 요구사항과 상세 스펙 비교 | 핵심 사양 100% 일치 필요 | +| **제품 특성 일치** | 카테고리, 브랜드, 모델 등 핵심 속성 대조 | 카테고리/브랜드/모델 일치 여부 | +| **가격 정합성** | 시장 평균가 대비 정상 범위 여부 | 시장 평균 대비 ±30% 이내 | + +## 검증 단계 + +### 1단계: 재고 상태 확인 + +각 판매처에서 재고 상태를 확인합니다: + +| 상태 | 의미 | 처리 | +|------|------|------| +| **재고 있음** | 즉시 구매 가능 | PASS | +| **일시 품절** | 재입고 예정 | CONDITIONAL PASS | +| **품절** | 재고 없음 | FAIL | +| **주문제작** | 제작 후 배송 | CONDITIONAL PASS | +| **예약 판매** | 예약 후 배송 | CONDITIONAL PASS | + +### 2단계: 사양/스펙 검증 + +사용자 요구사항과 상품 스펙을 비교합니다: + +#### 검증 기준 + +| 사양 유형 | 검증 방법 | 예시 | +|-----------|-----------|------| +| **핵심 사양** | 100% 일치 필요 | CPU, RAM, 저장용량 | +| **부가 사양** | 80% 이상 일치 | 무게, 배터리 | +| **선택 사양** | 일치 여부 표시 | 색상, 추가 옵션 | + +#### 검증 결과 분류 + +| 결과 | 의미 | +|------|------| +| **EXACT MATCH** | 모든 핵심 사양 일치 | +| **PARTIAL MATCH** | 핵심 사양 일부 차이 | +| **NO MATCH** | 핵심 사양 불일치 | + +### 3단계: 제품 특성 일치 확인 + +다음 항목이 사용자 요구사항과 일치하는지 확인합니다: + +| 특성 | 확인 방법 | +|------|-----------| +| **카테고리** | 상품 분류 일치 여부 | +| **브랜드** | 선호 브랜드 일치 여부 | +| **모델** | 특정 모델 지정 시 일치 여부 | + +### 4단계: 가격 검증 + +가격이 정상 범위인지 확인합니다: + +``` +가격 정합성 = |상품가격 - 시장평균가| / 시장평균가 + +기준: +- 0.0 ~ 0.3: PASS (정상) +- 0.3 ~ 0.5: WARNING (주의) +- 0.5 이상: FAIL (비정상) +``` + +## 검증 결과 분류 + +| 결과 | 의미 | 조치 | +|------|------|------| +| **PASS** | 모든 검증 통과 | 상품 정보 표시 | +| **CONDITIONAL PASS** | 조건부 통과 | 조건 명시 후 표시 | +| **FAIL** | 검증 실패 | 실패 사유 표시 및 대안 제안 | + +## 출력 + +```json +{ + "validation_id": "val_001", + "collection_id": "col_001", + "products": [ + { + "product_id": "prod_001", + "validation_result": "PASS", + "validation_details": { + "stock": { + "status": "PASS", + "details": "재고 있음 (삼성 공식스토어)", + "stock_level": "in_stock" + }, + "spec_match": { + "status": "EXACT_MATCH", + "details": "모든 핵심 사양 일치", + "matched_specs": ["CPU: i7-1360P", "RAM: 16GB", "Storage: 512GB"], + "unmatched_specs": [] + }, + "product_match": { + "status": "PASS", + "details": "카테고리, 브랜드, 모델 모두 일치", + "category_match": true, + "brand_match": true, + "model_match": true + }, + "price_consistency": { + "status": "PASS", + "details": "시장 평균가 대비 정상 범위", + "product_price": 1480000, + "market_average": 1520000, + "deviation_percent": -2.6 + } + }, + "overall_score": 0.92 + } + ], + "summary": { + "total_validated": 6, + "pass": 4, + "conditional_pass": 1, + "fail": 1 + }, + "validation_timestamp": "2024-01-15T10:40:00Z" +} +``` + +## 에러 핸들링 + +| 상황 | 처리 방법 | +|------|-----------| +| **상세 페이지 접근 불가** | 기본 정보만으로 검증 | +| **스펙 정보 부족** | "미확인"으로 표시 | +| **가격 정보 없음** | 가격 검증 건너뛰기 | +| **재고 정보 없음** | "확인 필요"로 표시 | + +## 규칙 + +1. **핵심 사양 100% 일치** — 핵심 사양이 불일치하면 FAIL +2. **재고 없는 상품은 FAIL** — 품절 상품은 FAIL 처리 +3. **가격 이상 감지** — 비정상적으로 저렴하거나 비싼 경우 경고 +4. **검증 결과 명시** — 각 항목의 검증 결과를 상세히 표시 diff --git a/skills/find-goods/pipeline/05-report-generation.md b/skills/find-goods/pipeline/05-report-generation.md new file mode 100644 index 0000000..769b343 --- /dev/null +++ b/skills/find-goods/pipeline/05-report-generation.md @@ -0,0 +1,172 @@ +# Step 5: 리포트 생성 + +## 개요 + +검증된 상품 목록을 바탕으로 최종 리포트를 생성합니다. 검증 결과 요약, 대안 상품 제안, 구매 가이드를 포함합니다. + +## 리포트 구성 + +### 1. 검색 결과 요약 + +| 항목 | 내용 | +|------|------| +| **검색 키워드** | 사용된 검색 키워드 | +| **총 검색 결과** | 수집된 상품 수 | +| **검증 결과** | 통과/조건부통과/실패 건수 | +| **가격 범위** | 최저가 ~ 최고가 | + +### 2. 상품 상세 정보 + +각 검증된 상품에 대해 다음 정보를 표시합니다: + +```markdown +### [상품명] - [검증결과] + +- **가격**: [가격]원 +- **판매처**: [판매처명] +- **재고 상태**: [재고상태] +- **주요 사양**: [핵심 사양 나열] +- **평점**: [별점] ([리뷰수]건) +- **검증 결과**: [PASS/CONDITIONAL PASS/FAIL] + +[상세 검증 결과] +``` + +### 3. 검증 결과 표시 + +| 검증 항목 | 결과 | 상세 | +|-----------|------|------| +| 재고/품절 여부 | ✅/⚠️/❌ | 상세 설명 | +| 사양/스펙 일치 | ✅/⚠️/❌ | 일치/불일치 사양 | +| 제품 특성 일치 | ✅/⚠️/❌ | 카테고리/브랜드/모델 | +| 가격 정합성 | ✅/⚠️/❌ | 시장 평균 대비 비교 | + +### 4. 대안 상품 제안 + +검증 실패한 상품이나 대안이 필요한 경우 유사 상품을 제안합니다: + +| # | 상품명 | 가격 | 차이점 | 추천 이유 | +|---|--------|------|--------|-----------| +| 1 | 대안상품명 | 가격 | 차이점 설명 | 추천 사유 | + +### 5. 구매 가이드 + +최종 구매를 위한 가이드를 제공합니다: + +- **최적의 선택**: 가장 높은 검증 점수를 받은 상품 +- **가성비 선택**: 가격 대비 성능이 우수한 상품 +- **프리미엄 선택**: 최고 사양의 상품 + +## 리포트 형식 + +```markdown +# 상품 검색 리포트: [상품명] + +## 검색 요약 +- **검색 키워드**: [키워드] +- **총 검색 결과**: [건수]건 +- **검증 결과**: 통과 [건수]건, 조건부통과 [건수]건, 실패 [건수]건 +- **가격 범위**: [최저가]원 ~ [최고가]원 +- **검색 시점**: [날짜] + +--- + +## 검증된 상품 + +### 1. [상품명] - ✅ PASS + +**기본 정보** +- **브랜드**: [브랜드] +- **모델번호**: [모델] +- **가격**: [가격]원 +- **판매처**: [판매처] +- **재고 상태**: 재고 있음 +- **평점**: ⭐ [별점] ([리뷰수]건) + +**주요 사양** +- CPU: [사양] +- RAM: [사양] +- 저장용량: [사양] +- 화면: [사양] + +**검증 결과** +| 항목 | 결과 | 상세 | +|------|------|------| +| 재고/품절 | ✅ PASS | 재고 있음 | +| 사양/스펙 | ✅ EXACT MATCH | 모든 핵심 사양 일치 | +| 제품 특성 | ✅ PASS | 카테고리/브랜드/모델 일치 | +| 가격 정합성 | ✅ PASS | 시장 평균 대비 -2.6% | + +**종합 점수**: 92/100 + +--- + +## 대안 상품 + +| # | 상품명 | 가격 | 차이점 | 추천 이유 | +|---|--------|------|--------|-----------| +| 1 | [대안상품1] | [가격]원 | [차이점] | [추천 사유] | +| 2 | [대안상품2] | [가격]원 | [차이점] | [추천 사유] | + +--- + +## 구매 가이드 + +### 🏆 최적의 선택 +**[상품명]** - [가격]원 +- 검증 점수 최고 +- 모든 검증 항목 통과 + +### 💰 가성비 선택 +**[상품명]** - [가격]원 +- 가격 대비 성능 우수 +- 핵심 사양 충족 + +### 👑 프리미엄 선택 +**[상품명]** - [가격]원 +- 최고 사양 +- 추가 기능 포함 + +--- + +## 참고사항 +- 가격은 검색 시점 기준이며, 변동될 수 있습니다. +- 재고 상태는 실시간이 아닐 수 있습니다. +- 최종 구매 결정은 직접 확인 후 진행해 주세요. +``` + +## 출력 + +```json +{ + "report_id": "rpt_001", + "validation_id": "val_001", + "report_type": "full", + "content": { + "summary": { + "search_keyword": "갤럭시북 프로 360 15인치 i7 16GB", + "total_found": 15, + "validated": 6, + "pass": 4, + "conditional_pass": 1, + "fail": 1, + "price_range": {"min": 1400000, "max": 1800000} + }, + "products": [...], + "alternatives": [...], + "buying_guide": { + "best_choice": {...}, + "value_choice": {...}, + "premium_choice": {...} + } + }, + "generated_at": "2024-01-15T10:45:00Z" +} +``` + +## 규칙 + +1. **검증 결과 반영** — 검증 결과를 정확하게 반영 +2. **대안 제안** — 실패 시 최소 1개 이상 대안 제안 +3. **가격 정보 명시** — 검색 시점 기준임을 명시 +4. **실시간 아님** — 재고/가격 정보가 실시간이 아님을 안내