{"id":46596,"date":"2024-09-30T19:53:28","date_gmt":"2024-09-30T19:53:28","guid":{"rendered":"https:\/\/fabricegrinda.com\/?p=46596"},"modified":"2024-10-01T14:01:39","modified_gmt":"2024-10-01T14:01:39","slug":"fabrice-ai-attuale-implementazione-tecnica","status":"publish","type":"post","link":"https:\/\/grinda.org\/it\/fabrice-ai-attuale-implementazione-tecnica\/","title":{"rendered":"Fabrice AI: Attuale implementazione tecnica"},"content":{"rendered":"\n<p>Nell&#8217;ultimo post, <a href=\"https:\/\/fabricegrinda.com\/it\/fabrice-ai-il-viaggio-tecnico\/\" data-type=\"link\" data-id=\"https:\/\/fabricegrinda.com\/fabrice-ai-the-technical-journey\/\" target=\"_blank\" rel=\"noreferrer noopener\">Fabrice AI: il viaggio tecnico<\/a>, ho spiegato il percorso che abbiamo seguito per costruire Fabrice AI facendo un giro completo.\nHo iniziato usando le Chat GPT 3 e 3.5.\nDeluso dai risultati, ho provato a utilizzare <a href=\"https:\/\/www.langchain.com\/\" target=\"_blank\" data-type=\"link\" data-id=\"https:\/\/www.langchain.com\/\" rel=\"noreferrer noopener\">Langchain Framework<\/a> per costruire il mio modello di intelligenza artificiale, prima di tornare a Chat GPT quando ha iniziato a utilizzare i database vettoriali e a migliorare notevolmente i risultati con 4o.  <\/p>\n\n<p>Ecco l&#8217;attuale processo di formazione dell&#8217;intelligenza artificiale di Fabrice:<\/p>\n\n<ul class=\"wp-block-list\">\n<li>I dati di formazione (post di blog, URL di Youtube, URL di podcast, URL di PDF e URL di immagini) sono archiviati nel nostro database <a href=\"https:\/\/wordpress.com\/\" data-type=\"link\" data-id=\"https:\/\/wordpress.com\/\" target=\"_blank\" rel=\"noopener\">WordPress<\/a>.<\/li>\n\n\n\n<li>Estraiamo i dati e li strutturiamo.<\/li>\n\n\n\n<li>Forniamo i dati strutturati a Open AI per la formazione utilizzando l&#8217;<a href=\"https:\/\/platform.openai.com\/docs\/assistants\/overview\" target=\"_blank\" data-type=\"link\" data-id=\"https:\/\/platform.openai.com\/docs\/assistants\/overview\" rel=\"noreferrer noopener\">API Assistants<\/a>.<\/li>\n\n\n\n<li>Open AI crea quindi un database di archivi vettoriali e lo memorizza.<\/li>\n<\/ul>\n\n<p>Ecco un esempio di dati strutturati. Ogni contenuto ha il suo file JSON. Ci assicuriamo di non superare il limite di 32.000 gettoni.<\/p>\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<p>{<\/p>\n\n\n\n<p>  &#8220;id&#8221;: &#8220;1&#8221;,<\/p>\n\n\n\n<p>  &#8220;data&#8221;: &#8221; &#8220;,<\/p>\n\n\n\n<p>  &#8220;link&#8221;: &#8220;https:\/\/fabricegrinda.com\/&#8221;,<\/p>\n\n\n\n<p>  &#8220;titolo&#8221;: {<\/p>\n\n\n\n<p>  &#8220;reso&#8221;: &#8220;Che cos&#8217;\u00e8 Fabrice AI?&#8221;<\/p>\n\n\n\n<p>\u00a0 },<\/p>\n\n\n\n<p>  &#8220;Categoria&#8221;: &#8220;Informazioni su Fabrice&#8221;,<\/p>\n\n\n\n<p>  &#8220;featured_media&#8221;: &#8220;https:\/\/fabricegrinda.com\/wp-content\/uploads\/2023\/12\/About-me.png&#8221;,<\/p>\n\n\n\n<p>  &#8220;altri_media&#8221;: &#8220;&#8221;,<\/p>\n\n\n\n<p>  &#8220;tipo_di_conoscenza&#8221;: &#8220;blog&#8221;,<\/p>\n\n\n\n<p>  &#8220;contentUpdated&#8221;: &#8220;Fabrice AI \u00e8 una rappresentazione digitale dei pensieri di Fabrice basata sui post del suo blog e su alcuni podcast e interviste trascritte con ChatGPT. Dato che molte delle trascrizioni sono imperfette e che il blog non \u00e8 che una rappresentazione limitata di Fabrice come individuo, ci scusiamo per le imprecisioni e le informazioni mancanti. Tuttavia, questo \u00e8 un buon punto di partenza per conoscere i pensieri di Fabrice su molti argomenti&#8221;.<\/p>\n\n\n\n<p>}<\/p>\n<\/div><\/div>\n\n\n\n<p>Questa \u00e8 l&#8217;attuale implementazione tecnica:<\/p>\n<\/div><\/div>\n\n<ul class=\"wp-block-list\">\n<li>Il sito web rivolto ai consumatori \u00e8 ospitato su <a href=\"https:\/\/aws.amazon.com\/amplify\/\" target=\"_blank\" data-type=\"link\" data-id=\"https:\/\/aws.amazon.com\/amplify\/\" rel=\"noreferrer noopener\">AWS Amplify<\/a>.<\/li>\n\n\n\n<li>L&#8217;integrazione tra il sito pubblico e Open AI avviene attraverso un livello API, ospitato su AWS come server API Python.<\/li>\n\n\n\n<li>Utilizziamo <a href=\"https:\/\/www.mongodb.com\/\" target=\"_blank\" data-type=\"link\" data-id=\"https:\/\/www.mongodb.com\/\" rel=\"noreferrer noopener\">MongoDB<\/a> come registro per memorizzare tutte le domande poste dal pubblico, le risposte fornite dalla Chat GPT e gli URL delle fonti.<\/li>\n\n\n\n<li>Utilizziamo vari script per strutturare i dati provenienti dal blog, da YouTube, ecc. da passare a Open AI per l&#8217;addestramento.<\/li>\n\n\n\n<li>Utilizziamo <a href=\"https:\/\/www.npmjs.com\/package\/react-speech-recognition\" target=\"_blank\" data-type=\"link\" data-id=\"https:\/\/www.npmjs.com\/package\/react-speech-recognition\" rel=\"noreferrer noopener\">React-Speech Recognition<\/a> per convertire le richieste vocali in testo.<\/li>\n\n\n\n<li>Utilizziamo anche Google Analytics per monitorare il traffico del sito web.<\/li>\n<\/ul>\n\n<p>\u00c8 importante notare che utilizziamo due assistenti:<\/p>\n\n<ul class=\"wp-block-list\">\n<li>Uno per rispondere alle domande.<\/li>\n\n\n\n<li>Uno per ottenere gli URL dei metadati, ovvero gli URL dei blog che hanno il contenuto originale per visualizzare le fonti in fondo alle risposte.<\/li>\n<\/ul>\n\n<p><strong>E poi?<\/strong><\/p>\n\n<ol class=\"wp-block-list\">\n<li><strong>Miglioramenti al linguaggio parlato<\/strong><\/li>\n<\/ol>\n\n<p>Il modello <a href=\"https:\/\/openai.com\/index\/whisper\/\" data-type=\"link\" data-id=\"https:\/\/openai.com\/index\/whisper\/\" target=\"_blank\" rel=\"noreferrer noopener\">Whisper<\/a> di Open AI per la <a href=\"https:\/\/platform.openai.com\/docs\/guides\/speech-to-text\" target=\"_blank\" data-type=\"link\" data-id=\"https:\/\/platform.openai.com\/docs\/guides\/speech-to-text\" rel=\"noreferrer noopener\">sintesi vocale<\/a> \u00e8 pi\u00f9 preciso di React.\nInoltre, supporta pi\u00f9 lingue ed \u00e8 in grado di gestire discorsi in lingue miste, accenti e dialetti.\nDi conseguenza, molto probabilmente passer\u00f2 a questo modello nei prossimi mesi.\nTuttavia \u00e8 pi\u00f9 complesso da configurare, quindi potrebbe volerci un po&#8217; di tempo.\nDevi gestire il modello, gestire le dipendenze (ad esempio, Python, librerie) e assicurarti di avere un hardware sufficiente per ottenere prestazioni efficienti.\nInoltre, Whisper non \u00e8 stato progettato per essere utilizzato direttamente nei browser.\nQuando costruisci un&#8217;applicazione web, devi creare un servizio backend per gestire la trascrizione, il che aggiunge complessit\u00e0.      <\/p>\n\n<ul class=\"wp-block-list\">\n<li><strong>Fabrice AI Avatar<\/strong><\/li>\n<\/ul>\n\n<p>Voglio creare un avatar Fabrice AI che abbia il mio stesso aspetto e la mia stessa voce e con il quale sia possibile conversare.\nHo valutato <a href=\"\" data-type=\"\" data-id=\"\" target=\"\" rel=\"noopener\">D-iD<\/a> ma l&#8217;ho trovato troppo costoso per i miei scopi. <a href=\"\" data-type=\"\" data-id=\"\" target=\"\" rel=\"noopener\">Eleven Labs<\/a> \u00e8 solo vocale. <a href=\"\" data-type=\"\" data-id=\"\" target=\"\" rel=\"noopener\">Synthesia<\/a> \u00e8 ottimo ma al momento non crea video in tempo reale.\nAlla fine ho deciso di utilizzare <a href=\"\" target=\"\" data-type=\"\" data-id=\"\" rel=\"noopener\">HeyGen<\/a>, visto il prezzo e le funzionalit\u00e0 pi\u00f9 adeguate.  <\/p>\n\n<p>Sospetto che a un certo punto Open AI rilascer\u00e0 la propria soluzione e che questo lavoro sar\u00e0 stato inutile.\nSono tranquillo e passer\u00f2 alla soluzione di Open AI quando e se verr\u00e0 rilasciata.\nA questo punto lo scopo di tutto questo esercizio \u00e8 imparare cosa \u00e8 possibile fare con l&#8217;IA e quanto lavoro richiede per aiutarmi a capire meglio lo spazio.  <\/p>\n\n<ul class=\"wp-block-list\">\n<li><strong>Cruscotto personalizzato<\/strong><\/li>\n<\/ul>\n\n<p>In questo momento, ho bisogno di eseguire una query MongoDB per ottenere un estratto delle domande e delle risposte del giorno.\nSto costruendo una semplice dashboard dove posso ottenere estrazioni e semplici statistiche sul numero di interrogazioni per lingua, sul numero di richieste speech-to-text, ecc. <\/p>\n\n<ul class=\"wp-block-list\">\n<li><strong>Fonti di dati aggiuntive<\/strong><\/li>\n<\/ul>\n\n<p>Abbiamo appena caricato il <a href=\"https:\/\/fabricegrinda.com\/portfolio\/\" target=\"_blank\" data-type=\"link\" data-id=\"https:\/\/fabricegrinda.com\/portfolio\/\" rel=\"noreferrer noopener\">Portfolio di FJ Labs<\/a> su Fabrice AI.\nOra puoi chiedere se un&#8217;azienda fa parte del portfolio.\nFabrice AI risponde con una breve descrizione dell&#8217;azienda e un link al suo sito web.  <\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1492\" height=\"1458\" src=\"https:\/\/fabricegrinda.com\/wp-content\/uploads\/2024\/09\/portfolio3.jpg\" alt=\"\" class=\"wp-image-46459\" style=\"width:650px\" srcset=\"https:\/\/grinda.org\/wp-content\/uploads\/2024\/09\/portfolio3.jpg 1492w, https:\/\/grinda.org\/wp-content\/uploads\/2024\/09\/portfolio3-768x750.jpg 768w, https:\/\/grinda.org\/wp-content\/uploads\/2024\/09\/portfolio3-1200x1173.jpg 1200w, https:\/\/grinda.org\/wp-content\/uploads\/2024\/09\/portfolio3-1320x1290.jpg 1320w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/figure>\n<\/div>\n<p>Dato il numero di domande personali che l&#8217;intelligenza artificiale di Fabrice riceveva e alle quali non sapeva rispondere, mi sono preso il tempo di etichettare manualmente ogni interlocutore del mio <a href=\"https:\/\/www.youtube.com\/watch?v=79BKGNv7TMQ\" target=\"_blank\" data-type=\"link\" data-id=\"https:\/\/www.youtube.com\/watch?v=79BKGNv7TMQ\" rel=\"noreferrer noopener\">video del <sup>50\u00b0 <\/sup>compleanno<\/a> per dargli il contenuto di cui aveva bisogno.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1508\" height=\"1633\" src=\"https:\/\/fabricegrinda.com\/wp-content\/uploads\/2024\/09\/Family3.jpg\" alt=\"\" class=\"wp-image-46484\" style=\"width:650px\" srcset=\"https:\/\/grinda.org\/wp-content\/uploads\/2024\/09\/Family3.jpg 1508w, https:\/\/grinda.org\/wp-content\/uploads\/2024\/09\/Family3-768x832.jpg 768w, https:\/\/grinda.org\/wp-content\/uploads\/2024\/09\/Family3-1418x1536.jpg 1418w, https:\/\/grinda.org\/wp-content\/uploads\/2024\/09\/Family3-1200x1299.jpg 1200w, https:\/\/grinda.org\/wp-content\/uploads\/2024\/09\/Family3-1320x1429.jpg 1320w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/figure>\n<\/div>\n<p><strong>Conclusione<\/strong><\/p>\n\n<p>Con tutto il lavoro che ho svolto negli ultimi dodici mesi su tutto ci\u00f2 che riguarda l&#8217;IA, sembra esserci una chiara conclusione universale: pi\u00f9 aspetti, pi\u00f9 diventa economico, facile e migliore e pi\u00f9 \u00e8 probabile che Open AI lo offra!\nNel frattempo, fammi sapere se hai domande. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nell&#8217;ultimo post, Fabrice AI: il viaggio tecnico, ho spiegato il percorso che abbiamo seguito per costruire Fabrice AI facendo un giro completo. Ho iniziato usando le Chat GPT 3 e &hellip; <a href=\"https:\/\/fabricegrinda.com\/it\/fabrice-ai-attuale-implementazione-tecnica\/\" class=\"more-link\">Leggi tutto<span class=\"screen-reader-text\"> &#8220;Fabrice AI: Attuale implementazione tecnica&#8221;<\/span><\/a><\/p>\n","protected":false},"author":9,"featured_media":46753,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[373,943],"tags":[],"class_list":["post-46596","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-riflessioni-personali","category-gadget-tecnologici"],"acf":[],"contentUpdated":"Fabrice AI: Attuale implementazione tecnica. Categories - Riflessioni personali, Gadget tecnologici. Date-Posted - 2024-09-30T19:53:28 . \n Nell&#8217;ultimo post, Fabrice AI: il viaggio tecnico, ho spiegato il percorso che abbiamo seguito per costruire Fabrice AI facendo un giro completo.\n Ho iniziato usando le Chat GPT 3 e 3.5.\n Deluso dai risultati, ho provato a utilizzare Langchain Framework per costruire il mio modello di intelligenza artificiale, prima di tornare a Chat GPT quando ha iniziato a utilizzare i database vettoriali e a migliorare notevolmente i risultati con 4o.  \n Ecco l&#8217;attuale processo di formazione dell&#8217;intelligenza artificiale di Fabrice:\n I dati di formazione (post di blog, URL di Youtube, URL di podcast, URL di PDF e URL di immagini) sono archiviati nel nostro database WordPress.\n Estraiamo i dati e li strutturiamo.\n Forniamo i dati strutturati a Open AI per la formazione utilizzando l&#8217;API Assistants.\n Open AI crea quindi un database di archivi vettoriali e lo memorizza.\n Ecco un esempio di dati strutturati. Ogni contenuto ha il suo file JSON. Ci assicuriamo di non superare il limite di 32.000 gettoni.\n {\n   &#8220;id&#8221;: &#8220;1&#8221;,\n   &#8220;data&#8221;: &#8221; &#8220;,\n   &#8220;link&#8221;: &#8220;https:\/\/fabricegrinda.com\/&#8221;,\n   &#8220;titolo&#8221;: {\n   &#8220;reso&#8221;: &#8220;Che cos&#8217;\u00e8 Fabrice AI?&#8221;\n \u00a0 },\n   &#8220;Categoria&#8221;: &#8220;Informazioni su Fabrice&#8221;,\n   &#8220;featured_media&#8221;: &#8220;https:\/\/fabricegrinda.com\/wp-content\/uploads\/2023\/12\/About-me.png&#8221;,\n   &#8220;altri_media&#8221;: &#8220;&#8221;,\n   &#8220;tipo_di_conoscenza&#8221;: &#8220;blog&#8221;,\n   &#8220;contentUpdated&#8221;: &#8220;Fabrice AI \u00e8 una rappresentazione digitale dei pensieri di Fabrice basata sui post del suo blog e su alcuni podcast e interviste trascritte con ChatGPT. Dato che molte delle trascrizioni sono imperfette e che il blog non \u00e8 che una rappresentazione limitata di Fabrice come individuo, ci scusiamo per le imprecisioni e le informazioni mancanti. Tuttavia, questo \u00e8 un buon punto di partenza per conoscere i pensieri di Fabrice su molti argomenti&#8221;.\n }\n Questa \u00e8 l&#8217;attuale implementazione tecnica:\n Il sito web rivolto ai consumatori \u00e8 ospitato su AWS Amplify.\n L&#8217;integrazione tra il sito pubblico e Open AI avviene attraverso un livello API, ospitato su AWS come server API Python.\n Utilizziamo MongoDB come registro per memorizzare tutte le domande poste dal pubblico, le risposte fornite dalla Chat GPT e gli URL delle fonti.\n Utilizziamo vari script per strutturare i dati provenienti dal blog, da YouTube, ecc. da passare a Open AI per l&#8217;addestramento.\n Utilizziamo React-Speech Recognition per convertire le richieste vocali in testo.\n Utilizziamo anche Google Analytics per monitorare il traffico del sito web.\n \u00c8 importante notare che utilizziamo due assistenti:\n Uno per rispondere alle domande.\n Uno per ottenere gli URL dei metadati, ovvero gli URL dei blog che hanno il contenuto originale per visualizzare le fonti in fondo alle risposte.\n E poi?\n Miglioramenti al linguaggio parlato\n Il modello Whisper di Open AI per la sintesi vocale \u00e8 pi\u00f9 preciso di React.\n Inoltre, supporta pi\u00f9 lingue ed \u00e8 in grado di gestire discorsi in lingue miste, accenti e dialetti.\n Di conseguenza, molto probabilmente passer\u00f2 a questo modello nei prossimi mesi.\n Tuttavia \u00e8 pi\u00f9 complesso da configurare, quindi potrebbe volerci un po&#8217; di tempo.\n Devi gestire il modello, gestire le dipendenze (ad esempio, Python, librerie) e assicurarti di avere un hardware sufficiente per ottenere prestazioni efficienti.\n Inoltre, Whisper non \u00e8 stato progettato per essere utilizzato direttamente nei browser.\n Quando costruisci un&#8217;applicazione web, devi creare un servizio backend per gestire la trascrizione, il che aggiunge complessit\u00e0.      \n Fabrice AI Avatar\n Voglio creare un avatar Fabrice AI che abbia il mio stesso aspetto e la mia stessa voce e con il quale sia possibile conversare.\n Ho valutato D-iD ma l&#8217;ho trovato troppo costoso per i miei scopi. Eleven Labs \u00e8 solo vocale. Synthesia \u00e8 ottimo ma al momento non crea video in tempo reale.\n Alla fine ho deciso di utilizzare HeyGen, visto il prezzo e le funzionalit\u00e0 pi\u00f9 adeguate.  \n Sospetto che a un certo punto Open AI rilascer\u00e0 la propria soluzione e che questo lavoro sar\u00e0 stato inutile.\n Sono tranquillo e passer\u00f2 alla soluzione di Open AI quando e se verr\u00e0 rilasciata.\n A questo punto lo scopo di tutto questo esercizio \u00e8 imparare cosa \u00e8 possibile fare con l&#8217;IA e quanto lavoro richiede per aiutarmi a capire meglio lo spazio.  \n Cruscotto personalizzato\n In questo momento, ho bisogno di eseguire una query MongoDB per ottenere un estratto delle domande e delle risposte del giorno.\n Sto costruendo una semplice dashboard dove posso ottenere estrazioni e semplici statistiche sul numero di interrogazioni per lingua, sul numero di richieste speech-to-text, ecc. \n Fonti di dati aggiuntive\n Abbiamo appena caricato il Portfolio di FJ Labs su Fabrice AI.\n Ora puoi chiedere se un&#8217;azienda fa parte del portfolio.\n Fabrice AI risponde con una breve descrizione dell&#8217;azienda e un link al suo sito web.  \n Dato il numero di domande personali che l&#8217;intelligenza artificiale di Fabrice riceveva e alle quali non sapeva rispondere, mi sono preso il tempo di etichettare manualmente ogni interlocutore del mio video del 50\u00b0 compleanno per dargli il contenuto di cui aveva bisogno.\n Conclusione\n Con tutto il lavoro che ho svolto negli ultimi dodici mesi su tutto ci\u00f2 che riguarda l&#8217;IA, sembra esserci una chiara conclusione universale: pi\u00f9 aspetti, pi\u00f9 diventa economico, facile e migliore e pi\u00f9 \u00e8 probabile che Open AI lo offra!\n Nel frattempo, fammi sapere se hai domande. \n ","Category":["Riflessioni personali","Gadget tecnologici"],"_links":{"self":[{"href":"https:\/\/grinda.org\/it\/wp-json\/wp\/v2\/posts\/46596","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/grinda.org\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/grinda.org\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/grinda.org\/it\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/grinda.org\/it\/wp-json\/wp\/v2\/comments?post=46596"}],"version-history":[{"count":4,"href":"https:\/\/grinda.org\/it\/wp-json\/wp\/v2\/posts\/46596\/revisions"}],"predecessor-version":[{"id":46808,"href":"https:\/\/grinda.org\/it\/wp-json\/wp\/v2\/posts\/46596\/revisions\/46808"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/grinda.org\/it\/wp-json\/wp\/v2\/media\/46753"}],"wp:attachment":[{"href":"https:\/\/grinda.org\/it\/wp-json\/wp\/v2\/media?parent=46596"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/grinda.org\/it\/wp-json\/wp\/v2\/categories?post=46596"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/grinda.org\/it\/wp-json\/wp\/v2\/tags?post=46596"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}