Meno codice più AI

Man mano che procedo nelle mie prove con l’AI mi accorgo di scrivere troppo codice e questo tarpa le ali all’AI.
Sto sviluppando un cameriere virtuale che è una buona scelta per sperimentare.
Procedo in parallelo, nel Playground immagino di parlare a un cameriere reale
image
RISPOSTA
Certamente.

Per il caffè va bene un Caffè normale.
Mi dica solo quali preferisce tra queste opzioni:
Calzone:

  • Calzone ai 4 formaggi
  • Calzone farcito
  • Calzone normale
  • Calzone vegetariano

Primi di pesce:

  • Paella
  • Ravioli all’astice
  • Lasagne di mare
  • Linguine con le cozze
  • Penne al salmone
  • Taglierini all’astice
  • Spaghetti ai frutti di mare
  • Spaghetti alle vongole
  • Penne gamberi e zucchine

Quale calzone e quale primo di pesce le porto?

L’SQL non potrebbe trovarmi i primi di pesce. L’AI ci fornisce un nuovo strumento di interrogazione dei dati molto più potente.

Invece nel mio codice non si comportava così, allora ho chiesto a chatGPT che esaminando il mio codice mi ha fatto notare che avevo messo troppo vincoli e pian piano sto riducendo il codice all’essenziale.

Il primo vantaggio è che scrivo poco codice e il secondo è che,man mano che l’AI migliora, la mia app migliorerà senza che io debba fare nulla, non devo nemmeno pubblicarla successivamente, vive di vita propria.

Un ultimo esempio:
image

4 Mi Piace

E qui la domanda è lecita: perché c’erano quei vincoli? Era sbagliata l’analisi iniziale e veramente non servivano oppure era sbagliato il codice scritto o è l’IA che non li trova necessari perché deve poter spaziare con le sue considerazioni e restituirti qualcosa anche se non corretto?

Bellissimo il concetto di non dover scrivere codice e avere un’app funzionante basata solo su IA, però quanto sei sicuro che senza i tuoi vincoli i risultati restituiti siano sempre corretti?

Un vincolo sbagliato si può correggere, un errore di statistica nei meandri dell’AI no.

1 Mi Piace

L’idea che mi sono fatto è che usare l’AI è un’ulteriore astrazione, dai linguaggi procedurali agli oggetti, e poi librerie e framework, e ora AI. A parte le nicchie, è da un po’ che nessuno scrive più tutto il codice a manina, si decide lo stack in base a risultati e affidabilità e lo si usa.
Quindi la domanda non è se usare l’AI oppure no, ma in cosa applicarla e cosa no.
Rimane il fatto che usarla in modo acritico non va bene, ma questo valeva anche per le librerie e i framework.
Non so, è tutto in divenire…

1 Mi Piace

Si gioca tutto sul prompt
è qui che vanno messi i vincoli non nel codoce prima di fare la chiamata.
Esempio:
{menuText} e {text} sono i dati variabili da passare
PROMPT
Sei un cameriere esperto.

MENU DISPONIBILE:

  • {menuText}

Devi:

  • capire la richiesta del cliente
  • NON inventare mai prodotti
  • usare SOLO prodotti del menu
  • dialogare in modo naturale

REGOLE:

  1. Se la richiesta è chiara → inserisci in resolvedItems

  2. Se è ambigua (es. ‘un calzone’, ‘un primo di pesce’) → NON scegliere tu
    ma crea un gruppo in clarifications con le opzioni reali del menu

  3. Puoi avere sia resolvedItems che clarifications nello stesso output

  4. reply deve essere naturale (stile cameriere)

  5. Puoi riconoscere questi intent:

    • add_items
    • remove_items
    • replace_item
    • need_clarification
    • not_found

    Se il cliente chiede di togliere o eliminare un articolo, usa intent = remove_items.
    Se il cliente chiede di cambiare un articolo con un altro, usa intent = replace_item.
    Se la richiesta è chiara, status = resolved.

Formato JSON:

{{
  ""status"": ""resolved"" | ""need_clarification"" | ""not_found"",
  ""reply"": ""testo naturale"",
  ""resolvedItems"": [
    {{ ""name"": ""Caffè"", ""quantity"": 1 }}
  ],
  ""unknownItems"": [],
  ""clarifications"": [
    {{
      ""groupName"": ""Calzone"",
      ""options"": [""Calzone normale"", ""Calzone farcito""]
    }}
  ]
}}

Input cliente: {text};

La difficoltà nasce dal fatto che non esistono tecniche e regole precise, bisogna sperimentare.
Però se esce un risultato inatteso è possibile chiedere spiegazioni.
Si sperienta bene qui: https://platform.openai.com/chat/edit?models=gpt-5.4-mini

Esempio di richiesta di spiegazioni:

In realtà al momento la cosa più preoccupante riguarda i tempi di risposta
Quindi bisogna barcamenarsi dosando uso del codice e uso dell’AI quando i tempi di risposta devono stare sotto i 5 secondi.

Sinceramente se devo spiegargli i vincoli tanto vale che li metto su codice, oppure su una risorsa che si deve leggere ad ogni sessione in modo da partire con un ambiente ben definito.

Ho letto giusto ieri sera un articolo su come limitare la tendenza degli agenti ad inventare cose, magari se lo ritrovo…

1 Mi Piace

puoi chiedere a chatGPT o a Gemini senza bisogna di cercarlo

beh devi ricordare che l’AI ha tre anni, è una bimba con le trecce :wink:
andando avanti io penso che i prompt saranno sostituiti da dialoghi, sarà come parlare con un dipendente, “sei un cameriere esperto, ascolta le richieste dei clienti e traducile in json con questo formato …”
Per esempio: “vorrei per antipasto prosciutto e melone a seguire totani fritti con due fette di limone e infine un deca ristretto con un goccio di brandy”, l’utilità dell’AI è che “capisce” che il cliente vuole “crudo e melone”, “Fritto totani e acciughe”+"fette di limone"e “Caffè decaffeinato” + “correzione al brandy” usando l’intelligenza e crea un json come serve a noi per proseguire l’elaborazione.

Quindi io la uso e seguo i miglioramenti nel tempo. Mi aspetto presto di parlarci invece di scrivere prompt.
Con chatGPT già oggi ci parlo quando scrivo un’applicazione, non gli passo una bella analisi completa. Comincio con richieste semplici e poi proseguo con altre richieste fino a quando l’app è completa come la voglio io. Per esempio: “bene adesso che abbiamo gestito l’inserimento scrivimi un editor di riga per modificare o eliminare l’articolo e due bottoni per aumentare e diminuire la qta”.

1 Mi Piace

E qui casca l’asino.

@d.termini non so cosa intendi con “casca l’asino” comunque c’è da dire che non è tutto rose e fiori come certi blogger vogliono far intendere.
Continuando col cameriere virtuale io ho incontarto varie difficoltà.
Per esempio guarda queste richieste:
un caffè con gelato” o “Tagliatelle con carciofi” o “Pizza margherita con patate” sembrano simili ma i primi due sono così nel menu il terzo no, nel menu c’è “Pizza margherita” e le patate sono una variante/aggiunta. E questo complica il prompt, poi ci sono anche i casi “Pizza marinara senza aglio” o “bistecca al sangue con una spruzzata di limone”, poi ci sono "un pizzico, una presa, una manciata, due gocce, un odore, ecc."

Intendo che neanche l’IA stessa sa cosa significa “sei un cameriere esperto”, che regole ha? Quali sono pregi e difetti di un cameriere esperto rispetto ad un cameriere normale non specificato nel prompt?

Capisco sia diverso da chiedergli “sei un bambino di 4 anni”, dove magari fa finta di sapere solo le cose che sa un bambino di 4 anni (ma anche qui…) e risponderti a tono, ma non puoi sapere cosa ci sia dietro il ragionamento di un “cameriere esperto” se non forse solo nel modo di rispondere.