Найти в Дзене
Droidnews.ru

Эта простая задача на JavaScript сломала ChatGPT, Gemini, DeepSeek и Claude

В мире технологий, где ИИ-ассистенты уже стали привычным инструментом, легко поверить в их безграничные возможности. Однако у каждой технологии есть свои пределы. Недавно проведённый стресс-тест выявил их «ахиллесову пяту» — задачу, которая кажется элементарной, но вскрывает фундаментальное различие между статистическим анализом текста и истинным пониманием структуры. В эксперименте участвовал весь цвет современных LLM: Gemini, ChatGPT, Claude, Grok, DeepSeek, Qwen, Mistral и Kimi. Задача была сформулирована предельно чётко. Необходимо написать скрипт на JavaScript, который будет работать с редактируемым блоком (contenteditable div) и в реальном времени выполнять одну простую функцию: заменять стандартные кавычки-лапки (") на типографские парные кавычки-ёлочки (« и »). Ключевое и самое важное условие: замены не должны затрагивать HTML-теги и их атрибуты. Например, код должен оставаться нетронутым. Именно этот нюанс и стал камнем преткновения для всех ИИ. Первая реакция всех без исключе
Оглавление

В мире технологий, где ИИ-ассистенты уже стали привычным инструментом, легко поверить в их безграничные возможности. Однако у каждой технологии есть свои пределы. Недавно проведённый стресс-тест выявил их «ахиллесову пяту» — задачу, которая кажется элементарной, но вскрывает фундаментальное различие между статистическим анализом текста и истинным пониманием структуры.

В эксперименте участвовал весь цвет современных LLM: Gemini, ChatGPT, Claude, Grok, DeepSeek, Qwen, Mistral и Kimi.

Постановка задачи: простой, но коварный типограф

Задача была сформулирована предельно чётко. Необходимо написать скрипт на JavaScript, который будет работать с редактируемым блоком (contenteditable div) и в реальном времени выполнять одну простую функцию: заменять стандартные кавычки-лапки (") на типографские парные кавычки-ёлочки (« и »).

Ключевое и самое важное условие: замены не должны затрагивать HTML-теги и их атрибуты. Например, код

-2

должен оставаться нетронутым. Именно этот нюанс и стал камнем преткновения для всех ИИ.

Битва титанов: как нейросети провалили тест

Первая реакция всех без исключения моделей была одинаковой. Каждая с уверенностью генерировала код, основанный на регулярных выражениях и работе со свойством innerHTML. Как и ожидалось, этот подход моментально ломал разметку, меняя кавычки внутри HTML-тегов.

👉 Такие новости мы постоянно публикуем в Telegram. Подписывайтесь на канал, чтобы ничего не пропустить ;)

Когда на эту ошибку было указано, началось самое интересное. Вместо простого исправления, модели впадали в одну из двух крайностей. Либо они генерировали ещё более монструозные регулярные выражения, которые всё равно не работали, либо пытались использовать «правильные» инструменты: TreeWalker или MutationObserver. Но и здесь их ждал провал. Код становился переусложнённым, содержал логические ошибки, неправильно обрабатывал положение курсора после замены, вызывал зацикливания или вовсе переставал работать. ИИ демонстрировал знание о существовании нужных API, но полное неумение их правильно применить в контексте задачи.

Был и любопытный казус с DeepSeek на заре его появления. Однажды он смог сгенерировать корректно работающий код. Однако последующие попытки с тем же по смыслу промптом, но скорее всего, немного иначе сформулированным, даже в режиме глубоких размышлений, не увенчались успехом. Модель не может воспроизвести собственный удачный результат, что указывает на отсутствие реального понимания и большую роль случайности в генерации.

Стоит отметить, что даже если дать моделям готовый код и попросить его изучить, а потом запросить написать новый, опираясь на уже показанное решение, тоже не приводит к успеху.

Диагноз: почему они все ошиблись?

Иллюзия понимания инструментов. Провал при попытке использовать TreeWalker и MutationObserver куда более показателен, чем ошибка с innerHTML. Нейросети знают о существовании этих API, но не понимают фундаментальных принципов их применения: управление состоянием, сохранение позиции каретки, обработка пограничных случаев в реальном времени. Знать название инструмента и уметь им пользоваться — не одно и то же.

Отсутствие архитектурного мышления. Вместо того чтобы построить решение с нуля на правильном фундаменте (обход DOM-узлов), ИИ пытается залатать изначально неверный подход. Даже получив правильные инструменты, он не может выстроить из них работающую систему, потому что действует как статистический предсказатель, а не как инженер-архитектор.

Случай с DeepSeek доказывает, что даже удачный результат может быть случайностью. Разработчик не может полагаться на инструмент, который сегодня работает, а завтра на тот же запрос выдаёт нерабочий код.

Ещё один эксперимент

Я попробовал пересказать всю ситуацию Gemini 2.5 Pro, спрашивая её комментарии по этому поводу. В итоге нейросеть строила из себя эксперта и под конец на вопрос, сможет ли она написать код без проблем, ответила утвердительно.

-3

Но результат оказался ровно таким же, как просьба написать код по ТЗ, без предварительных обсуждений.

-4