Дізнайтеся як програмувати з допомогою ChatGPT, чи може ChatGPT замінити програмістів та які мови програмування знає ChatGPT?
Одне з найбільш інтригуючих відкриттів про ChatGPT – це те, що він може писати досить хороший код. Ми перевірили це в лютому, коли попросили його написати плагін для WordPress, для сайту. Він чудово впорався з завданням, але це був дуже простий проект.
Як ви можете програмувати з допомогою ChatGPT і використовувати його для написання коду в рамках вашої щоденної практики програмування? Ось що ми збираємося дослідити тут.
ChatGPT в школі: OpenAI випустила посібник для вчителів
З якими типами програмування добре справляється ChatGPT?
Є два важливих факти про ChatGPT та програмування.
- Перший – це те, що він дійсно може писати корисний код.
- Другий – він може повністю загубитися, ганятися за власним хвостом і створювати абсолютно непридатне для використання сміття.
Ми вирішили подивитися, як далеко може зайти ChatGPT. Ми написали дуже ретельну підказку для програми для Mac, включно з детальним описом елементів інтерфейсу користувача, взаємодій, того, що буде доступно в налаштуваннях, як вони будуть працювати і так далі. Потім відправили його до ChatGPT.
ChatGPT відповів просто потоком тексту і коду. Потім він зупинився на середині коду. Коли ми попросили його продовжити, він виблював ще більше коду і тексту. Ми просили продовжити знову і знову, а він викидав все більше і більше коду. Але… нічого з цього не було придатним для використання. Він не визначив, куди має йти код, як побудувати проект, і – коли уважно подивилися на отриманий код – він пропустив основні операції, які стояли в завданні, залишивши прості текстові описи, в яких говорилося, що “логіка програми йде сюди”.
Мета – запустити модель штучного інтелекту Code Llama для написання комп’ютерних кодів
Після безлічі повторних тестів стало зрозуміло, що якщо ви попросите ChatGPT створити повноцінний додаток, він зазнає невдачі. Якщо ви нічого не знаєте про програмування і хочете, щоб ChatGPT створив щось для вас, він зазнає невдачі.
У чому ChatGPT досягає успіху, і робить це дуже добре, так це в тому, що допомагає людині, яка вже вміє програмувати, створювати певні процедури і виконувати певні завдання. Не просіть програму, яка запускається з рядка меню. Але якщо ви попросите ChatGPT створити процедуру для виведення меню у рядок меню, а потім вставити її у ваш проект, це буде досить добре.
Тож, як програмувати з допомогою ChatGPT?
Також майте на увазі, що хоча здається, що ChatGPT має величезну кількість знань про конкретну область (і це часто так), йому не вистачає мудрості. Таким чином, він може писати код, але він не зможе написати код, що містить нюанси для дуже специфічних або складних проблем, для розуміння яких потрібен глибокий досвід.
Використовуйте ChatGPT для демонстрації технік, написання невеликих алгоритмів і підпрограм. Ви навіть можете попросити ChatGPT допомогти вам розбити великий проект на частини, а потім попросити його допомогти вам закодувати ці частини.
Що таке GitHub Copilot: яка користь розробникам?
Як працює ChatGPT?
Отже, маючи це на увазі, давайте розглянемо деякі конкретні кроки, як використовувати ChatGPT для написання коду.
Як ChatGPT може допомогти вам у написанні коду
Звузьте та конкретизуйте свій запит
На цьому першому кроці ви вирішуєте, що саме ви збираєтеся запитати у ChatGPT – але ще нічого не запитуєте. Вирішіть, що ви хочете, щоб ваша функція або процедура робила, або про що ви хочете дізнатися, щоб включити у свій код. Визначтеся з параметрами, які ви будете передавати у свій код, і з тим, що ви хочете отримати на виході. А потім подивіться, як ви збираєтеся це описати.
Уявіть, що ви платите програмісту за те, щоб він це зробив. Чи даєте ви йому достатньо інформації, щоб він зміг виконати ваше завдання? Або ви занадто розпливчасті, і людина, якій ви платите, швидше за все, буде задавати питання або писати щось зовсім не пов’язане з тим, що ви хочете?
Припустимо, ми хочемо мати можливість підсумувати будь-яку веб-сторінку. Ми хочемо завантажити в неї щось на зразок цієї статті і отримати короткий підсумок, добре продуманий і доречний. На вході ми вказуємо URL-адресу веб-сторінки. На виході ми отримаємо блок тексту з резюме.
Використання ChatGPT для дослідження бібліотек і ресурсів
Продовжуючи приклад вище, дуже старий спосіб вилучення даних з веб-сторінки полягав у тому, щоб просто знайти текст між тегами абзаців HTML.
Але з появою інструментів штучного інтелекту набагато доцільніше використовувати бібліотеки штучного інтелекту для інтелектуального вилучення та узагальнення. Однією з переваг ChatGPT (і це також область, яку ви можете легко перевірити, щоб уникнути його авторитетної, але неправильної моделі поведінки) є пошук бібліотек і ресурсів.
OpenAI (розробник ChatGPT) продає API-доступ до ресурсів GPT-3 і GPT-4, які роблять саме те, що ми хочемо. Але у випадку цього прикладу, припустимо, що ми не хочемо вдаватися по цих посередників.
Отже, давайте розглянемо взаємодію з ChatGPT, щоб зрозуміти, як використовувати такий інструмент, безкоштовно, з проектом, який працює на PHP.
Треба почати з питання для отримання інформації про те, які бібліотеки надають потрібну мені функціональність. Бібліотека (для тих, хто читає цю статтю, але не є програмістом) – це частина коду, до якої має доступ програміст і яка виконує велику частину важкої роботи за нього для певної мети. Значна частина сучасного програмування полягає у пошуку та виборі правильних бібліотек. Тож це хороша відправна точка.
Крім того ми використовували ChatGPT для написання однієї і тієї ж процедури на 12 популярних мовах програмування. Ось як це вийшло
Ось перше запитання:
Опишіть десять різних бібліотек штучного інтелекту з відкритим кодом (і мови, з якими вони працюють), які я можу використовувати для створення резюме основного змісту будь-якої веб-сторінки, ігноруючи будь-яку рекламу або вбудовані матеріали.
Це дало саме те, що було потрібно, включно зі згадкою про пропозиції OpenAI. OpenAI чудово підійшов би тут, але для цього гіпотетичного проекту ми не хочемо закладати в бюджет плату за API. Тому треба звузити питання.
Чи є щось з цього безкоштовним?
ChatGPT підстрахувався. Ось що він сказали: “Так, усі десять бібліотек штучного інтелекту мають відкритий вихідний код і є безкоштовними для використання. Однак деякі з них можуть мати обмеження на використання або вимагати оплати за доступ до додаткових функцій чи ресурсів”. Виходячи з цього, ми уточнили свій запит.
Які з цих бібліотек не мають обмежень у використанні і не вимагають додаткової оплати або ліцензування
Зверніть увагу, що це дуже схоже на розмову. Не потрібно перепитувати початкове запитання. Ми просто заглиблюємося у відповідь так само, як якби у нас під рукою був експерт і ми шукали би роз’яснень.
ChatGPT на телефоні: інструкція для Android та iOS
У цьому випадку ChatGPT запропонував вісім варіантів бібліотек, але жодна з них не згадувала мову PHP. Отже, ось наступна підказка:
З цих 8 бібліотек, чи можемо використовувати якусь з них з PHP?
Він повернув три бібліотеки, але ми не були впевнені, що кожна з них робить. Тому ще одне питання:
Яка різниця між Sumy, Gensim і NLTK? і Якщо ми хочемо створювати резюме новинних статей на веб-сторінці, яка бібліотека буде працювати краще?
Відповідь була чіткою і багатообіцяючою: “Sumy спеціально розроблена для реферування тексту, тобто для створення резюме, яке виокремлює найважливішу інформацію з фрагмента тексту”. Отже, тепер настав час подивитися, як використовувати його з PHP. Ми поставили своє останнє запитання для цієї частини проекту:
Чи можете пояснити, як використовувати Sumy з PHP?
Не соромтеся і вставити ці питання у ваш екземпляр ChatGPT. Зверніть увагу, що на кроці 1 ми вирішили, щодо якого програмного модуля збираемося отримати допомогу. Потім, на цьому кроці, поспилкувалися з ChatGPT, щоб вирішити, яку бібліотеку використовувати і як інтегрувати її в проект.
Це може здатися не схожим на програмування, це є воно. Програмування – це не просто набивання рядків коду на сторінці. Програмування – це з’ясування того, як інтегрувати всі різні ресурси і системи разом, і як спілкуватися з усіма різними компонентами вашого рішення. Тут ChatGPT допоміг зробити такий аналіз інтеграції.
Кодування на черзі.
Попросіть ChatGPT написати приклад коду
Гаразд, давайте на мить зупинимося. Ця стаття називається “Як програмувати з допомогою ChatGPT?”. Так воно і буде, але для початку ми просимо ChatGPT написати приклад коду.
Давайте прояснимо ситуацію. Якщо це не про дуже маленьку функцію, ChatGPT не зможе написати ваш остаточний код. Вам доведеться його модифікувати. ChatGPT жахливо модифікує вже написаний код. Тому, щоб отримати новий код, вам доведеться попросити ChatGPT згенерувати щось нове. Як я вже з’ясував раніше, навіть якщо ваш запит практично ідентичний, ChatGPT може змінити те, що він вам видає, дуже несподіваним чином.
Отже, підсумок: ChatGPT не може перевірити ваш код або навіть змінювати його.
Це означає, що вам доведеться робити це самостійно. Як ми знаємо, перший проект коду рідко є фінальним кодом. Тому навіть якщо ви очікуєте, що ChatGPT згенерує фінальний код, це буде лише відправною точкою, де вам потрібно буде довести його до кінця, інтегрувати у ваш більший проект, протестувати, вдосконалити, налагодити і так далі.
Але це не означає, що приклад коду нічого не вартий. Зовсім ні. Давайте подивимося на підказку, яку ми написали на основі проекту, який вже описали раніше. Ось перша частина:
Напишіть PHP-функцію з назвою summarize_article.
На вхід summarize_article буде передано URL-адресу статті на новинному сайті, наприклад, ZDNET.com або Reuters.com.
Ми вказуємо ChatGPT мову програмування, яку він повинен використовувати. Також повідомляємо йому вхідні дані, але при цьому надаємо два сайти в якості зразків, щоб допомогти ChatGPT зрозуміти стиль статті. Чесно кажучи, ми не впевнені, що ChatGPT не проігнорував ці підказки.
Усередині summarize_article отримайте вміст веб-сторінки за вказаною URL-адресою. Використовуючи бібліотеку Sumy з PHP і будь-які інші необхідні бібліотеки, витягніть основну частину статті, ігноруючи будь-яку рекламу або вбудовані матеріали, і скоротіть її приблизно до 50 слів. Переконайтеся, що резюме складається з повних речень. Ви можете перевищити 50 слів, щоб закінчити останнє речення, якщо це необхідно.
Це дуже схоже на те, як ми б проінструктували працівника. Ми хотіли би, щоб ця людина знала, що вона не обмежена лише Sumy. Якщо їй потрібен інший інструмент, ми хочемо, щоб вона ним скористалася.
Також вказали приблизну кількість слів, щоб створити межі для того, що хочемо отримати в якості резюме. На завершення вказали, що хочемо отримати в результаті:
Після завершення обробки змініть код summarize_article так, щоб він повертав резюме у вигляді звичайного тексту.
Отриманий код досить простий. ChatGPT звернувся до іншої бібліотеки (Goose), щоб отримати вміст статті. Потім він передав його до Summy з обмеженням у 50 слів, а потім повернув результат. Ось і все. Але після того, як основи написані, це лише питання програмування, щоб повернутися назад і налаштувати те, що передається до двох бібліотек, і видати результат.
Ще один цікавий момент. ChatGPT створив зразок виклику написаної ним процедури, використовуючи URL-адресу після 2021 року (коли закінчеється набір даних ChatGPT).
Ми перевірили цю URL-адресу як на сайті Reuters, так і в Wayback Machine, і вона не існує. ChatGPT щойно вигадав її.
Чи замінить ChatGPT програмістів?
Не зараз, або, принаймні, поки що ні. ChatGPT програмує на рівні талановитого студента-першокурсника, але він лінивий (як той студент-першокурсник).
Це може зменшити потребу в програмістах дуже початкового рівня, але на поточному рівні це просто полегшить життя програмістам початкового рівня (і навіть програмістам з більшим досвідом) писати код і шукати інформацію.
Це, безумовно, економить час, але існує небагато програмних проектів, які він може виконати самостійно – принаймні зараз. А у 2030 році? Хтозна.
Як я можу отримати відповіді на запитання в ChatGPT?
Просто запитайте його. Вище ви бачили, як використовувати інтерактивний діалог обговорення, щоб звузити коло потрібних відповідей.
Коли ви працюєте з ChatGPT, не чекайте, що одне питання магічним чином зробить всю роботу за вас. Але використовуйте ChatGPT як помічника і ресурс, і він дасть вам багато дуже корисної інформації. Звичайно, перевірте цю інформацію – адже, як каже Джон Шульман, співзасновник OpenAI, “Ми найбільше турбувалися про фактичність, тому що модель любить вигадувати речі”.
Які мови програмування знає ChatGPT?
Більшість з них. Ми протестували поширені сучасні мови, такі як PHP, Python, Java, Kotlin, Swift, C# та інші. Але потім попросили його написати код на незрозумілих мовах темних віків, таких як COBOL, Fortran, Forth, LISP, ALGOL, RPG (генератор програм-звітів), і навіть на мові асемблера IBM/360.
Як вишенька на торті, дали йому таке завдання:
Напишіть послідовність, яка виводить “Hello, world” у вигляді миготливих індикаторів ascii на передній панелі PDP 8/e.
І ChatGPT фактично продемонстрував інструкції з перемикання програм за допомогою перемикачів на передній панелі. Ми були вражені, захоплені і трохи налякані.
То який же підсумок? Чесно кажучи, ChatGPT може бути дуже корисним інструментом. Просто не приписуйте йому надздібностей. Поки що.
Джерело: https://www.zdnet.com/