Come utilizzare l’intelligenza artificiale per la generazione di schemi di database?

Back4app AI Agent Schema di database Copertura

La progettazione di un database per una soluzione backend efficiente è impegnativa. Individuare tutte le classi, le relazioni e così via necessarie può richiedere molto tempo.

Inoltre, prendere decisioni sbagliate in fase di progettazione può avere conseguenze dannose in fase di produzione.

In questo articolo parleremo dell’utilizzo dell’intelligenza artificiale per la generazione di schemi di database. Analizzeremo i vantaggi e le insidie dell’uso dell’IA e forniremo alcuni esempi pratici.

Inoltre, imparerete come utilizzare l’intelligenza artificiale per generare un backend completo senza scrivere alcun codice!

Vantaggi dell’utilizzo dell’intelligenza artificiale per la progettazione dei database

Vediamo innanzitutto i vantaggi dell’utilizzo dell’IA.

Automazione ed efficienza dei costi

Il primo e probabilmente più evidente vantaggio dell’incorporazione dell’intelligenza artificiale nella progettazione dei database è la possibilità di automatizzare varie attività.

Questo include la generazione dello schema del database, l’ottimizzazione del database, l’impostazione degli indici, la scrittura di query avanzate, ecc.

Tutto ciò si traduce in un significativo risparmio di tempo e di costi.

Ottimizzazione

L’intelligenza artificiale svolge un ruolo cruciale nell’ottimizzazione delle strutture dei database. Grazie ad algoritmi avanzati e all’apprendimento automatico, l’intelligenza artificiale può analizzare i modelli di utilizzo dei dati e consigliare miglioramenti allo schema del database.

Questa ottimizzazione può migliorare le prestazioni e la reattività dell’applicazione.

Integrazione con i database esistenti

Un altro grande vantaggio dell’utilizzo dell’IA è che può aiutarvi ad aggiornare i vostri database esistenti.

È sufficiente descrivere all’agente AI il database attuale o generare un dump del database e poi descrivere gli aggiornamenti desiderati.

Questo diventa ancora più facile se si utilizza Back4app Agent. Invece di generare un dump del database, si può dire all’agente di agganciarsi a un’applicazione esistente:

Connect to my "movie-reviews" app and create a new database class named `Watchlist`.

L’agente AI raccoglierà tutto il contesto necessario e aggiornerà il database di conseguenza.

Meno incline agli errori

L’integrazione dell’intelligenza artificiale nella progettazione dei database riduce la probabilità di errori umani.

I processi tradizionali di progettazione e ottimizzazione dei database comportano spesso un intervento manuale, aumentando il rischio di errori come la progettazione di schemi errati, query inefficienti o scelte di indici non ottimali.

Facile visualizzazione

Sfruttando l’intelligenza artificiale, è possibile visualizzare facilmente la struttura del database. Per visualizzare il database, l’agente AI deve generare il codice di visualizzazione per il vostro strumento di diagrammi ER preferito.

Ecco un esempio per Mermaid:

Generate Mermaid ER diagram visualization code for my database.

Risultato:

erDiagram
    USER ||--o{ REVIEW : writes
    MOVIE ||--o{ REVIEW : has
    MOVIE ||--o{ MOVIEGENRE : has

    USER {
        username String
        email String
        emailVerified Boolean
        displayName String
    }

    MOVIE {
        title String
        releaseDate Date
        duration Number
        director String
        cast Array
        synopsis String
    }

    // ...

Le insidie dell’utilizzo dell’IA per la progettazione dei database

Allucinazioni

Gli agenti di intelligenza artificiale a volte forniscono informazioni plausibili ma errate o insensate. Questo fenomeno è noto come allucinazioni e si verifica con la maggior parte dei modelli linguistici di grandi dimensioni (LLM).

Per questo motivo, gli sviluppatori alle prime armi con i database non dovrebbero utilizzare l’intelligenza artificiale per la generazione di schemi di database.

Prestazioni

Lo schema del database generato dall’intelligenza artificiale non è garantito come ottimale. L’agente AI potrebbe interpretare male ciò che si sta cercando di costruire e fornire uno schema di database non ottimale o difettoso.

La progettazione di database con l’IA è un processo iterativo. Se notate che l’agente AI ha commesso un errore, fatelo notare. Potrebbe essere in grado di correggerlo o di migliorare lo schema.

Casi limite

L’utilizzo dell’intelligenza artificiale potrebbe non essere l’idea migliore se la vostra azienda richiede un design di database atipico. La maggior parte degli agenti di IA è stata addestrata su un gran numero di applicazioni generiche.

Non sanno come gestire il vostro database specializzato.

In questo caso, è meglio affidarsi a esperti piuttosto che a soluzioni generali di intelligenza artificiale.

Come utilizzare l’intelligenza artificiale per generare uno schema di database?

In questa sezione dell’articolo, esamineremo tre esempi pratici di utilizzo dell’intelligenza artificiale per generare uno schema di database. Gli esempi comprendono una semplice applicazione blog, un sito di e-commerce e un sito di recensioni cinematografiche.

In seguito, vedremo alcune delle altre cose che l ‘agente AI di Back4app è in grado di fare.

Per eseguire i passaggi seguenti è necessario disporre di un account Back4app. Se non ne avete ancora uno, registratevi gratuitamente.

Obiettivi

  1. Generare uno schema di database
  2. Creare un database utilizzando lo schema
  3. Analizzare l’API RESTful e GraphQL autogenerata
  4. Esaminare la documentazione generata automaticamente
  5. Utilizzare le funzioni di Cloud Code

Che cos’è Back4app Agent?

Back4app Agent è un agente dotato di intelligenza artificiale che consente di eseguire attività legate al cloud con la forza della conversazione.

Questo include la creazione di applicazioni, la distribuzione di applicazioni, la progettazione del database e la scrittura di file Docker o di codice front-end.

Sfruttando Back4app Agent, avrete il vostro assistente DevOps personale al vostro fianco 24 ore su 24, 7 giorni su 7. Il bello è che può imparare al volo e migliorare man mano che si procede. Il bello è che può imparare al volo e migliorare man mano che si procede.

L’agente è strettamente integrato con Back4app e Back4app Containers. L’agente è un must se si utilizzano già i servizi di Back4app!

Tenete presente che l’agente AI non è uno strumento magico. È un grande e sofisticato modello linguistico (LLM) che potrebbe commettere degli errori. Se ciò accade, spetterà a voi correggerli. Inoltre, se si inviano le stesse richieste (come me), le risposte potrebbero essere diverse.

Caso 1: Sito web di un blog

Come primo esempio, chiederemo all’agente AI di progettare lo schema di un database di un blog. In questo esempio, forniremo il minor numero possibile di informazioni per vedere se l’agente AI riesce a trovare i pezzi mancanti.

Andare alla pagina Back4app Agent, creare un nuovo agente e richiedergli quanto segue:

Create a database schema for a simple blog. Each article in the blog should have a `title`, `shortContent`, `content`, `tags`, and other administrative data. The articles should be filterable by `tags`.

Diagramma entità-relazione (ER) dello schema generato:

Diagramma ER del blog dell'agente AI di Back4app

Come si può vedere, l’agente ha creato con successo uno schema di database valido. Ha incluso tutte le classi richieste e ha gestito le relazioni tra di esse. Inoltre, ha incluso i campi amministrativi di Parse, come createdAt, updatedAt e ACL.

Caso 2: Sito web di e-commerce

Procediamo con uno schema di database più complesso. Questa volta, un sito di e-commerce.

Sottoporre all’agente AI la seguente richiesta:

Create a database schema for an e-commerce website. The database should allow sellers 
to post listings. After a listing is posted, a user can open an order for it. The 
order should be associated with the user's shipping address. Amazon is a good example 
of what I'm looking for.

L’agente ha generato il seguente schema di database:

Diagramma ER dell'agente AI di Back4app per il commercio elettronico

Anche in questo caso, l’agente ha restituito uno schema di database valido.

L’unica cosa che cambierei è l’inversione della relazione tra ordine e indirizzo. Avrebbe più senso che un ordine fosse associato a un singolo indirizzo e che un indirizzo fosse riutilizzabile per tutti gli ordini.

Caso 3: Sito web di revisione

Per l’ultimo esempio, genereremo uno schema di database di recensioni di film. In questo caso, forniremo il maggior numero possibile di contesti per vedere se l’agente AI è in grado di creare uno schema che corrisponda alle nostre istruzioni dettagliate.

Chiedere all’agente AI quanto segue:

Create a database schema for a movie review website. The database should contain 
the following models: `Movie`, `MovieGenre`, `Review`,  and `User` (Parse).

Notes:
- A `Movie` can have multiple genres
- The `Review` should contain at least `title`, `content`, `rating`, and `is_critic`
- Each `Review` should be associated with a `User`

Make sure to include all the Parse administrative fields, such as `createdAt`,
`updatedAt`, and `ACL`.

L’agente AI ha generato il seguente schema di database:

Diagramma ER della recensione dell'agente AI di Back4app

Un altro grande schema.

Tutte le classi sono state prese in considerazione e le relazioni sembrano buone. In questo caso, l’agente AI ha persino generato un modello intermedio che gestisce la relazione M:N tra le classi Movie e Genre.

Generazione di database

Come indicato nell’introduzione, Back4app Agent è strettamente integrato con gli altri servizi Back4app.

La generazione dello schema del database è solo una delle cose che l’agente AI può fare. Una volta ottenuto lo schema, possiamo creare rapidamente un database.

Chiedere all’agente quanto segue:

Create a Back4app app called "back4app-reviews" using the generated database schema.
Back4app AI Agent Crea risposta al database

Bene, sembra che l’agente abbia creato con successo un’applicazione e la struttura del database desiderata.

Successivamente, chiedere all’agente di riempire il database con alcuni dati:

Populate the database with sample users, movie genres, and reviews.
Risposta di Back4app al popolamento del database

Assicuratevi che il database sia stato creato e popolato navigando nella dashboard di Back4app, selezionando la vostra applicazione e controllando le voci del database.

Database generato e popolato da Back4app

Ecco fatto!

Ora abbiamo un database completamente funzionale per un sito di recensioni cinematografiche.

API generate automaticamente

Back4app consente di comunicare con il backend tramite:

  1. API REST generata automaticamente
  2. API GraphQL generata automaticamente
  3. SDK Parse

Esaminiamo ciascuno di essi.

API RESTful

REST si basa sul protocollo HTTP e utilizza diversi metodi HTTP come GET, POST, PUT e DELETE per manipolare le risorse.

Queste operazioni sono spesso chiamate CRUD (Create, Retrieve, Update, Delete). REST supporta diversi formati di dati, ma il formato preferito è JSON.

Per testare l’API REST, navigare nella propria applicazione e selezionare “API > Console > REST” nella barra laterale.

Console REST di Back4app

Compilate il modulo con le seguenti informazioni:

  • Tipo di richiesta GET
  • Punto finale: classi/Movie
  • Chiave principale: Vero

Quindi, fare clic su “Invia query” per eseguire la query.

Dovreste ricevere una risposta simile a questa:

{
    "results": [
        {
            "objectId": "AD1r4b9Oie",
            "title": "The Fast Saga",
            "duration": 120,
            "director": "Justin Lin",
            "cast": [
                "Vin Diesel",
                "Michelle Rodriguez"
            ],
            "synopsis": "Street racing, heists, and espionage.",
            "createdAt": "2024-02-03T21:53:54.724Z",
            "updatedAt": "2024-02-03T21:53:54.724Z",
        },
        {
            "objectId": "Sr6FQjnckj",
            "title": "The Serious Case",
            "duration": 140,
            "director": "Christopher Nolan",
            "cast": [
                "Christian Bale",
                "Michael Caine"
            ],
            "synopsis": "An intricate story of human emotions and relationships",
            "createdAt": "2024-02-03T21:53:54.724Z",
            "updatedAt": "2024-02-03T21:53:54.724Z",
        },
        // ...
    ]
}

L’operazione di elenco funziona bene. I film sono stati serializzati e restituiti come JSON. Per capire come funziona l’API RESTful, si consiglia di testare anche le altre operazioni.

Per saperne di più sulle API RESTful, consultate Come costruire un’API RESTful?

API GraphQL

GraphQL funge sia da linguaggio di interrogazione che da runtime lato server per facilitare lo sviluppo di interfacce di programmazione delle applicazioni (API).

Questa tecnologia consente ai clienti di specificare i dati richiesti dall’API, eliminando la necessità di dipendere dal backend per un set di dati predefinito.

Per testare le query GraphQL, andare su “API > Console > GraphQL” nella barra laterale.

Console GraphQL di Back4app

Quindi, eseguire la seguente query GraphQL:

{
  reviews {
    count
    edges {
      node {
        objectId
        rating
      }
    }
  }
}

Come si può vedere, la query ha recuperato tutte le recensioni, ma ha incluso solo il loro objectId e la valutazione. Anche in questo caso, è possibile testare diverse query e manipolazioni.

Per saperne di più su GraphQL, date un’occhiata a Come costruire un’API GraphQL?

SDK Parse

Parse SDK è il metodo consigliato per collegare il frontend al backend. È il più robusto e meno soggetto a errori.

Parse SDK supporta diversi linguaggi di programmazione e framework, tra cui JavaScript, TypeScript, Objective-C, ecc.

Permette di eseguire operazioni CRUD, interrogazioni avanzate e altro ancora.

Per imparare a utilizzare Parse SDK, consultare Come ospitare frontend e backend?

Documentazione generata automaticamente

Un’altra grande caratteristica di Back4app è che genera automaticamente la documentazione per tutti i modelli di database.

Si ottengono spiegazioni testuali semplici e di facile comprensione e pratici snippet di codice per vari linguaggi di programmazione, come JavaScript, TypeScript, Objective-C, Swift e altri ancora.

Per accedere alla documentazione, navigare nella propria applicazione e selezionare “API > API Reference” nella barra laterale:

Riferimento API Back4app

Ecco una schermata dell’aspetto dei documenti:

Documentazione generata da Back4app

Codice Cloud

Back4app consente di eseguire codice JavaScript personalizzato attraverso le cosiddette funzioni Cloud Code.

Queste funzioni possono aiutare a eseguire operazioni complesse, come l’aggregazione dei dati, l’esportazione, ecc.

Una funzione Cloud Code può essere attivata da richieste Parse o HTTP o programmata per essere eseguita in futuro.

Funzione Codice Cloud

Supponiamo di volere una funzione di Cloud Code che calcoli la valutazione media di un film. Potremmo scriverla e distribuirla noi stessi, ma è più facile chiedere all’agente AI di farlo.

Passare alla schermata dell’Agente AI e richiedergli quanto segue:

Please write me a Cloud Code function that calculates a movie's average rating. The the function should take in the movie's `objectId` and return a float (average rating).
Back4app AI Agent Cloud Codice di risposta

Provate a testarlo usando il seguente comando cURL:

$ curl -X POST \
   -H "X-Parse-Application-Id: <your_app_id>" \
   -H "X-Parse-REST-API-Key: <your_rest_api_key>" \
   -H "Content-Type: application/json" \
   -d '{"movieId": "<movie_object_id>"}' \
   https://parseapi.back4app.com/functions/calculateAverageRating

Assicurarsi di sostituire i segnaposto (<your_app_id>, <your_rest_api_key>, e <movie_object_id>) con i valori reali. Per ottenere l'”Application ID” e la “REST API Key”, accedere all’applicazione e selezionare “App Settings > Security & Keys” nella barra laterale.

Dovreste ottenere una risposta simile:

{
  "result": 4.25
}

Per vedere il codice generato in background, andare su “Codice Cloud > Funzione e Web Hosting” nella barra laterale. Quindi selezionare main.js nella cartella cloud.

Codice Cloud Back4app

Pianificazione del codice nel cloud

Infine, chiedere all’agente AI di programmare un lavoro settimanale:

Create and deploy a Cloud Code job named `clearRatings()`, which deletes all 
the ratings. Schedule it to run every week.
Risposta al programma di Back4app

L’agente ha creato con successo un lavoro e lo ha programmato su base settimanale.

Conclusione

In sintesi, abbiamo utilizzato con successo l’intelligenza artificiale per generare uno schema di database.

Abbiamo anche imparato a creare un’applicazione e un database Back4app, a generare dati di esempio e a implementare funzioni Cloud Code personalizzate, il tutto con la forza della conversazione.

Ricordate che la creazione di uno schema di database con l’intelligenza artificiale è un processo iterativo. Se pensate che qualcosa possa essere implementato meglio, spiegatelo all’agente, che modificherà lo schema di conseguenza.

Ulteriori risorse dell’articolo sono accessibili sul repo back4app-ai-agent-schema.


Leave a reply

Your email address will not be published.