Чи може початківець написати мобільний додаток використовуючи ChatGPT?

Усі статті, обговорення, новини про Mobile — в одному місці. Підписуйтеся на телеграм-канал!

Як виявилось може. Я маю майже нульовий досвід в мові python, і не дуже великий досвід програмування в цілому. Нещодавно я вирішив написати для себе мобільний додаток. Я часто ходжу в супермаркет «чисто за хлібом» та повертаюсь з величезними пакетами покупок, і на касі це завжди сюрприз, скільки ж воно вже буде коштувати, та чи вистачить взагалі на картці грошей. Звісно можна рахувати все в калькуляторі, але це не дуже зручно. Тому я хотів зробити додаток для підрахунку покупок «Shopping Calculator». В Play Market вже є десятки таких додатків, але вони для мене занадто перевантажені різним функціоналом (вибір валюти, додавання податків та знижок, незручне редагування і тд). Тому я вирішив зробити собі мінімалістичний додаток в який можу вписати назву, ціну та кількість, відредагувати і порахувати. Для написання обрав саме Python,бо почав її вивчати, і chat gpt мені її порадив, бо там можна за допомогою kivy зручно зробити мультиплатформенну програму під довільний телефон.
І я почав за допомогою chat gpt писати додаток. Я пробував 4 методи prompt engineering для взаємодії з chat gpt. Оцінював їх за тим на скільки добре працює програма, чи всі кнопки є, чи всі функції працюють, загалом 11 параметрів та 11 балів при повністю працюючій програмі.
В першому методі я задав боту легеньке неповне завдання, він генерував код, потім просив додати нові функції, потім ще, і так далі. Але в цьому методі я брав лише перші відповіді які давав бот, не перегенеровуючи, якщо він видавав щось неправильне. В результаті бот дійшов до 5 балів з 11 і далі генерував одне й те ж.
В другому методі я повністю сформулював всю задачу для бота з самого початку та потім просив лише випраляти помилки які були в відповідях, при цьому відповіді знову не перегенеровував, а брав перші. Це виявився найгірший метод, бот видавав рандомні відповіді набираючи то 5 балів, то 3, то взагалі 0.
В третьому методі я робив те що й в другому, але цього разу робив від 10 до 20 генерацій відповідей на кожен запит, і потім обирав найкращу і просив виправити помилки вже в найкращій відповіді, так бот дійшов аж до 8 балів, але теж потім застряг.
І нарешті, в четвертому методі я почав з маленького завдання, як в першому методі, і додавав нові функції, та кожного разу робив по 10-20 генерацій як в третьому методі, і таким чином за 8 запитів отримав повноцінний додаток з усіма функціями які хотів (всього 92 рядки коду).
Виходить з правильним prompt engineering, навіть абсолютний новачок може зробити функціонуючий продукт. А найкращий метод, це робити запити починаючи з мінімального списку і поступово додавати щось нове, але при цьому генерувати хоча б по 10 відповідей на кожен запит та обирати найкращу.
P.S. Сам додаток на телефон, до речі, я так і не встановив (поки що), бо buildozer (бібліотека на python яка пакує код в файл для android) видає помилку при пакуванні, хоча в vs code все працює як треба.

👍ПодобаєтьсяСподобалось2
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

There is no harm in using Chatgpt, I am a Digital marketer for rankuup.com and I using chatgpt on a daily basis for the completion of my daily tasks

ChatGPT
Python
всього 92 рядки коду

Навіщо все так складно.
Додаток неймовірно простий, використовуйте правильні технології.
15-20 рядків коду та 5 хвилин часу.

fraplat.com/jupiter/Sandbox1

 private class Product 
        {
            public string Name { get; set; }
            public int Quantity { get; set; }
            public decimal Price { get; set; }
        }

        public override void OnStart()
        {
            new { Products = new[] 
                    { new Product { Name = "Хліб", Quantity = 1, Price = 1 }, 
                      new Product { Name = "Молоко", Quantity = 2, Price = 5 } } }
            .ToCollection(Constants.FIRST_DOC_ID)
            .SetUIDimension("{'Style':'Save:Calculate;Cancel:false'}")
            .OpenForm(result => {
                var price = result.Collection.GetFirstDoc().Select<Product>("{'Products':[!$]}")
                                                                                  .Sum(x => x.Quantity * x.Price);
                MessageBox($"Рахунок: {price} грн.");
            });
        }

У вас в коді вже введений список без можливості редагування, та і текст саме про те щоб не знаючи взагалі цієї мови програмування зробити програму (а ваш код в мене навіть не запускається до речі)

У вас в коді вже введений список без можливості редагування

Там є кнопки Add та Del. Додати та видалити продукт.
Подвійний клік на рядку, редагувати продукт. Кнопка Calculate порахувати загальний кошторис.

та і текст саме про те щоб не знаючи взагалі цієї мови програмування зробити програму

То не программа. То один функціональний вираз, який пишеться і деплоїться як повноцінний сайт за 5 хвилин. На ЧатЖПТ скільки часу пішло?
Десь пару днів його розважали промптами щоб йому не було скучно?

На chat-gpt то пішло пару днів через те що я різні методи пробував, коли вивів найкращий, то з іншими програмами має бути швидше. А щоб той код який ви написали зробити самому за 5хв, то треба перед тим ще довго вивчати мову програмування, чи не так?

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

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

то треба перед тим ще довго вивчати мову програмування, чи не так?

Не треба. Зайшли на доу, написали мінімальне ТЗ, вам дали ссилку на задеплоєний сайт.
Якщо він простий, звісно.

«Якщо він простий» — ось ви теж пишете що це лише для протих задач підійде, а щось складне ніхто за мене на доу робити не буде, на відміну від мого друга chat-gpt. Та і він ще й інструкцію детальну дасть з тим що робити, а ваш код я навіть не знаю куди вставити, ide мені помилку видає, додаток для телефону я з таким кодом не знаю як зробити. Тому все ж якщо обирати між проханням когось зробити прогу в ком’юніті та проханням зробити прогу в chat-gpt друге може виявитись простішим та точно безкоштовним.

на відміну від мого друга chat-gpt.

Ну він просто не ефективний. Генерить забагато коду та допускає безліч помилок. Для прикладу, якщо 100 рядків коду він генерить на якусь криву свистілку, то на нормальних технологіях на 300-400 рядків коду можна вже розраховувати на якусь соц мережу.
Для GPT то планка просто недосяжна.

а ваш код я навіть не знаю куди вставити, ide мені помилку видає,

Тому що цей код на С#, а не на Пайтоні.
Запустити та задеплоїти його дуже просто

1. Установити Visual Studio Community. visualstudio.microsoft.com/vs/community
2. Установити .NET Core 3.1. dotnet.microsoft.com/...​en-us/download/dotnet/3.1
3. Клонувати репозиторій
github.com/...​rnFractal/FractalPlatform
4. Запустити FractalPlatform.Deployment проєкт на виконання. Він миттєво задеплоїть усі необхідні файли з Sandbox-проєкту в інфраструктуру Fractal і відкриє в браузері задеплоєний проєкт з потрібним url.

Доречі, код вашого додатка я ще більше спростив. Зараз він виглядає зовсім просто
github.com/...​x1/Sandbox1Application.cs

Я ж на python робив, щоб потім зробити з нього apk файл та встановити на телефон як додаток на android. А ви пропонуєте купу іншого всього повстановлювати та зробити сайт, це ж зовсім інше, ясно що воно може бути й простішим по коду, бо на іншій мові та й в іншому середовищі взагалі. (Тому я й написав, що chat-gpt це помічник який зробить на тій мові та технології на якій його просить користувач і розпише всю інструкцію, а люди в ком’юніті такого не зроблять, бо кожен на свій манер буде робити на своїй технології яку знає)

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

Сайт краще, оскільки ви його можете відкрити як на любому телефоні (андроід, епл) так і на компьютері.

Можливо і краще, якщо є інтернет. Я собі в цілях економії місяцями не поповнюю рахунок, щоб мені оператор знижку дав на тариф (бо найдешевший тариф 175грн, а я з нього використовую лише трохи хвилин на дзвінки та до 100мб інтернету на місяць, а решта згорає), та і в супермаркетах часто зв’язку може не бути. (І якщо чесно я б сайт на javascript робив, а не на c#, але це знову ж таки кожен робить на тому що краще знає)

Це сумно.
Я доречі код ще підрефакторив, він фактично зараз 5-7 рядочків коду,
або роботи на 3 хвилини

github.com/...​x1/Sandbox1Application.cs

не ведіться на цейвово все, то без десяти хвилин місцевий божевільний.

трохи б більше мали компетенцію — могли б погортати його статті і коментарі і стало би все зрозуміло.

Початківець може попростити чат жпж написати додаток для чату жпт

У Вас якась біда з форматуванням тексту(.

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

Абзаців нема. Змішались в кучу люди коні...

Виходить з правильним prompt engineering, навіть абсолютний новачок може зробити функціонуючий продукт.

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

Ну це ж лише був приклад, можна і пару сотень рядків коду зробити так само

В доповнення до посту скажу, що це ідеальний помічник для людини яка не знає якусь мову програмування, але володіє загальною програмною логікою в голові. В мене досвіду програмування на python лише пару тижнів, на javascript декілька місяців, на c++ пару років (і то так давно, 10 років тому, що я нічого не пам’ятаю), і найбільше досвіду ще колись в школі (13 років тому) на turbo pascal та delfi, на яких я програмував десь 3 роки та робив купу всього, і анімації з реалістичною фізикою, і різні калькулятори, і ігри в стилі «хто хоче стати мільйонером», і завдяки саме ще тому шкільному давньому досвіду можу без проблем як мінімум читати та розуміти код на інших мовах та складати будь-які програми на «псевдокоді» в голові. Так коли я вчився ще в Ecole Polytechnique, то нам треба було зробити проект з симуляцією реального атома в python, весь код писав мій напарник по проекту, бо я не знав мови взагалі, але при цьому коли програма працювала не правильно (видавала фізично неправильні результати), то я прочитав код і виправив всі помилки мого напарника. Тому chat-gpt це такий ось напарник, який знає всі мови і напише за вас код, але треба його правильно про це попросити, та звісно вміти його перевірити і в разі чого виправити самому, або правильно попросити виправити.

Підписатись на коментарі