MQL (mon langage de requête) est un outil puissant pour transformer les requêtes en langage naturel en requêtes SQL exécutables. Ce qui est cool, c'est que n'importe qui peut l'utiliser, même sans savoir coder. Ajoutez simplement votre base de données en connectant ou en téléchargeant un schéma à MQL, demandez une requête dans votre langue et obtenez le SQL.
Assurez-vous que Docker a installé.
Pour commencer, clonez ce référentiel git:
git clone https://github.com/shurutech/mql Mettez à jour le serveur / dockerfile avec votre touche OPENAI_API_KEY :
ENV OPENAI_API_KEY YOUR_TOKEN_HERE
Mettez à jour la Database_URL dans le fichier Server / .env en fonction des règles suivantes:
Accédez au dossier du référentiel et exécutez la commande suivante:
make install
Une fois l'installation terminée, vous pouvez accéder au tableau de bord MQL à: http: // localhost: 3000
Si nécessaire, vous pouvez également redémarrer pour refléter les modifications locales, le cas échéant, en utilisant:
make restart
Vous pouvez également terminer la configuration locale en utilisant:
make down
En outre, vous pouvez démarrer tous les conteneurs en utilisant:
make up
Un utilisateur par défaut est créé à des fins de connexion lors de l'exécution de l'outil à l'aide de Docker.
Prenez soin des étapes ci-dessous si vous cherchez à le faire vivre
À partir de la version actuelle, MQL est conçu pour fonctionner exclusivement avec PostgreSQL.
Ce sont les packages requis qui doivent être installés pour exécuter le projet localement.
Python
psycopg2
Nœud
Postgresql 15
Extension PGVector pour PostgreSQL - PGVector
Exécutez ces commandes dans votre client de ligne de commande PostgreSQL
Création du rôle postgresql
Créez un rôle postgresql avec les autorisations de superutilisateur et la capacité de connexion:
CREATE ROLE < role_name > WITH superuser;
ALTER ROLE < role_name > WITH LOGIN PASSWORD ' password ' ;Création des bases de données
Créez deux bases de données, mql et mql_test , avec le rôle shuru :
CREATE DATABASE mql WITH OWNER < role_name > ;
CREATE DATABASE mql_test WITH OWNER < role_name > ;Création de l'extension
Pour créer l'extension vector :
Connectez-vous avec la base de données en utilisant:
c < databse_name >Créez l'extension vectorielle:
CREATE EXTENSION vector;Mettez à jour ces valeurs sur Server / .env
DATABASE_URL = " postgresql://<role_name>:<password>@<host>:5432/mql "
TEST_DATABASE_URL = " postgresql://<role_name>:<password>@<host>:5432/mql_test "
OPENAI_API_KEY = " <key> " Si la base de données est hébergée localement, l'hôte sera localhost
Accédez au dossier du référentiel et exécutez la commande dans le terminal
chmod +x ./setup.sh && ./setup.shUne fois l'installation terminée, vous pouvez accéder au tableau de bord MQL à: http: // localhost: 3000
Notre processus de test consistait à exécuter 50 requêtes en langage naturel via la plate-forme MQL, avec des ressources comme un fichier eLearning_schema et un CSV de mappages de requête situés dans notre dossier Test_Data. Le MQL a atteint environ 85% le taux de réussite , traduisant avec précision 43 questions sur 50. Cependant, lorsque l'on considère la précision des traductions, environ 74% (37 sur 50) des requêtes ont été parfaitement exécutés, avec 6 requêtes correctement interprétées mais manquant un demi-colon à la fin. Cela nous a laissé 7 requêtes qui ont entraîné des erreurs. Nous travaillons activement sur les améliorations pour améliorer à la fois la précision et l'exhaustivité de la génération de syntaxe SQL, et nous nous réjouissons des contributions pour aider à affiner notre plateforme.
Nous prévoyons de continuer à construire après la libération initiale et nous attendons avec impatience les commentaires de la communauté. À ce jour, nous avons des fonctionnalités suivantes prévues pour les prochaines versions.
Nous apprécions les contributions de chaque développeur et vous encourageons à partager vos idées, vos améliorations et correctement avec nous. Pour assurer un processus de collaboration fluide, veuillez suivre ces directives.
Avant de commencer:
Rapports de bugs
Avant de signaler un bogue, s'il vous plaît:
Suggérant des améliorations que nous aimons recevoir des suggestions pour les améliorations! S'il te plaît:
Tirez les demandes prêtes à contribuer au code? Suivez ces étapes:
Conduite, nous nous engageons à fournir une communauté accueillante et inspirante pour tous. En participant à ce projet, vous devez maintenir notre code de conduite, qui favorise le respect et la collaboration.