І тут така думка в мене:
Нащо взагалі генерувати код? 😅 Ну, тобто згенерований він хай буде якийсь, але може показувати користувачу-програмісту його і не треба‽ Можна тоді прям в будь-яку мову його вбудовувати. Я навіть синтаксис придумав для мерзенного JS.
Уявімо, що мені не западло якось по-своєму локально дані обробити, бо, власне, для цього й сів код писати, але дуже западло ці дані витягувати, бо авторизації-хуєвторизації, схеми БД тощо. Тож хай будь-який реквест до ШІ-шки повертає функцію. І тоді маємо щось на зразок такого (це я продовжую метрики діставати з ґітгабу):
function getAllApproversSince(date) {
let reviews = gpt`authorize in GitHub with login and password and get the list of all reviews`(login, password, 'myrepo')
let result = ... // my logic
return result
}Вже чую, як хтось відкрив пляшку корвалолу. Так, тут авжеж найбільша проблема в тому, аби забезпечтити повторюваність. Тобто щоб в мене та в іншого девелопера цей запит відпрацьовував однаково завжди. Але давайте йти від зворотнього. Що найгірше може трапитись, якщо ні? Воно поверне якусь хуйню або не поверне нічого. Чим це відрізняється від виклику будь-якої бібліотечної функції? Та особливо нічим — ти або довіряєш, або не користуєшся (або проміжний варіант: дивишся сорци, якщо вони є). Я навіть більше скажу: якщо аналогічна функція написана на найсуворішій найстатичнішій мові програмування, то це не гарантія успіху ніфіга, адже воно на сторонній сервіс завʼязане, котрий може оновитись, може відпасти, може ще багато чого. Іншими словами, треба не намагатись зробити ідеально, а протидіяти ризикам.
Цікаво, що у Wolfram'і схожа тема давно є. Мені здається, Стівен Вольфрам взагалі трохи випередив прогрес в деяких штуках.