mirror of
https://github.com/wasrusgen/zov-tech.git
synced 2026-06-03 17:04:48 +00:00
NEW MODULE app/catalog.py: - refresh_catalog(cats, sources, per_brand, delay) — runs parsers for seed brand+category pairs - list_catalog(cat, tier, brand) — reads from Sheets - list_for_ai(cats, tiers) — compact text for AI prompt context - SEED_BRANDS_BY_TIER + CATEGORY_QUERIES — 22 brands × 8 cats = 176 combos - Saves top-2 relevant results per (brand × cat), filters by brand presence in title - Dedup by title hash within (cat, brand) bucket SHEETS: - ensure_sheet(name, headers) — auto-creates Catalog tab on first refresh - Schema: id, category, brand, tier, model_name, search_query, price_min/max, image_url, source, url, last_seen_at ENDPOINTS: - POST /api/catalog/refresh?cat=X&per_brand=N — manual refresh (1 cat ~2-5 min) - GET /api/catalog/list?cat=&tier=&brand= — read with filters - GET /api/catalog/preview_ai?cats=fridge — debug what AI receives AI PROMPT: - Rule #0: if catalog passed in user prompt — MUST select only from there - _build_catalog_context: filters by checklist.budget_preset → tier subset (luxe→premium, premium→premium+middle, middle→middle, budget→middle+budget) _handle_podbor: - Loads catalog subset, appends to user_prompt as 'ДОСТУПНЫЙ КАТАЛОГ МОДЕЛЕЙ' - AI 'выбирай ТОЛЬКО из этого списка' rule reinforced NEXT: trigger refresh manually for 1 category (~3 min), then real podbor test to verify AI uses catalog models instead of hallucinating SKUs |
||
|---|---|---|
| .. | ||
| parsers | ||
| __init__.py | ||
| ai.py | ||
| auth.py | ||
| catalog.py | ||
| config.py | ||
| main.py | ||
| proxy_pool.py | ||
| sheets.py | ||
| telegram.py | ||