Обновить

Комментарии 4

Хорошо, что вы разделили «кандидат» и «подтверждённое полное купе». Это как раз тот случай, где LLM не должна сама интерпретировать свободные места. Я бы ещё зафиксировал этот инвариант в тестах на уровне схемы вагона: fixtures с местами 1–4 в одном купе, 1–2 и 5–6 в разных, а также с неполным ответом API. Тогда изменение парсера не сможет незаметно вернуть более смелую формулировку. И отдельно полезно показывать пользователю дату и время проверки: доступность быстро устаревает.

Спасибо, по фикстурам согласен, это самое слабое место сейчас. Разделение на кандидата и подтверждённое купе живёт в коде, но в тестах не закреплено: парсер можно поправить так, что формулировка тихо станет смелее, и ничего не   упадёт. Три случая, которые вы назвали (1-4 в одном купе, 1-2 и 5-6 в разных, обрезанный ответ API), как раз и есть минимальный набор - причём третий важнее первых двух: именно на неполной схеме хочется гарантированного отката к «вагон минимум с четырьмя местами», а не к молчаливому «нашёл купе».  

Про время проверки тоже верно, и это стоит делать не в тексте ответа, а в самом инструменте: возвращать метку времени по Москве отдельным полем, чтобы модель не могла её потерять при пересказе. Наличие мест устаревает за минуты, а  ответ ассистента выглядит одинаково убедительно и через час.

Не понимаю почему сами компании mcp не делают, это же полностью в их интересах... Имхо на сегодняшний день это должен быть такой же обязательный пункт как допустим запилить приложение для телефона

Спасибо за статью и за упоминание моего проекта! Было интересно посмотреть, как тот же API лёг на Bun/TypeScript и Vercel.

Я примерно в это же время тоже добавил MCP к Python-версии rzd-api: https://github.com/drGOD/rzd-api. Оставил поддержку stdio и streamable-http; через него доступны поиск поездов и станций, вагоны и места, цены, схемы и маршрут.

В итоге получились две реализации с разными акцентами: у вас — готовый публичный сервис и конкретный сценарий поиска целого купе, у меня — Python-библиотека, которую можно подключить к своему проекту или развернуть у себя.

Отдельный инструмент для поиска полного купе — отличная идея. В моей версии такую цепочку пока собирает сама модель из нескольких вызовов, но вынести её в отдельную детерминированную операцию действительно логичнее.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации