Technical Paper

Канонический продукт (нормативный)

5.4 Канонический продукт (нормативный)

json
// CanonicalProduct
{
  "canonical_product_id": "cp.pinar.milk.1l",
  "name": "Pınar Süt 1 L",
  "name_aliases": ["PINAR SUT 1L", "SUT PINAR 1L", "PINAR S.YAGLI 1L"],
  "brand_id": "brand.pinar",
  "category_path": ["food", "dairy", "milk"],
  "attributes": {
    "size_value": 1.0,
    "size_unit": "L",
    "package_type": "carton",
    "fat_content_pct": 3.0,
    "is_private_label": false
  },
  "barcode_gtin": "8690571000123",
  "embedding_vector_id": "v.pinar.milk.1l.v3",
  "taxonomy_version": "1.0.0",
  "created_at": "2026-01-01T00:00:00Z",
  "last_seen_at": "2026-05-17T14:23:11Z",
  "observation_count": 42813
}

category_path является иерархическим; запросы могут соответствовать на любой глубине (food возвращает всё дерево). taxonomy_version позволяет обратно совместимую реклассификацию — когда выходит v1.1, существующие записи сохраняют свой путь v1.0 до переработки.

Псевдонимы

name_aliases — это то, что обеспечивает нечёткое соответствие на 02 Этапе 4. Новые псевдонимы добавляются либо рецензентом канонизации, либо автослиянием, когда два эмбеддинга плотно кластеризуются. Журнал аудита записывает, кто/что добавил каждый псевдоним.