Загрузка 0
ПОДЕЛИТЬСЯ

Мой блог

Листай вниз

Восстановление Electron-приложения через OpenAI, OpenRouter и TeamoRouter

Восстановление Electron-приложения через OpenAI, OpenRouter и TeamoRouter

Сложные практические задачи с последовательным чтением файлов, вызовом инструментов и написанием кода позволяют проверить корректность работы языковых моделей. В рамках эксперимента проводилось восстановление Electron-приложения Pomotroid на базе различных API-интерфейсов, включая официальный шлюз OpenAI, OpenRouter и TeamoRouter, для оценки итоговой стоимости и производительности.

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

Почему был выбран настольный помодоро-таймер

В качестве исходного материала взяли дистрибутив Pomotroid версии 0.13.0. Данная программа написана на базе платформы Electron, совмещающей технологии Chromium и Node.js для работы интерфейса на HTML, CSS и JavaScript. Исходный код приложения располагается в упакованном виде внутри архива app.asar.

Реклама

Логика работы таймера включает в себя множество сценариев: остановку отсчета при паузе, сброс циклов, корректное переключение между рабочими интервалами и перерывами, а также сохранение пользовательских настроек. Подобные задачи наглядно демонстрируют, насколько хорошо нейросеть согласовывает программный код и переходы между состояниями.

Первый эксперимент по разбору дистрибутива

Все тесты и запуск скомпилированных приложений выполнялись в изолированной программной среде Docker под управлением Linux, тогда как на вход подавался установочный пакет для Windows. Каждая сессия стартовала в чистом каталоге с неизменным набором стартовых файлов. Доступ к интернету для контейнера отсутствовал, а модели разрешалось использовать лишь терминал и инструмент для снятия скриншотов.

Инструкции требовали разобрать структуру программы, описать логику переключения состояний, а затем самостоятельно запрограммировать функции запуска, паузы, продолжения, сброса, учета циклов и сохранения конфигурации. Использовался Responses API с повышенным уровнем рассуждений reasoning_effort, установленным в high. При этом применялись модели gpt-6-astra для OpenAI и TeamoRouter, а также openai/gpt-6-astra для OpenRouter.

Второй эксперимент с импортом и экспортом состояния

После успешного завершения первого этапа и генерации базовой версии приложения без перезапуска среды ставилась дополнительная задача. Требовалось внедрить в интерфейс функции импорта и экспорта настроек и текущего статуса в формате JSON.

Интерфейс приложения, восстановленного через OpenAI
Начальное окно таймера, восстановленного через официальный API OpenAI

Экспортируемые данные должны были содержать текущий режим, оставшиеся секунды, порядковый номер цикла и пользовательские параметры. После импорта таймер обязан оставаться в режиме паузы, а при некорректном формате или недопустимых значениях приложение должно выводить ошибку без повреждения сохраненных данных в памяти.

Результаты автоматических проверок

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

Каждое из трех приложений набрало одинаковое количество баллов по автоматическим тестам — 70 из 70 возможных. Из них 40 баллов присвоено за базовую логику таймера, 10 за сохранение настроек и 20 за работу с JSON-данными. Оставшиеся 30 баллов зарезервированы для ручной оценки.

Реклама

Сравнение времени выполнения и фактических расходов

Полный цикл работы охватывал генерацию ответов, ожидание и выполнение инструментов. Для официального API потребовалось 29 запросов, для TeamoRouter — 33, а для OpenRouter — 27. Все сессии завершились успешно без ручного вмешательства в код.

Показатель Официальный API OpenAI TeamoRouter OpenRouter

Интерфейс приложения TeamoRouter Astra B14
Интерфейс восстановленного таймера при использовании TeamoRouter

Автоматические проверки 70/70 70/70 70/70

Фактические списания около $5.82 $1.67 $5.71

Полное время 11 мин 58 с 16 мин 12 с 12 мин 14 с

API-запросы 29 33 27

Выходные токены 48 758 61 981 51 663

Интерфейс приложения OpenRouter E9
Интерфейс восстановленного таймера при использовании OpenRouter

По сумме выходных токенов, числу запросов и итоговой стоимости OpenRouter продемонстрировал результаты, наиболее близкие к официальному интерфейсу OpenAI, что указывает на использование аналогичной базовой модели. Платформа TeamoRouter израсходовала больше токенов и потребовала больше времени, однако за счет более низких тарифов общая стоимость оказалась заметно ниже.

01.