После нажатия Enter
Следующий вопрос начинается с выключенными рассуждениями, даже если прошлый ответ их использовал.
Бесплатный юзерскрипт v1.0.0
Юзерскрипт следит за полем ввода, включает режим до отправки запроса и повторяет отправку через 180 миллисекунд, если сделать это нужно было уже после нажатия Enter. Установка занимает ВСЕГО пару минут!
Рассуждения дают ChatGPT время разобрать задачу, но переключатель возвращается в исходное положение после отправки сообщения, открытия другого чата и перезагрузки вкладки? Заметить это непросто, потому что интерфейс по-прежнему выглядит готовым к работе, и первый признак сброса обычно приходит вместе с ответом, в котором не хватает нужной глубины.
Следующий вопрос начинается с выключенными рассуждениями, даже если прошлый ответ их использовал.
Новый диалог получает настройку по умолчанию, а не ту, которую вы выбрали минуту назад.
Страница возвращается, настройка уже исчезла, и ничто не подсказывает, что она изменилась.
задержка повторной отправки, когда переключатель нужно сначала включить
интервал проверки, которая ловит тихий сброс настройки
языков интерфейса, на которых распознаётся кнопка
сетевых запросов со страницы
У юзерскрипта одна задача, и он решает её в четырёх местах, где ChatGPT может потерять настройку. Здесь нет настроек, потому что вся работа происходит между изменением интерфейса и моментом, когда запрос доходит до OpenAI.
ChatGPT работает как одностраничное приложение, поэтому новый чат может появиться без перезагрузки. MutationObserver замечает такие изменения, а проверка раз в 1,2 секунды страхует случай, когда интерфейс обновляется без события, которое можно перехватить.
Скрипт определяет кнопку по атрибуту нажатия, иконке мозга и подписи «Reasoning» более чем на двадцати языках интерфейса. Если переключатель спрятан в меню «+», скрипт открывает меню и ищет его там.
Enter при выключенном режиме обычно стоит вам запроса. Скрипт отменяет отправку, включает рассуждения и повторяет отправку того же текста через 180 миллисекунд, поэтому сообщение не уходит без нужной настройки.
Манифест не запрашивает разрешений и не делает сетевых запросов. Скрипт читает только те элементы интерфейса, которые нужны для работы, не открывает переписку и ничего не сохраняет за пределами страницы, где он запущен.
Вам понадобится менеджер юзерскриптов и один визит на GreasyFork. Дальше скрипт обновляется сам, поэтому установленная сегодня версия не останется последней навсегда.
Tampermonkey и Violentmonkey работают в Chrome, Edge, Firefox и Safari. Установите один из них со страницы официального магазина и оставьте включённым, пока работаете в браузере.
Откройте страницу на GreasyFork и нажмите «Установить». Менеджер покажет экран подтверждения с разрешениями, а скрипту кроме работы на chatgpt.com ничего не нужно.
Обновите вкладку ChatGPT и выполните команду ниже в консоли браузера. Ответ true означает, что режим включён, а false возвращается, когда в интерфейсе нет переключателя для чтения.
› __autoReasoning.isOn()
true
Для ручной проверки есть команда __autoReasoning.now().
По совместимости
Скрипт намеренно небольшой, поэтому он держится за те части страницы, которые меняются реже всего. Если раскладка переносит переключатель рассуждений в новое место, запасной путь помогает его найти.
chatgpt.com и chat.openai.com@grant none.@updateURL.По приватности
Из вкладки не уходит ни один сетевой запрос, текст переписки не собирается, а в хранилище ничего не записывается. Скрипт находит один элемент в поле ввода, включает его, когда режим выключен, и отходит в сторону. Запросы, файлы и история чатов остаются между вами и OpenAI.
Скрипт касается только переключателя рассуждений в поле ввода. Когда режим выключен, он нажимает на элемент и включает его. Если вы нажали Enter раньше, он отменяет отправку и повторяет её после того, как состояние изменилось, поэтому запрос приходит в ChatGPT с включёнными рассуждениями.
ChatGPT возвращает переключатель в положение по умолчанию после отправки сообщения, при переходе в другой чат и после перезагрузки страницы. Это поведение интерфейса, поэтому юзерскрипт не может предотвратить сброс в его источнике. Он замечает новое состояние и возвращает выбранную настройку до отправки следующего сообщения.
Нет. Единственный текст, который скрипт отправляет повторно, уже находится в поле ввода в момент нажатия Enter. Скрипт не составляет запросы, не открывает чаты и не работает, пока вы печатаете.
Скрипт читает небольшой набор атрибутов интерфейса у кнопок и пунктов меню, например
aria-pressed и видимые подписи. Он не читает текст сообщений и вложения, не открывает
содержимое чатов и не делает собственных сетевых запросов.
Скрипт проверен на ChatGPT GO. На других тарифах он работает тогда, когда переключатель рассуждений показывается в поле ввода или в меню «+». Если модель не предоставляет такой элемент, скрипт ждёт и ничего не делает, поэтому неподдерживаемые модели не вызывают ошибок и случайных нажатий.
Откройте chatgpt.com и выполните __autoReasoning.isOn() в консоли браузера. Команда
вернёт true, когда переключатель включён. Ещё можно выполнить __autoReasoning.now()
и запустить ручную проверку, не дожидаясь следующего события на странице.
Подойдёт любой менеджер юзерскриптов, который поддерживает блок метаданных. Tampermonkey и Violentmonkey покрывают Chrome, Edge, Firefox и Safari, а сам скрипт использует стандартные DOM API. Проект проверен на Chromium с ChatGPT GO.
В некоторых раскладках переключатель рассуждений находится в меню вложений, а не в поле ввода. Когда переключатель не виден, скрипт открывает меню, ищет строку с рассуждениями и закрывает меню снова. Запасной вариант запускается не чаще раза в тридцать секунд, поэтому неподдерживаемый интерфейс не получает нажатий по кругу.
В манифесте указан @updateURL со ссылкой на GreasyFork, и ваш менеджер юзерскриптов
сам проверяет этот адрес по своему расписанию. Когда выходит новая версия, менеджер предлагает
обновление или устанавливает её автоматически, в зависимости от ваших настроек.
Нет. ChatGPT Auto Reasoning это независимый проект с открытым исходным кодом под лицензией MIT, а ChatGPT является товарным знаком OpenAI. Скрипт взаимодействует только с теми элементами, которые уже есть в интерфейсе ChatGPT.