Comment utiliser l’IA pour générer des schémas de base de données ?

Back4app AI Agent Database Schema Cover (couverture du schéma de la base de données de l'agent d'IA)

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 !

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

  1. Générer un schéma de base de données
  2. Créer une base de données à l’aide du schéma
  3. Analyser l’API RESTful et GraphQL générée automatiquement
  4. Examiner la documentation générée automatiquement
  5. 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é :

Back4app AI Agent Blog ER Diagramme

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 :

Back4app AI Agent E-Commerce ER Diagramme

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 :

Back4app AI Agent Review ER Diagramme

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.
Back4app AI Agent Create Database Response

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.
Réponse de Back4app à l'interrogation de la base de données

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.

Base de données générée et alimentée par Back4app

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 :

  1. API RESTful générée automatiquement
  2. API GraphQL générée automatiquement
  3. 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.

Console REST de Back4app

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.

Console GraphQL de Back4app

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 :

Référence API Back4app

Voici une capture d’écran de la documentation :

Documentation générée par Back4app

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).
Back4app AI Agent Cloud Code Response

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.

Back4app Cloud Code

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.
Réponse au calendrier de Back4app

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.


Leave a reply

Your email address will not be published.