Многие программисты пропагандируют подход, когда учиться программированию нужно с конкретной целью. И отчасти это так, но сейчас для этого есть нейросети. А это значит, что те, кто не заинтересован в кодинге, могут «делегировать» зависящую от него задачу нейросети для написания кода.
Я пойду классическим путем и возьму в качестве инструмента GPT 4o Turbo в сервисе GenAPI, потому что это удобнее. А также потому, что:
- могу оплатить сервис российской картой;
- есть доступ ко всем последним версиям нейронок;
- компания предоставляет свой API.
На самом деле нейросеть для кода может быть не топовой, потому что суть ее работы предельно проста. Тем не менее для лучшего результата я хочу протестировать 4o Turbo, а не бесплатную Mini-версию.
Создание кода в GenAPI
Представим, что я хочу сделать программу, которая бы брала массив из 100 случайных букв и выделяла бы задуманную мной букву, а остальные меняла на 0. Если моей буквы в случайном массиве не будет, то нейросеть для кода сделает так, что все буквы станут 1.
Задача простая и интересная, поэтому открываем главную страницу GenAPI и указываем в поиске 4o Turbo:
Построение эффективного промта
Наш пример рассматривал нейросеть для кода на Python, где для простых задач не нужна столь высокая точность. Практически все высокоуровневые языки для моделей будут «легкими» для генерации ответа. Зависит это от части из-за того, что все нейронки эффективно сканируют сеть и выбирают лучшие из готовых решений.
Однако если мы попробуем сделать код для низкоуровневого языка, то велика вероятность большого количества ошибок при столь общем промте. И ранее я уже советовал даже не пробовать что-либо сгенерировать без понимания языка, но в случае возникновения такого запроса, давайте рассмотрим как создать эффективное описание:
- задать роль и контекст — придумать нейронке конкретную роль и ту задачу, которая она на этой роли должна выполнить;
- самостоятельно указать ограничения и данные — если вы знаете синтаксис, то лучше вручную дать исходные данные и уже попросить написать из них нужную вам функцию;
- попросить добавить комментарии к коду — это также упростит последующее редактирование, потому что можно будет указать на строку и прокомментировать ее действия по словам модели;
- запросить сразу тесты — подобный ход позволить протестировать код и сразу понять, работает ли он;
- обратиться к интерактивному рефакторингу — зафиксировать все баги из первой версии кода, а затем попросить нейронку убрать эти ошибки.
Можно ли доподлинно онлайн проверить созданный нейросетью код? Да, ведь можно его сразу же «скормить» нейронки после генерации, прежде чем компилировать. И в случае, если все оказалось верным, можете попробовать с ним что-то сделать.
Возможные ограничения модели
Когда вы решаете написать код нейросетью, стоит помнить о ряде нюансов, что следуют за спецификой применения языковой модели. И о них я тоже хочу поговорить. Давайте возьмем только основные лимиты, чтобы не уходить в академическую область:
- псевдо-компиляция — реальной компиляции кода не происходит, поэтому возможны некоторые ошибки по синтаксису или несоответствие версий;
- склонность к ошибкам — иногда модель может генерировать ошибочный код и продолжать убежать пользователя, что он рабочий, поэтому тут может помочь только знание предметной области;
- низкая безопасность — на сложных задачах часто предлагает небезопасные паттерны, например SQL-инъекцию, что в реальной работе может стать большой проблемой;
- неполное понимание — самый простой пример, когда созданный алгоритм работает, но нарушает инварианты домена, поэтому использовать его невозможно;
- сложная генерация — актуальна в тех случаях, когда код соберется и заработает, но вот его доступность не будет соответствовать гайдлайнам, и что тогда с этим делать остается только гадать.
Таким образом, модель лишь упрощает рутину, а не делает всю работу за вас. Нейросеть для кода может выдавать достаточно качественный код на легких задачах для низкоуровневых языков, но это не тот уровень, который нужен многим. Будет плюсом, если вы разбираетесь в том, о чем просите, чтобы иметь возможность на проверку.
Какой итог
GenAPI хорошо справился с поставленной задачей и предоставил удобный инструментарий для решений столь необычной задачи. Уверен, что если вы решите использовать нейросеть для создания кода несколько сложнее и на другом языке, то она также вас не подведет. Помимо, здесь дешевая стоимость генерации и есть много бонусов для новых пользователей, поэтому бесплатных попыток в начале будет несколько.