Come utilizzare l’intelligenza artificiale per la generazione di schemi di database?
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!
Contents
- 1 Vantaggi dell’utilizzo dell’intelligenza artificiale per la progettazione dei database
- 2 Le insidie dell’utilizzo dell’IA per la progettazione dei database
- 3 Come utilizzare l’intelligenza artificiale per generare uno schema di database?
- 4 Conclusione
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
- Generare uno schema di database
- Creare un database utilizzando lo schema
- Analizzare l’API RESTful e GraphQL autogenerata
- Esaminare la documentazione generata automaticamente
- 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:
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:
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:
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.
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.
Assicuratevi che il database sia stato creato e popolato navigando nella dashboard di Back4app, selezionando la vostra applicazione e controllando le voci del database.
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:
- API REST generata automaticamente
- API GraphQL generata automaticamente
- 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.
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.
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:
Ecco una schermata dell’aspetto dei documenti:
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).
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.
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.
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.