Comment utiliser l’IA pour générer des schémas de base de données ?
Concevoir une base de données pour une solution backend efficace est un défi. La détermination de toutes les classes, relations, etc. nécessaires peut prendre beaucoup de temps.
En outre, les mauvaises décisions prises lors de la phase de conception peuvent avoir des conséquences préjudiciables lors de la phase de production.
Dans cet article, nous aborderons l’utilisation de l’IA pour la génération de schémas de base de données. Nous examinerons les avantages de l’utilisation de l’IA et ses pièges, et nous fournirons quelques exemples pratiques.
En outre, vous apprendrez à utiliser l’IA pour générer un backend complet sans écrire de code !
Contents
- 1 Avantages de l’utilisation de l’IA pour la conception de bases de données
- 2 Les pièges de l’utilisation de l’IA pour la conception de bases de données
- 3 Comment utiliser l’IA pour générer un schéma de base de données ?
- 4 Conclusion
Avantages de l’utilisation de l’IA pour la conception de bases de données
Examinons tout d’abord les avantages de l’utilisation de l’IA.
Automatisation et rentabilité
Le premier avantage, et probablement le plus apparent, de l’intégration de l’IA dans la conception des bases de données est la possibilité d’automatiser diverses tâches.
Cela comprend la génération du schéma de la base de données, l’optimisation de la base de données, la définition des index, l’écriture de requêtes avancées, etc.
Tous ces éléments se traduisent par des économies de temps et d’argent considérables.
Optimisation
L’IA joue un rôle crucial dans l’optimisation des structures de base de données. Grâce à des algorithmes avancés et à l’apprentissage automatique, l’IA peut analyser les schémas d’utilisation des données et recommander des améliorations au schéma de la base de données.
Cette optimisation peut améliorer les performances et la réactivité de votre application.
Intégration avec les bases de données existantes
Un autre avantage de l’utilisation de l’IA est qu’elle peut vous aider à mettre à niveau vos bases de données existantes.
Il vous suffit de décrire la base de données actuelle à l’agent IA ou de générer un dumping de la base de données, puis de décrire les mises à niveau souhaitées.
Cela devient encore plus facile si vous utilisez Back4app Agent. Au lieu de générer un dump de base de données, vous pouvez dire à l’agent de se connecter à une application existante :
Connect to my "movie-reviews" app and create a new database class named `Watchlist`.
L’agent d’intelligence artificielle rassemblera tout le contexte nécessaire et mettra à jour votre base de données en conséquence.
Moins de risques d’erreurs
L’intégration de l’IA dans la conception des bases de données réduit la probabilité d’erreurs humaines.
Les processus traditionnels de conception et d’optimisation des bases de données impliquent souvent une intervention manuelle, ce qui augmente le risque d’erreurs telles que des schémas incorrects, des requêtes inefficaces ou des choix d’index sous-optimaux.
Visualisation facile
En tirant parti de l’IA, vous pouvez facilement visualiser la structure de votre base de données. Pour visualiser la base de données, demandez à l’agent d’IA de générer un code de visualisation pour votre outil de diagramme ER préféré.
Voici un exemple pour Mermaid:
Generate Mermaid ER diagram visualization code for my database.
Résultat :
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
}
// ...
Les pièges de l’utilisation de l’IA pour la conception de bases de données
Hallucinations
Les agents d’intelligence artificielle fournissent parfois des informations plausibles mais incorrectes ou absurdes. Ce phénomène, connu sous le nom d’hallucinations, se produit avec la plupart des grands modèles de langage (LLM).
C’est pourquoi les développeurs novices en matière de bases de données ne devraient pas utiliser l’IA pour générer des schémas de base de données.
Performance
Il n’est pas garanti que le schéma de base de données généré par l’IA soit optimal. L’agent d’IA peut mal interpréter ce que vous essayez de construire et vous fournir un schéma de base de données sous-optimal ou défectueux.
La conception d’une base de données à l’aide de l’IA est un processus itératif. Si vous remarquez que l’agent d’IA a commis une erreur, signalez-le-lui. Il pourra peut-être la corriger ou améliorer le schéma.
Cas limites
L’utilisation de l’IA n’est peut-être pas la meilleure idée si votre entreprise nécessite une conception de base de données atypique. La plupart des agents d’IA ont été formés sur un grand nombre d’applications génériques.
Ils ne savent pas comment s’y prendre avec votre base de données spécialisée.
Dans ce cas, il est préférable de s’appuyer sur des experts plutôt que sur des solutions d’IA générales.
Comment utiliser l’IA pour générer un schéma de base de données ?
Dans cette section de l’article, nous examinerons trois exemples pratiques d’utilisation de l’IA pour générer un schéma de base de données. Les exemples incluent une simple application de blog, un site de commerce électronique et un site de critiques de films.
Après cela, nous verrons certaines des autres choses que l’agent Back4app AI est capable de faire.
Les étapes suivantes requièrent que vous ayez un compte Back4app. Si vous n’en avez pas encore, inscrivez-vous gratuitement.
Objectifs
- Générer un schéma de base de données
- Créer une base de données à l’aide du schéma
- Analyser l’API RESTful et GraphQL générée automatiquement
- Examiner la documentation générée automatiquement
- Utiliser les fonctions de Cloud Code
Qu’est-ce que Back4app Agent ?
Back4app Agent est un agent doté d’une intelligence artificielle qui vous permet d’effectuer des tâches liées au cloud grâce à la puissance de la conversation.
Cela comprend la création d’applications, le déploiement d’applications, la conception de la base de données et l’écriture de fichiers Docker ou de code frontal.
En tirant parti de Back4app Agent, vous aurez votre propre assistant DevOps personnel à vos côtés 24 heures sur 24 et 7 jours sur 7. Ce qui est génial, c’est qu’il peut apprendre à la volée et s’améliorer au fur et à mesure.
L’agent est étroitement intégré avec Back4app et Back4app Containers. L’agent est indispensable si vous utilisez déjà l’un des services de Back4app !
N’oubliez pas que l’agent d’IA n’est pas un outil magique. Il s’agit d’un grand modèle linguistique sophistiqué (LLM) qui peut faire des erreurs. Si cela se produit, c’est à vous de les corriger. En outre, si vous soumettez les mêmes questions (comme moi), les réponses peuvent être différentes.
Cas 1 : Site web d’un blog
Dans le premier exemple, nous demanderons à l’agent IA de concevoir un schéma de base de données pour un blog. Dans cet exemple, nous fournirons le moins d’informations possible pour voir si l’agent d’intelligence artificielle est capable de trouver les pièces manquantes.
Naviguez vers la page Back4app Agent, créez un nouvel agent et demandez-lui ce qui suit :
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`.
Diagramme entité-relation (ER) du schéma généré :
Comme vous pouvez le constater, l’agent a réussi à créer un schéma de base de données valide. Il a inclus toutes les classes requises et a géré les relations entre elles. En outre, il a inclus les champs administratifs Parse tels que createdAt
, updatedAt
et ACL
.
Cas 2 : Site web de commerce électronique
Passons maintenant à un schéma de base de données plus complexe. Cette fois, il s’agit d’un site de commerce électronique.
Envoyez l’invite suivante à l’agent AI :
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’agent a généré le schéma de base de données suivant :
Là encore, l’agent a renvoyé un schéma de base de données valide.
La seule chose que je changerais ici serait d’inverser la relation entre la commande
et l’adresse
. Il serait plus logique qu’une commande soit associée à une seule adresse et qu’une adresse soit réutilisable d’une commande à l’autre.
Cas 3 : Site web d’examen
Pour le dernier exemple, nous allons générer un schéma de base de données de critiques de films. Ici, nous fournirons autant de contexte que possible pour voir si l’agent IA peut créer un schéma qui correspond à nos instructions détaillées.
L’agent AI est invité à répondre à la question suivante :
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’agent AI a généré le schéma de base de données suivant :
Un autre grand schéma.
Toutes les classes ont été prises en charge, et les relations sont bonnes. Ici, l’agent d’IA a même généré un modèle intermédiaire qui gère la relation M:N
entre la classe Film
et la classe Genre
.
Génération de bases de données
Comme le mentionne l’introduction, Back4app Agent est étroitement intégré avec les autres services de Back4app.
La création du schéma de la base de données n’est qu’une des tâches que l’agent d’intelligence artificielle peut accomplir. Une fois que nous avons le schéma, nous pouvons rapidement créer une base de données.
L’agent est invité à répondre à la question suivante :
Create a Back4app app called "back4app-reviews" using the generated database schema.
Il semble que l’agent ait réussi à créer une application et la structure de base de données souhaitée.
Ensuite, demandez à l’agent d’alimenter la base de données avec des données :
Populate the database with sample users, movie genres, and reviews.
Assurez-vous que la base de données a été créée et alimentée en vous rendant sur le tableau de bord de Back4app, en sélectionnant votre application et en vérifiant les entrées de la base de données.
C’est tout !
Nous disposons désormais d’une base de données entièrement fonctionnelle pour un site de critique de films.
API générées automatiquement
Back4app vous permet de communiquer avec votre backend via :
- API RESTful générée automatiquement
- API GraphQL générée automatiquement
- Parse SDK
Examinons chacun d’entre eux.
API RESTful
REST est basé sur le protocole HTTP et utilise différentes méthodes HTTP telles que GET
, POST
, PUT
et DELETE
pour manipuler les ressources.
Ces opérations sont souvent appelées CRUD (Create, Retrieve, Update, Delete). REST prend en charge plusieurs formats de données, mais son format préféré est JSON.
Pour tester l’API REST, naviguez dans votre application et sélectionnez “API > Console > REST” dans la barre latérale.
Remplissez le formulaire avec les informations suivantes :
- Type de demande GET
- Point d’arrivée : classes/Movie
- Clé principale : Vrai
Cliquez ensuite sur “Envoyer la requête” pour exécuter la requête.
Vous devriez obtenir une réponse similaire à celle-ci :
{
"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’opération de liste fonctionne bien. Les films ont été sérialisés avec succès et renvoyés au format JSON. Pour vous faire une idée du fonctionnement de l’API RESTful, je vous suggère de tester également les autres opérations.
Pour en savoir plus sur les API RESTful, consultez la page Comment créer une API RESTful ?
API GraphQL
GraphQL sert à la fois de langage de requête et de moteur d’exécution côté serveur pour faciliter le développement d’interfaces de programmation d’applications (API).
Cette technologie permet aux clients de spécifier les données dont ils ont besoin à partir de l’API, éliminant ainsi la nécessité de dépendre du backend pour un ensemble de données prédéfinies.
Pour tester les requêtes GraphQL, naviguez vers “API > Console > GraphQL” dans la barre latérale.
Ensuite, exécutez la requête GraphQL suivante :
{
reviews {
count
edges {
node {
objectId
rating
}
}
}
}
Comme vous pouvez le constater, la requête a permis d’obtenir tous les avis, mais n’a inclus que l’identifiant de l'objet
et l’évaluation.
Là encore, n’hésitez pas à tester différentes requêtes et manipulations.
Pour en savoir plus sur GraphQL, consultez la page Comment créer une API GraphQL ?
Parse SDK
Parse SDK est le moyen recommandé pour connecter votre frontend au backend. C’est la méthode la plus robuste et la moins sujette aux erreurs.
Parse SDK prend en charge plusieurs langages de programmation et frameworks, notamment JavaScript, TypeScript, Objective-C, etc.
Il vous permet d’effectuer des opérations CRUD, des requêtes avancées, etc.
Pour savoir comment utiliser Parse SDK, consultez Comment héberger le frontend et le backend ?
Documentation générée automatiquement
Un autre avantage de Back4app est qu’il génère automatiquement de la documentation pour tous vos modèles de base de données.
Vous obtenez des explications textuelles simples et faciles à comprendre ainsi que des extraits de code pratiques pour différents langages de programmation, tels que JavaScript, TypeScript, Objective-C, Swift, et bien d’autres encore.
Pour accéder aux documents, naviguez dans votre application et sélectionnez “API > API Reference” dans la barre latérale :
Voici une capture d’écran de la documentation :
Code du nuage
Back4app vous permet d’exécuter du code JavaScript personnalisé par le biais de fonctions appelées Cloud Code.
Ces fonctions permettent d’effectuer des opérations complexes, telles que l’agrégation de données, l’exportation, etc.
Une fonction Cloud Code peut être déclenchée par des requêtes Parse ou HTTP ou programmée pour s’exécuter ultérieurement.
Fonction du code cloud
Supposons que nous voulions une fonction Cloud Code qui calcule la note moyenne d’un film. Nous pourrions l’écrire et la déployer nous-mêmes, mais il est plus facile de demander à l’agent IA de le faire.
Accédez à l’écran de l’agent AI et demandez-lui ce qui suit :
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).
Testez-le en utilisant la commande cURL suivante :
$ 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
Veillez à remplacer les espaces réservés (
<your_app_id>
,<your_rest_api_key>
, et<movie_object_id>
) par les valeurs réelles. Pour obtenir votre “Application ID” et votre “REST API Key”, naviguez dans votre application et sélectionnez “App Settings > Security & Keys” dans la barre latérale.
Vous devriez obtenir une réponse similaire :
{
"result": 4.25
}
Pour voir le code généré en arrière-plan, naviguez vers “Cloud Code > Function & Web Hosting” dans la barre latérale. Sélectionnez ensuite main.js dans le dossier Cloud.
Ordonnancement du code dans le nuage
Enfin, demandez à l’agent IA de programmer un travail hebdomadaire :
Create and deploy a Cloud Code job named `clearRatings()`, which deletes all
the ratings. Schedule it to run every week.
L’agent a créé avec succès un travail et l’a planifié sur une base hebdomadaire.
Conclusion
En résumé, nous avons réussi à utiliser l’IA pour générer un schéma de base de données.
Nous avons également appris à créer une application et une base de données Back4app, à générer des échantillons de données et à mettre en œuvre des fonctions Cloud Code personnalisées, le tout grâce au pouvoir de la conversation.
N’oubliez pas que la création d’un schéma de base de données à l’aide de l’IA est un processus itératif. Si vous pensez que quelque chose pourrait être mieux implémenté, expliquez-le à l’agent et il modifiera votre schéma en conséquence.
Des ressources supplémentaires sont accessibles sur le repo back4app-ai-agent-schema.