- pipeline: fetch/extract/normalize/categorize/validate/llm_extract/raw/orchestrator - analytics: dynamics, spreads/arbitrage, seasonality, anomalies, alerts, forecast - dashboard: FastAPI + Plotly (overview/products/product/countries/alerts/quality/sources) - scheduler (APScheduler 07:30), digest (Telegram/SMTP dry-run), demo_data - SQLite (PORTABLE) with idempotent upserts, quarantine, alerts dedup - truthfulness: LLM quote-verified, source link + date on every price - tests: 13 passed, 1 skipped (robots port)
211 lines
7.9 KiB
YAML
211 lines
7.9 KiB
YAML
# AgroMarket Price Agent — Taxonomy (Central Asia: KZ, TJ, UZ, RU, KG, TM)
|
||
# 18 top-level categories. Each category has subcategories; products live in products.yaml.
|
||
# ID is stable (used in DB). Labels are display-only.
|
||
|
||
categories:
|
||
- id: grains
|
||
label_ru: "Злаки и зерно"
|
||
label_en: "Grains"
|
||
subcategories:
|
||
- {id: wheat, label_ru: "Пшеница"}
|
||
- {id: rye, label_ru: "Рожь"}
|
||
- {id: barley, label_ru: "Ячмень"}
|
||
- {id: corn, label_ru: "Кукуруза"}
|
||
- {id: rice, label_ru: "Рис"}
|
||
- {id: oats, label_ru: "Овёс"}
|
||
- {id: sorghum, label_ru: "Просо (сорго)"}
|
||
- {id: millet, label_ru: "Просо"}
|
||
- {id: triticale, label_ru: "Тритикале"}
|
||
|
||
- id: pulses
|
||
label_ru: "Бобовые"
|
||
label_en: "Pulses"
|
||
subcategories:
|
||
- {id: lentil, label_ru: "Чечевица"}
|
||
- {id: pea, label_ru: "Горох"}
|
||
- {id: bean, label_ru: "Фасоль, нут"}
|
||
- {id: soy, label_ru: "Соя"}
|
||
|
||
- id: oilseeds
|
||
label_ru: "Масличные"
|
||
label_en: "Oilseeds"
|
||
subcategories:
|
||
- {id: sunflower, label_ru: "Подсолнечник (масло)"}
|
||
- {id: rapeseed, label_ru: "Рапс"}
|
||
- {id: safflower, label_ru: "Сафлор"}
|
||
- {id: sesame, label_ru: "Кунжут"}
|
||
|
||
- id: tubers
|
||
label_ru: "Корнеплоды"
|
||
label_en: "Tubers"
|
||
subcategories:
|
||
- {id: potato, label_ru: "Картофель"}
|
||
- {id: carrot, label_ru: "Морковь"}
|
||
- {id: onion, label_ru: "Лук"}
|
||
- {id: beet, label_ru: "Свёкла"}
|
||
- {id: radish, label_ru: "Редис"}
|
||
- {id: turnip, label_ru: "Репа"}
|
||
|
||
- id: vegetables
|
||
label_ru: "Овощи"
|
||
label_en: "Vegetables"
|
||
subcategories:
|
||
- {id: tomato, label_ru: "Томаты"}
|
||
- {id: cucumber, label_ru: "Огурцы"}
|
||
- {id: pepper, label_ru: "Перец"}
|
||
- {id: cabbage, label_ru: "Капуста"}
|
||
- {id: lettuce, label_ru: "Салат листья"}
|
||
- {id: eggplant, label_ru: "Баклажан"}
|
||
- {id: spinach, label_rd: "Шпинат"}
|
||
- {id: pumpkin, label_ru: "Тыква"}
|
||
- {id: zucchini, label_ru: "Кабачки"}
|
||
|
||
- id: fruits
|
||
label_ru: "Фрукты"
|
||
label_en: "Fruits"
|
||
subcategories:
|
||
- {id: apple, label_ru: "Яблоки"}
|
||
- {id: pear, label_ru: "Груши"}
|
||
- {id: cherry, label_ru: "Вишня"}
|
||
- {id: plum, label_rd: "Слива"}
|
||
- {id: apricot, label_ru: "Абрикос"}
|
||
- {id: peach, label_ru: "Персик"}
|
||
- {id: pomegranate, label_ru: "Гранат"}
|
||
- {id: quince, label_ru: "Айва"}
|
||
- {id: citrus, label_ru: "Цитрусовые"}
|
||
- {id: melon, label_ru: "Дыня"}
|
||
- {id: watermelon, label_ru: "Арбуз"}
|
||
|
||
- id: nuts_dried
|
||
label_ru: "Орехи и сухофрукты"
|
||
label_en: "Nuts & dried"
|
||
subcategories:
|
||
- {id: walnut, label_ru: "Грецкий орех"}
|
||
- {id: almond, label_ru: "Миндаль"}
|
||
- {id: pistachio, label_ru: "Фисташки"}
|
||
- {id: hazelnut, label_ru: "Лещина"}
|
||
- {id: raisin, label_ru: "Изюм/чернослив"}
|
||
- {id: dried_apricot, label_ru: "Курага/чернослив"}
|
||
- {id: dried_fruit, label_ru: "Сухофрукты (общие)"}
|
||
|
||
- id: dairy
|
||
label_ru: "Молоко и молочное"
|
||
label_en: "Dairy"
|
||
subcategories:
|
||
- {id: milk, label_ru: "Молоко свежее"}
|
||
- {id: cheese, label_ru: "Сыр"}
|
||
- {id: butter, label_ru: "Масло сливочное"}
|
||
- {id: ghee, label_ru: "Масло топлёное"}
|
||
- {id: yogurt, label_ru: "Йогурт/айран"}
|
||
- {id: kefir, label_rd: "Кефир"}
|
||
- {id: cream, label_ru: "Сливки"}
|
||
- {id: kurut, label_ru: "Курут"}
|
||
|
||
- id: eggs
|
||
label_ru: "Яйца"
|
||
label_en: "Eggs"
|
||
subcategories:
|
||
- {id: chicken, label_ru: "Куриные"}
|
||
- {id: duck, label_ru: "Утиные"}
|
||
- {id: quail, label_ru: "Перепелиные"}
|
||
|
||
- id: meat
|
||
label_ru: "Мясо"
|
||
label_en: "Meat"
|
||
subcategories:
|
||
- {id: beef, label_ru: "Говядина"}
|
||
- {id: mutton, label_rd: "Баранина"}
|
||
- {id: lamb, label_ru: "Ягнятина"}
|
||
- {id: pork, label_rd: "Свинина"}
|
||
- {id: chicken, label_ru: "Цыплёнок (тушка)"}
|
||
- {id: offal, label_ru: "Потрохи"}
|
||
|
||
- id: fish
|
||
label_ru: "Рыба и морепродукты"
|
||
label_en: "Fish & seafood"
|
||
subcategories:
|
||
- {id: carp, label_ru: "Карп"}
|
||
- {id: bream, label_ru: "Лещ"}
|
||
- {id: salmon, label_rd: "Лосось/форель"}
|
||
- {id: pike_perch, label_rd: "Судак"}
|
||
- {id: shrimp, label_ru: "Креветки"}
|
||
- {id: canned_fish, label_ru: "Рыба консервированная"}
|
||
|
||
- id: honey
|
||
label_ru: "Мёд"
|
||
label_en: "Honey"
|
||
subcategories:
|
||
- {id: honey, label_ru: "Мёд"}
|
||
- {id: honeycomb, label_ru: "Матка (соты)"}
|
||
- {id: royal_jelly, label_ru: "Маточное молочко"}
|
||
- {id: pollen, label_rd: "Цветочная пыльца"}
|
||
|
||
- id: herbs_spices
|
||
label_ru: "Зелень и специи"
|
||
label_en: "Herbs & spices"
|
||
subcategories:
|
||
- {id: coriander, label_ru: "Кинза"}
|
||
- {id: dill, label_ru: "Укроп"}
|
||
- {id: parsley, label_ru: "Петрушка"}
|
||
- {id: mint, label_ru: "Мята"}
|
||
- {id: saffron, label_rd: "Шафран"}
|
||
- {id: cumin, label_rd: "Зира/кумин"}
|
||
- {id: black_pepper, label_ru: "Перец чёрный"}
|
||
- {id: cinnamon, label_ru: "Корица"}
|
||
- {id: allspice, label_rd: "Гвоздика"}
|
||
- {id: cardamom, label_ru: "Кардамон"}
|
||
|
||
- id: sugar_sweeteners
|
||
label_ru: "Сахар и подсластители"
|
||
label_en: "Sugar"
|
||
subcategories:
|
||
- {id: refined_sugar, label_ru: "Сахар-рафинад"}
|
||
- {id: brown_sugar, label_ru: "Сахар тростниковый"}
|
||
- {id: honey_sweet, label_rd: "Мёд (кондитерская основа)"}
|
||
|
||
- id: beverages
|
||
label_ru: "Напитки"
|
||
label_en: "Beverages"
|
||
subcategories:
|
||
- {id: juice, label_ru: "Сок"}
|
||
- {id: ayran, label_ru: "Айран"}
|
||
- {id: kumiss, label_ru: "Кумыс"}
|
||
- {id: tea, label_ru: "Чай"}
|
||
- {id: coffee, label_ru: "Кофе"}
|
||
- {id: kvass, label_ru: "Компот/квас"}
|
||
|
||
- id: flour_milling
|
||
label_ru: "Мука и крупы"
|
||
label_en: "Flour & milling"
|
||
subcategories:
|
||
- {id: flour_wheat, label_ru: "Мука пшеничная"}
|
||
- {id: flour_rye, label_ru: "Мука ржаная"}
|
||
- {id: semolina, label_ru: "Семёлина"}
|
||
- {id: pasta, label_ru: "Маккароны/сухие крупы"}
|
||
- {id: rice_milling, label_ru: "Рис крупа"}
|
||
- {id: couscous, label_ru: "Кускус"}
|
||
- {id: oatmeal, label_ru: "Овсянка"}
|
||
- {id: buckwheat, label_rd: "Гречка"}
|
||
|
||
- id: seeds
|
||
label_ru: "Семена и промышленное сырьё"
|
||
label_en: "Seeds & industrial"
|
||
subcategories:
|
||
- {id: sunflower_seeds, label_ru: "Семки подсолнечника"}
|
||
- {id: cotton_seed, label_ru: "Хлопковое семя"}
|
||
- {id: cotton_lint, label_ru: "Хлопок-волокно"}
|
||
- {id: tobacco, label_ru: "Табак листовой"}
|
||
- {id: poppy, label_ru: "Мак"}
|
||
- {id: linseed, label_ru: "Лён"}
|
||
|
||
- id: feed
|
||
label_ru: "Корма"
|
||
label_en: "Feed & forage"
|
||
subcategories:
|
||
- {id: compound_feed, label_ru: "Комбикорм"}
|
||
- {id: hay, label_ru: "Сено"}
|
||
- {id: silage, label_ru: "Силос"}
|
||
- {id: straw, label_ru: "Солома"}
|
||
- {id: bran, label_ru: "Отруби"}
|
||
- {id: grain_feed, label_ru: "Зерно кормовое"}
|