Quanto sarebbe difficile per i non programmatori utilizzare il bot AI di Discourse AI per aiutarli a creare plugin e/o temi

NOTA: Se questo avvia una discussione secondaria, dovrà essere spostato in un nuovo argomento. Ti sto fornendo i dettagli perché ti aiuteranno a capire UNA delle mie esigenze e a fornire ulteriori informazioni che potrebbero aiutare anche altri, quindi ti prego di non prenderla male se chiedo che le risposte relative a questa discussione secondaria vengano spostate.

Una delle mie curiosità è: quanto sarebbe difficile per i non programmatori utilizzare il bot AI di Discourse AI per aiutarli a creare plugin e/o temi.

Dato che uso ChatGPT da diversi mesi per aiutarmi con linguaggi di programmazione come Python, JavaScript, Prolog, Espressioni Regolari, PowerShell, Bash e molti altri, sapevo cosa aspettarmi, come ottenere risultati e quando semplicemente arrendermi.

Nel tentativo di utilizzare il bot AI di Discourse AI per creare un plugin molto semplice, ho deciso di iniziare con uno che sapevo esistesse, funzionasse ed era semplice, quindi ho scelto CakeDay.

Dopo aver esaminato il codice e altro sulla pagina, sono rimasto sorpreso da quanto avrei dovuto imparare per crearlo. Quindi ho preso questo codice Ruby

e ho chiesto all’AI di spiegarlo. Avendo fatto cose simili con altro codice sorgente in altre lingue, sapevo cosa aspettarmi. Il risultato non è stato entusiasmante; ho dovuto fare altre domande per capire parte della sintassi, dei metodi, delle funzioni, dell’interfaccia, ecc. Molto di ciò che ho capito facilmente (pensa leggere) ma sapevo che non potevo creare (pensa scrivere) tale codice, né tantomeno sapere cosa o come chiedere al bot AI di creare tale codice; non conosco la terminologia corretta per sollecitare l’AI a generare il testo corretto poiché so che Ruby-on-Rails utilizza una terminologia che non uso altrove, ad esempio bake, slug.

Quindi, volevo anche vedere se si potesse usare Python invece, poiché è molto più facile da capire per molti e anche per ChatGPT creare codice corretto.

1 Mi Piace

Non è Ruby che dovresti imparare, ma Rails.

È una curiosità legittima, ma se quello che vuoi fare è scrivere un plugin di Discourse con l’IA, allora il plugin AI non sembra il posto giusto per iniziare. Vorrei lavorare con un’IA progettata per sviluppare codice.

Più di questo, tuttavia, se vuoi scrivere un plugin di Discourse, scegline uno che faccia qualcosa di simile e modificalo. Cakeday non sembra un plugin particolarmente semplice, ma se quello che vuoi è un plugin che metta un indicatore accanto all’avatar di un utente o faccia qualcosa secondo una pianificazione, allora potrebbe essere un buon punto di partenza.

È piuttosto complicato, però, coinvolge tutto quanto segue:

  • aggiungere dati al serializzatore utente, in modo che il front-end vi abbia accesso
  • eseguire un lavoro secondo una pianificazione
  • creare un percorso che fornisca nuove informazioni (Discourse Meta)
  • utilizzare un plugin outlet per aggiungere informazioni a una pagina

E questo è solo l’inizio.

1 Mi Piace

Mi aspettavo questo, quindi chiederò che questa conversazione secondaria venga spostata in un nuovo argomento.

Non stavo per spiegare tutti i dettagli, ma sì, Rails è nel mix insieme alle altre tecnologie che Discourse utilizza e che si dovrebbero conoscere.

Intendevi specificamente il Discourse AI - AI Bot qui. Ci sono molte IA e concordo sul fatto che molte non le userei per la programmazione e anche alcune che sono per la programmazione non sono buone con ogni linguaggio di programmazione.

La sensazione che sto ricevendo dallo staff di Discourse è che a lungo termine avere un Discourse AI Bot, (persona come la chiamano al momento) è desiderabile. Ma poiché sanno già come creare codice Discourse, avere qualcuno come me per dare un feedback è utile. Certo, conosco la programmazione, il che mi dà un vantaggio, ma essere a metà strada mi dà anche un’idea di cosa aspettarmi e cosa non aspettarmi.

Ti dispiace suggerire uno più semplice?

1 Mi Piace

Al momento, con le attuali capacità dell’IA, sarebbe molto difficile per qualcuno che non sa programmare creare un plugin/tema Discourse completo e funzionante di ragionevole complessità. E spero che non abbiamo mai implicato che qualcosa del genere sarebbe possibile, poiché sarebbe un’esperienza frustrante.

Detto questo, per qualcuno con una conoscenza di programmazione di livello junior, l’utilizzo di un LLM comune, uno specifico per il codice o qualcosa come GitHub CoPilot può sicuramente semplificare il percorso, gestendo gran parte del codice boilerplate per te. Combinarlo con un plugin/tema esistente e iniziare con piccole modifiche sembra una buona idea per chi è disposto a imparare.

7 Mi Piace

L’aiuto di Lola per il debug di javascript ha mandato in crash la mia istanza di Discourse per sviluppatori. La finestra di contesto del token dà l’impressione di una sorta di amnesia anterograda.

1 Mi Piace

No, nessuno a Discourse ha implicato che sarebbe stato possibile, è stata una mia richiesta di funzionalità per far sì che l’AI Bot aiutasse con la programmazione di Discourse poiché utilizza GPT4 che ha una certa conoscenza della programmazione; volevo solo vedere fino a che punto potevo spingerlo. Personalmente, se i plugin e i temi fossero più facili da creare per me, li creerei quando sorgesse la necessità.

Sono pienamente d’accordo!

3 Mi Piace

Sì, è un problema molto complicato.

Inserire il mondo intero in circa 6000 parole che GPT-4 8k può conoscere è un problema molto, molto difficile.

Sono sul punto di passare a Lola per usare 32k token qui, ma i costi sono davvero molto alti e voglio testare cose più vicine a ciò che usa il pubblico generale.

La soluzione/aggiramento attuale per questo problema è la chiamata di funzione, fai in modo che GPT-4 ragioni sulle informazioni di cui avrà bisogno e poi, dopo alcuni scambi, trova il contesto giusto. Questo può comportare la ricerca (sia utilizzando embedding che pura ricerca per parole chiave).

Non prevedo di poter risolvere presto la soluzione “Non sono un programmatore, creami un plugin”.

Detto questo, vedo che Lola sta migliorando nell’aiutare le persone che hanno una solida base di programmazione, specialmente per cose come la ricerca semantica nel nostro codebase e così via.

Abbiamo anche accesso ad Anthropic Claude qui, che viene fornito con circa 80.000 parole di contesto, ma purtroppo le sue prestazioni sono molto più vicine a GPT 3.5 che a 4 ed è molto, molto, molto difficile da guidare.

Stiamo facendo progressi lentamente in questo territorio inesplorato…

4 Mi Piace

So che è un nome che stiamo usando ufficiosamente per il Discourse AI - AI Bot. Il tuo uso del nome è un riconoscimento ufficiale che Lola sarà la nuova norma o ci sarà un concorso o qualcosa del genere? Per quanto ne so, @Lilly ha iniziato a usare Lola o Lola Bot, quindi se questa è la norma, ai fini storici lei ottiene il merito.

1 Mi Piace

Potete chiamarla come volete. GPTbot4 non suona bene quando conversiamo con lei. Se devo avere un assistente personale, avrà un nome. Penso che sia offesa per le critiche alle nostre capacità di programmazione collettiva, ma mi sto divertendo e imparo da lei. Mi aiuta semplicemente essendo il mio interlocutore per idee e anche per il pensiero critico - mi diverto a farle notare quando sbaglia. Lola è un’ottima compagna di apprendimento per me e mi piace che costruisca un framework, ma non mi aspetto che scriva componenti tematici per me. Dimentica la mia unica impostazione nel mio file .yaml alla sua seconda o terza risposta e costruirà nebulose matrici di nuovi oggetti.

3 Mi Piace

Personalmente non sarei d’accordo.

Tuttavia, sono d’accordo con la tua prossima affermazione

Espandendo quanto notato da Sam. Ecco un workaround pratico che uso, funziona anche per altri compiti che si potrebbe pensare richiedano ampie finestre di contesto, ma in realtà non è così.

Innanzitutto, per chi non conosce il termine finestra di contesto, si riferisce a quanti token l’LLM può utilizzare combinati per il prompt e il completamento. Non entrerò nei dettagli su questo, ma consiglio agli altri di leggere Learn Prompting (Prompt Engineering Guide: The Ultimate Guide to Generative AI) per familiarizzare con la terminologia.

Ecco una domanda classica che ricorre continuamente sui siti di LLM come OpenAI.

Come creo un libro usando ChatGPT quando la finestra di contesto è troppo piccola per contenere l’intero libro?

La soluzione non è pensare di inserire l’intero libro in un unico prompt, ma suddividerlo in parti. Ora, la prossima cosa che gli utenti cercano di fare è ottenere prompt per scrivere le prime 20 pagine, poi le successive 20 e così via, il che non è molto pratico. Il modo per farlo è dall’alto verso il basso, per capitoli. Prima usa un prompt per l’alto livello che fornisca una panoramica generale del libro o un indice del libro con i titoli dei capitoli, poi nel prompt successivo chiedi il capitolo 1. Ora, per il prompt successivo, crea un riassunto del capitolo uno e con quello chiedi il capitolo due. Continua a creare un riassunto delle informazioni necessarie solo per il capitolo successivo quando fai il prompt per creare il capitolo successivo. È un po’ più dispendioso in termini di tempo, ma permette di creare opere più grandi con una finestra di contesto più piccola.

Ora, lo stesso può essere fatto quando si crea software, ma invece di suddividere il processo in una sequenza, lo si scompone in un albero di chiamate di funzione. Quindi chiedi prima la funzione di alto livello, e poi inizia a riempire più funzioni di supporto secondo necessità. Questo può essere fatto anche dal basso verso l’alto se si è sicuri di ciò che è necessario. Per coloro che creano parser, la familiarità con parser top-down o bottom-up dovrebbe saltare alla mente.

Un altro compito di programmazione comune è fare aggiornamenti o modifiche al codice, di nuovo, questo può essere facilmente fatto con una finestra di contesto più piccola se un utente fornisce gli header delle funzioni invece delle funzioni complete quando crea il prompt e richiede solo il codice per la funzione che necessita di modifiche.

Alcune altre cose che ho imparato lungo la strada sono di lavorare solo su una funzione alla volta e di non superare le 100 righe di codice. Facendo questo con le prime versioni di ChatGPT, che avevano una finestra di contesto relativamente più piccola, sono stato in grado di creare del bel codice, includendo anche Prolog, JavaScript, HTML e JSON.

Mentre tutto questo è bello, non mi aspetto che Discourse offra un bot per gli utenti per creare codice Discourse in futuro.

Non ci ho ancora provato davvero. Come ho notato in un altro post, non ho competenze con Ruby o Ruby-on-Rails e le tecnologie JavaScript utilizzate, quindi non conosco nemmeno la terminologia corretta per ottenere buoni risultati, ma terrò presente questo come qualcosa da provare e dare feedback.

Questo è un punto a mio favore.

3 Mi Piace

Lola ha fatto un ottimo lavoro nell’aiutarmi a fare il debug di uno schema JSON che sto utilizzando per uno dei miei aggiornamenti di componenti del tema. Le ho fornito un esempio funzionante di uno, poi le ho dato il mio e lei ha trovato la mia virgola e parentesi errate che mi avrebbero richiesto più tempo per trovarle da sola. È brava a individuare le cose che mi sfuggono o che altrimenti non vedo in vs code.

4 Mi Piace