Sezione Blog technologique

Sistema RAG e TxtAi Parte 3: Casi pratici

Scritto da gbourdin il 22/01/2024
Categoria:   Intelligenza Artificiale
Nella prima parte, abbiamo affrontato come interagire con un modello per ottenere un dialogo basato su informazioni sulle quali non è stato addestrato. Nella nostra seconda parte, abbiamo esaminato la strategia per creare i nostri indici e memorizzarli. In questa ultima parte, attraverso un caso pratico, vedremo come creare un completo sistema RAG e inizializzare un dialogo, per dare agli utenti la possibilità di conversare con il nostro modello arricchito con i nostri dati pe...

Sistema RAG e TxtAi Parte 2: Basi di Dati e Indicizzazione Vettoriale

Scritto da gbourdin il 22/01/2024
Categoria:   Intelligenza Artificiale
Nella prima parte, abbiamo discusso di come interagire con un modello per ottenere un dialogo basato su informazioni sulle quali non è stato addestrato. Per riassumere, si aggiungono al contesto le informazioni desiderate. Ma allora, supponiamo che si voglia utilizzare un'intera base di conoscenza? Ciò comporterebbe troppo molte informazioni da aggiungere al contesto. Pertanto, dobbiamo inserire nel database l'insieme delle informazioni che desideriamo fornire agli utenti. Div...

Sistema RAG e TxtAi Parte 1: Trasformare la Generazione del Linguaggio con Intelligenza

Scritto da gbourdin il 08/12/2023
Categoria:   Intelligenza Artificiale
Per questa prima parte della nostra serie di articoli, baseremo la nostra esplorazione su questo tutorial per implementare un processo RAG. Ma cos'è un RAG? RAG, o "Generazione Potenziata dal Recupero" (Retrieval-Augmented Generation), è una tecnica avanzata nell'intelligenza artificiale, specificatamente nel campo del processing del linguaggio naturale (NLP), che coinvolge l'arricchimento del processo di generazione del testo tramite l'incorporazione di una fase di recupero d...

Llama.cpp porta il LLM a portata di mano

Scritto da gbourdin il 05/12/2023
Categoria:   Intelligenza Artificiale
Llama CPP è un nuovo strumento progettato per eseguire modelli di linguaggio direttamente in C/C++. Questo strumento è ottimizzato per i processori Apple Silicon, grazie all'utilizzo della tecnologia ARM NEON e del framework Accelerate. Offre inoltre compatibilità AVX2 per sistemi basati su architetture x86. Funzionando prevalentemente sulla CPU, Llama CPP integra anche la capacità di quantizzazione a 4 bit, aumentando così la sua efficienza. Il vantaggio ...

Introduzione a txtai: Semplificazione e Potenza dei LLM per gli Sviluppatori

Scritto da admin il 05/12/2023
Nell'universo in continua evoluzione dell'intelligenza artificiale e del trattamento del linguaggio naturale, txtai emerge come uno strumento rivoluzionario, soprattutto per coloro che si immergono nel mondo dei modelli di linguaggio su larga scala (LLMs). Immaginate un ponte tra voi e un ventaglio di LLMs potenti, dove txtai gioca il ruolo di intermediario facilitante, semplificando e amplificando le vostre interazioni con queste tecnologie complesse. Connettività Estesa con i LLMs ...

Pagina Sonata 5: Aggiunta di Tag Open Graph con SonataPage e SonataMediaSonata

Scritto da il 02/10/2023
Categoria:   symfony, Sonata
Se hai già utilizzato SonataPage e SonataMedia, sai quanto siano potenti per gestire contenuti e media sul tuo sito. In questo articolo, ti mostrerò come estendere questi strumenti per aggiungere facilmente i tag Open Graph alle tue pagine per migliorarne la condivisione sui social network. Perché i tag Open Graph? I tag Open Graph (OG) sono dei meta-tag che puoi aggiungere alle tue pagine per definire titoli, descrizioni, immagini e altre informazioni che verranno utilizzate quando la pagina...

Sonata Pagina 5: Nascondi blocchi all'interno di blocchi condivisi.

Scritto da il 30/09/2023
Categoria:   symfony
Se stai utilizzando il bundle SonataPage, potresti aver notato che alcuni dei blocchi offerti non sono necessari o non funzionanti.Discuteremo come nascondere questi blocchi dalla lista in modo pulito, con un file di configurazione e sovrascrivendo i template di amministrazione di SonataPage. 1 – La Configurazione Dobbiamo creare una lista di servizi che non vogliamo visualizzare. Questa lista andrà naturalmente nei parametri del nostro file di servizi: #config/services.ya...

Sonata: Aggiungi un Pannello Admin senza un'Entità con Sonata Admin 5 e Symfony 6.2

Scritto da il 06/06/2023
Categoria:   symfony, Sonata
In questo articolo, impareremo come aggiungere un pannello di amministrazione senza entità in un progetto Symfony 6.2 utilizzando Sonata Admin 5. La base del nostro progetto sarà creare una semplice interfaccia per il caricamento di file. Ma potresti realizzare qualsiasi applicazione, compresa l'aggiunta di testo semplice. 1. Installazione di Sonata Admin Bundle Se non hai ancora installato Sonata Admin, puoi farlo con composer: composer require sonata-project/admin-bundle Ti invitiamo ...

Come Creare un Trasporto Email Personalizzato con Symfony Mailer

Scritto da il 19/05/2023
Categoria:   PHP, symfony
Oggi vedremo come creare un trasporto email personalizzato con Symfony Mailer. Per l'esempio, creeremo un trasporto chiamato “pt”. Prerequisiti Prima di iniziare, assicurati di avere installato e configurato Symfony Mailer e HttpClient nel tuo progetto. Puoi aggiungerli al tuo progetto utilizzando i seguenti comandi: composer require symfony/mailer composer require symfony/http-client Creazione della Classe di Trasporto La prima cosa da fare è creare una nuova classe che im...

PHP FFI: Creazione di un Collegamento con una Libreria, QuickJS – Parte 5

Scritto da il 24/01/2023
Categoria:   PHP, PHP / FFI
Per concludere questo mini dossier tecnico sull'interfaccia delle funzioni esterne di PHP, mi sono proposto di connettermi semplicemente a una lib. Una sorta di sfida che potesse al tempo stesso aiutarmi a progredire sull'argomento. Così ho dovuto proporre un'idea di progetto. Qualcosa non troppo piccolo o troppo semplice ma neanche troppo grande. Fallito, ho trovato un'idea ma si è rivelata molto più complessa di quanto immaginassi. Non importa, ho comunque provato. Quindi, per il ...

Symfony: Costringere un'entità ad utilizzare una connessione al database diversa da quella predefinita configurata

Scritto da admin il 19/01/2023
Categoria:   PHP, symfony
Non è insolito avere più database per un singolo progetto. Normalmente, quando si utilizzano due database, le entità possono essere organizzate in specifiche cartelle che sono dichiarate nella tua configurazione. In questo caso, il sistema utilizzerà la connessione configurata per la directory dell'entità. Puoi vedere un esempio di connessioni multiple qui Symfony 4 / Sonata: gestire un'interfaccia di amministrazione multi-server Supponiamo che vogl...

Usa composer e bin/console dalla tua immagine Docker direttamente all'interno di PHPSTORM

Scritto da il 19/01/2023
Categoria:   PHP, symfony, phpstorm, Divers
Okay, sei come me. La tua macchina non ha nulla installato localmente. Nemmeno composer né PHP in CLI!Mentre utilizzi PHP e forse anche Symfony (o no), hai bisogno di utilizzare composer quotidianamente. Usi PhpStorm ogni giorno e pensi sia un peccato non beneficiare di tutte le opzioni del tuo IDE, specialmente tutto ciò che riguarda composer e la console di Symfony. Quindi, come fai a configurare PhpStorm per specificare che il composer per il tuo progetto si trova nell'immagine docker?Ecc...

Azioni Personalizzate Sonata

Scritto da il 19/01/2023
Categoria:   PHP, symfony, Sonata
Seguendo l'articolo scritto da Thomas Bourdin SYMFONY / SONATA: AGGIUNGERE UNA FUNZIONE DI CLONAZIONE A UN CRUD, vi mostreremo come, in modo molto semplice, possiamo aggiungere azioni personalizzate ad un'interfaccia. Sul Dashboard: Ma vedremo anche come personalizzare in modo semplice e generico le azioni personalizzate della lista, l'intestazione del vostro CRUD e infine come aggiungere azioni per l'elaborazione batch. Per il mio esempio, sono partito con una tabella molto semplice ...

Debug con PhpStorm e Symfony in una immagine Docker

Scritto da il 19/01/2023
Categoria:   PHP, PHP / FFI, symfony, phpstorm
Configurazione PHP/Docker Se stai sviluppando con Symfony, installato in un docker compose e non stai ancora utilizzando il debugger, allora quest'articolo è per te. Ti mostreremo come preparare il tuo ambiente così da non dover più usare dd() o var_dump. Una volta provate le gioie del debug, non potrai più farne a meno, poiché migliorerà notevolmente il tuo comfort. Per questo articolo è necessario disporre di un'app Symfony supportata da apache/php (o nginx e fpm, non importa) con un file...

Crea una libreria con composer

Scritto da il 04/01/2023
Categoria:   PHP, Divers
Cos'è Composer? Proprio come NPM è per JavaScript, Composer è lo strumento dedicato per PHP che ti consente di gestire le dipendenze delle librerie per le tue applicazioni. Se hai utilizzato un framework come Symfony, sicuramente lo hai usato. In realtà, ogni sviluppatore PHP lo utilizza quotidianamente. Se sei su questa pagina, probabilmente ti stai chiedendo come creare una libreria facilmente redistribuibile e condivisibile con la comunità. Ecco cosa cercherò di mostrarti. Per il bene del ...

Configurazione di 'Quality Tools' in un'immagine Docker di PHPSTORM

Scritto da il 15/12/2022
Categoria:   PHP, symfony, phpstorm
Ecco una domanda su cui ho riflettuto di recente. Di solito, installo gli strumenti QA direttamente sul mio host o nell'immagine Docker. Se gli strumenti sono installati sul mio host, non ci sono problemi a configurare PhpStorm. Se gli strumenti sono configurati direttamente nell'immagine Docker, non ci sono problemi ad usarli all'interno dell'immagine. Tuttavia, come si può combinare la potenza di PhpStorm e Docker per collegare i due? Allora, ecco come procedere con l'installazione di php_...

Configura Exim per inviare email con Gmail

Scritto da il 12/12/2022
Vedremo come configurare Exim4 per inviare email di sistema con Gmail. Questo garantirà che le tue email inviate con il CRON siano instradate correttamente e non finiscano nello spam. Installiamo Exim4 apt-get install exim4 Configurazione dpkg-reconfigure exim4-config Scegli: posta inviata tramite smarthost; nessuna posta locale Poi rispondi alle domande come segue: System mail name: YOUR_HOSTNAME IP-addresses to listen on for incoming SMTP connections: 127.0.0.1 ; ...

Sonata DataMapper e Autowiring

Scritto da il 08/12/2022
Categoria:   PHP, symfony, Sonata
Se hai una necessità specifica di trasformare i dati tra il modulo e la registrazione della tua entità e pensi che questo codice di trasformazione debba essere situato in un servizio perché ha più senso, puoi utilizzare il dataMapper utilizzando l'iniezione delle dipendenze fornita da Symfony. Ma come implementarlo? Un piccolo promemoria riguardo al DataMapper. Se siamo d'accordo con la documentazione ufficiale di Symfony riguardo il DataMapper e DataTransformer, un dataMapper ha la responsab...

SF6 / Sonata 5: Gestione di un'interfaccia OneToMany in un CRUD con il CollectionType di Sonata

Scritto da admin il 27/11/2022
Categoria:   PHP, symfony, Sonata
Tags:   sonata, symfony, admin
In questo esempio, prenderemo il caso concreto di una semplice interfaccia che include diversi elementi. Abbiamo scelto di utilizzare una tabella "Progetti" nella quale assegneremo dei documenti. Di conseguenza, per un progetto, possiamo assegnare diversi documenti. E per facilitare l'amministrazione, ci assicureremo di poter gestire la nostra interfaccia nidificata direttamente all'interno della vista di modifica del nostro progetto.Dobbiamo creare lo schem...

PHP FFI: Utilizzo di una libreria multi-piattaforma Kotlin – Parte 4

Scritto da admin il 11/11/2022
Categoria:   PHP, PHP / FFI
Con Stéphane Péchard https://www.linkedin.com/in/stephanepechard/, esperto Android e guru di KMP, ci siamo chiesti se fosse fattibile sviluppare un algoritmo in KMP ed eseguirlo direttamente in PHP. Le specifiche erano semplici: lo sviluppatore Android (Stéphane) mi fornisce un file header, un file .so e io mi occupo del resto. Con il file header, il contratto, dovremmo essere in grado di escogitare qualcosa... Così siamo riusciti a effet...

PHP FFI: Callback - Parte 3

Scritto da il 11/11/2022
Categoria:   PHP, PHP / FFI
Il CallbackDurante la preparazione di questo articolo, ho notato che molte risorse su internet usano direttamente la libc per i loro esempi. È possibile trovare facilmente esempi abbastanza dimostrativi e semplici. Ma per fare qualcosa di figo e originale, ho pensato "troviamo qualcosa da mostrare con questa libc anch'io". Dopotutto… se si tratta solo di passare una struttura come nella maggior parte degli esempi, non sarà utile. E poi mi sono imbattuto in...

PHP FFI: Passaggio di Parametri – Parte 2

Scritto da admin il 11/11/2022
Categoria:   PHP, PHP / FFI
Chiamare direttamente la libreria PHP?Che ne direste di divertirci a scrivere un frammento di codice che è inutile? Dài!!! Dài!! Dài!!! OK va bene. Propongo di fare qualcosa di inutile utilizzando PHP per chiamare una libreria C che usa il Zend Engine. In realtà, questo paragrafo non è inutile come sembra. Il suo scopo è quello di mostrarvi un comportamento particolare 😊 PHP-FFI ha alcune limitazioni: non puoi passare direttamente ...

PHP FFI: Introduzione – Parte 1

Scritto da il 11/11/2022
Categoria:   PHP, PHP / FFI
IntroduzioneDalla versione 7.4 di PHP, abbiamo finalmente accesso alle funzioni di interoperabilità tra diversi linguaggi e PHP: la FFI o Interfaccia di Funzione Esterna.Cosa è la FFI? È semplicemente la capacità di utilizzare una libreria esterna (.dll o .so) direttamente in PHP, senza dover creare un'estensione PHP. Già, solo con uno script PHP! È, tra le altre cose, ciò che ha reso Python così famoso e gli ha permesso di avere così tante funzionalità.La cosa fantastica della FFI è che uno...

Symfony 6 / Sonata 5: Installazione di SonataClassification.

Scritto da il 14/03/2022
Categoria:   PHP, symfony, Sonata
Abbiamo visto in precedenti articoli come inizializzare un progetto Symfony 6 + Sonata 5 con media e utenti in un'amministrazione sicura. Abbiamo poi esaminato come gestire le localizzazioni degli utenti.Ora vedremo come installare e gestire le classificazioni. Procediamo con l'installazione dell'ultima versione disponibile al momento. php8.1 composer.phar require sonata-project/classification-bundle:5.x-dev Sembra che ci sia un errore di configurazione. Unrecognized option "med...

Symfony 6 / Sonata 5: Collega le località e il fuso orario alle preferenze dell'utente.

Scritto da il 10/03/2022
Categoria:   PHP, symfony, Sonata
Abbiamo visto in un articolo precedente come installare Symfony 6 + Sonata Admin 5 con gestione degli utenti e dei media.Continueremo questa installazione con la configurazione delle lingue e dei fusi orari.Installeremo intlBundle che permette di gestire la visualizzazione localizzata. php8.1 composer.phar require sonata-project/intl-bundle Approfittiamo di questa occasione per aggiungere un campo fuso orario e locale all'utente.Per fare ciò, estenderemo userBundle e aggiungeremo un cam...