Тестовое задание: Определить товар по сообщению покупателя Нужно сделать простого AI-агента для продаж. Одна из его базовых задач - понять, о каком товаре из каталога магазина спрашивает покупатель, который пишет живым языком: с опечатками, сокращениями и лишними словами. Ожидаемый объём: 4-6 часов чистой работы. Дано catalog_exel.csv - каталог магазина (~500 позиций): sku, name, unit, price. messages.txt - ~40 реальных по духу сообщений покупателей «как есть». Сделать HTTP-сервис на Python 3.12 + FastAPI с одним эндпоинтом POST /match. Запрос: {"messages": ["саморезы по дереву 4.2 на 75, пачку", ...]} Ответ: {"results": [{"message": "...", "status": "matched", "candidates": [{"sku": "SKU-123", "confidence": 0.87}]}]} Статусы: matched — уверен, candidates[0] и есть ответ; ambiguous — не уверен, 2-3 кандидата; not_found - товара нет в каталоге или запрос не про товар (candidates можно оставить пустым). Формат запроса/ответа менять нельзя - мы проверяем сервис автоматически. Сервис должен подниматься одной командой - напиши её в README. Важно: сервис должен работать полностью автономно - без интернета, без внешних API и без чьих-либо ключей (в том числе без вызовов LLM-API изнутри сервиса). Ключевое требование Ложных ответов должно быть по-минимому. Если система сомневается - ambiguous со списком кандидатов будет в разы лучше, чем уверенно выданный неправильный товар. Проверять будем в том числе на сообщениях, которых нет в messages.txt. Обязательно README.md, три части: Как запустить (одной командой). Какие решения принял и ПОЧЕМУ: компромиссы, что попробовал и отбросил; что осознанно не сделал и что доделывал бы до продакшена. Раздел «Масштаб»: что изменится в твоём решении, если позиций в каталоге станет 2 миллиона (и жить он будет в PostgreSQL), а магазинов на одном сервисе - пятьдесят, у каждого свой каталог. Код под это писать не нужно - только инженерное рассуждение. Тесты (pytest), включая негативные сценарии. Git-репозиторий с осмысленной историей коммитов, а не одним коммитом «done». Не нужно База данных (каталог можно держать в памяти), Docker, авторизация, фронтенд. Про нейронки Для НАПИСАНИЯ кода пользоваться можно и нужно чем угодно (Claude, ChatGPT, Cursor, DeepSeek - что есть под рукой). Сдача Ссылка на git-репозиторий.