Використання ChatGPT для програмування на Python, C та Java

click fraud protection

ChatGPT дуже добре пише код.

Всі чули ChatGPT на цій стадії. Це чат-бот на основі штучного інтелекту, який використовує моделі обробки природної мови для отримання відповідей на складні запитання. Ці відповіді не завжди можуть бути точними, але вони, як правило, достатньо детальні, щоб ви могли досить легко перевірити факти відповідей, які вони вам дають. Що, якби ви взяли ChatGPT і спробували написати з ним код?

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

Для тестування ChatGPT я використовував три мови, з якими я вже знайомий: Python, C і Java. Результати були особливо несподіваними, оскільки він трохи стикався з Python через абстрактний характер того, що я просив його зробити, але він легко впорався з C і базовою Java. У мене теж

створив репозиторій GitHub з усім доступним тут кодом, щоб ви могли спробувати його самостійно.

Автоматична перевірка сторінок на Python

Python є моєю улюбленою мовою програмування, і це завдяки її потужності та простоті використання. У минулому я написав багато інструментів на Python для автоматизації частин мого робочого процесу, і моя дипломна робота на ступінь бакалавра з інформатики навіть була виконана повністю на Python. Я попросив ChatGPT написати програму, яка могла б періодично сканувати веб-сторінку на наявність змін, і вона здебільшого впоралася.

Проблема з наведеним вище кодом, яку він мені дає, полягає в тому, що він не імітує справжній браузер. Веб-сайти перевіряють параметр у вашому веб-переглядачі під назвою «агент користувача», який визначає тип браузера, який ви використовуєте, чи є ви ботом. Багато веб-сайтів не приймають підключення, які не визначають агента користувача, і я зіткнувся з цим, коли вказав його на XDA. Я попросив його додати спеціальні заголовки до запиту, щоб імітувати справжній браузер, і він виконав.

Наведений вище код працює для статичних веб-сайтів, але проблема полягає в тому, що більшість вмісту, який ви читаєте в Інтернеті, є динамічним. Якщо сторінка повертає поточний час, наприклад, десь на сторінці, тоді наведений вище код завжди повідомлятиме, що сторінка змінювалася під час кожного оновлення. Коли я вказав на це ChatGPT, він заплутався та дав мені абсолютно неправильне рішення проблеми.

Наведене вище є неправильним поясненням того, як працюють хеші. Сенс хешу полягає в тому, що незначна зміна вхідних даних призведе до значної різниці в хеші, оскільки два хеші в основному непорівнянні. Коли я сказав йому, що це неправильне твердження, що хеші є найкращим способом порівняння та сканування змін, він відповів вибаченнями та дав мені те, що зробив працювати.

Єдина проблема, яку я виявив із наведеним вище кодом, полягає в тому, що для великих веб-сайтів це обчислювально дорогий, оскільки він використовує обробку природної мови для порівняння та обчислення різниці між ними. Тим не менш, 5% поріг у зміненому вмісті є достатнім для більшості веб-сайтів, якщо ви хочете перевірити наявність оновлень, і ви можете налаштувати поріг, якщо потрібно. Це зайняло деякий час, але врешті-решт воно дійшло.

Є багато причин, чому вам може знадобитися такий веб-скребок, і хоча існують інструменти, які можуть це зробити, чудово створити свій власний. Ви можете використовувати їх для відстеження пакетів або, у моєму випадку, для пошуку нової нерухомості, яка здається в оренду на місцевих сайтах нерухомості.

Генератор паролів на C

У зв’язку з тим, що безпека останнім часом у моді, важливо використовувати надійні паролі, а також використовувати двофакторну автентифікацію. Якщо ви маєте проблеми з частиною безпечних паролів, досить легко написати генератор паролів на C. ChatGPT впорався з цим досить легко, і єдина проблема, яку я виявив, полягала в тому, що коли я попросив його створити генератор паролів, він не імпортував бібліотеку String C. Я сказав йому це, і він додав це до імпорту на початку.

Я збільшив глобальну змінну MAX_LENGTH до 32 символів замість 16, і це згенерувало для мене такий пароль: aW3H0E(&FPQvG8B@4*()+4yRKTKB#U0O. Можна з упевненістю сказати, що це працює!

Калькулятор на Java

Досить простою програмою, з якою багато людей мають досвід роботи на Java, є створення калькулятора. Це один із найперших викликів, з якими комп’ютерники зіткнуться у своїй кар’єрі програміста, незалежно від того, яку мову вони спершу візьмуть. Я попросив ChatGPT написати калькулятор на Java, який би використовував принаймні два класи, і він чудово спрацював з першої спроби.

Це клас калькулятора:

Це основний клас:

Створення обох цих класів у моїй IDE, IntelliJ, і виконання основного класу призводить до ідеальної роботи програма-калькулятор, яка приймає два числа та оператор додавання, віднімання, множення або поділ.

ChatGPT добре вміє програмувати

Хоча я б не покладався на те, що ChatGPT зробить усе за вас, очевидно, що він може досить добре працювати зі створенням програм і врахуванням критики, коли виникають проблеми. Я був здивований, коли побачив, що він пропонує алгоритм хешування як спосіб розрізняти незначні зміни на веб-сторінці, але, окрім цього, він не справлявся з базовими завданнями. Навіть у випадку з програмою Python вона мала правильну ідею з самого початку і на більш статичних сторінках працювала б ідеально.

Звичайно, ChatGPT не зовсім скоро замінить програмістів, але він на шляху до того, щоб стати дуже хорошим інструментом для робочої сили. Копілот GitHub, наприклад, використовує GPT технологія, яка допомагає людям писати код, і з часом вона лише вдосконалюватиметься. Навіть якщо ви програміст-початківець, такий інструмент потенційно може допомогти вам навчитися, якщо ви можете йому повністю довіряти, але іноді він допускає дивні помилки, як ми бачили.

Звичайно, наведені тут приклади дуже прості, і більшість програмістів зможуть написати їх досить легко, але суть не в цьому. Він неймовірно гарний у створенні рішень для простих завдань і, здається, непогано справляється зі складнішими завданнями. Ми раді побачити, куди подібні інструменти підуть у майбутньому й допоможуть людям покращити свої навички.