AI_TO_SQL (Lakehouse v1)
Convertit des instructions en langage naturel en requêtes SQL grâce au modèle le plus récent, text-davinci-003.
PlaidCloud Lakehouse propose une solution efficace pour construire des requêtes SQL en combinant OLAP et IA. Cette fonction permet de convertir des instructions rédigées en langage naturel en instructions de requête SQL conformes au schéma de la table. Par exemple, vous pouvez lui fournir en entrée une phrase telle que « Get all items that cost 10 dollars or less » et obtenir en sortie la requête SQL correspondante « SELECT * FROM items WHERE price <= 10 ».
Consultez l’implémentation en amont.
Syntaxe Analyze
Section intitulée « Syntaxe Analyze »func.ai_to_sql('<natural-language-instruction>')Exemples Analyze
Section intitulée « Exemples Analyze »Dans cet exemple, une instruction de requête SQL est générée à partir d’une instruction avec la fonction AI_TO_SQL, puis l’instruction obtenue est exécutée pour récupérer les résultats de la requête.
func.ai_to_sql('List the total amount spent by users from the USA who are older than 30 years, grouped by their names, along with the number of orders they made in 2022')La fonction génère en sortie l’instruction SQL suivante :
*************************** 1. row *************************** database: openaigenerated_sql: SELECT name, SUM(price) AS total_spent, COUNT(order_id) AS total_orders FROM users JOIN orders ON users.id = orders.user_id WHERE country = 'USA' AND age > 30 AND order_date BETWEEN '2022-01-01' AND '2022-12-31' GROUP BY name;Syntaxe SQL
Section intitulée « Syntaxe SQL »USE <your-database>;SELECT * FROM ai_to_sql('<natural-language-instruction>');Exemples SQL
Section intitulée « Exemples SQL »Dans cet exemple, une instruction de requête SQL est générée à partir d’une instruction avec la fonction AI_TO_SQL, puis l’instruction obtenue est exécutée pour récupérer les résultats de la requête.
- Préparez les données.
CREATE DATABASE IF NOT EXISTS openai;USE openai;
CREATE TABLE users( id INT, name VARCHAR, age INT, country VARCHAR);
CREATE TABLE orders( order_id INT, user_id INT, product_name VARCHAR, price DECIMAL(10,2), order_date DATE);
-- Insert sample data into the users tableINSERT INTO users VALUES (1, 'Alice', 31, 'USA'), (2, 'Bob', 32, 'USA'), (3, 'Charlie', 45, 'USA'), (4, 'Diana', 29, 'USA'), (5, 'Eva', 35, 'Canada');
-- Insert sample data into the orders tableINSERT INTO orders VALUES (1, 1, 'iPhone', 1000.00, '2022-03-05'), (2, 1, 'OpenAI Plus', 20.00, '2022-03-06'), (3, 2, 'OpenAI Plus', 20.00, '2022-03-07'), (4, 2, 'MacBook Pro', 2000.00, '2022-03-10'), (5, 3, 'iPad', 500.00, '2022-03-12'), (6, 3, 'AirPods', 200.00, '2022-03-14');- Exécutez la fonction AI_TO_SQL avec une instruction rédigée en anglais en entrée.
SELECT * FROM ai_to_sql( 'List the total amount spent by users from the USA who are older than 30 years, grouped by their names, along with the number of orders they made in 2022');La fonction génère en sortie l’instruction SQL suivante :
*************************** 1. row *************************** database: openaigenerated_sql: SELECT name, SUM(price) AS total_spent, COUNT(order_id) AS total_orders FROM users JOIN orders ON users.id = orders.user_id WHERE country = 'USA' AND age > 30 AND order_date BETWEEN '2022-01-01' AND '2022-12-31' GROUP BY name;- Exécutez l’instruction SQL générée pour obtenir les résultats de la requête.
┌─────────┬─────────────┬─────────────┐│ name │ order_count │ total_spent │├─────────┼─────────────┼─────────────┤│ Bob │ 2 │ 2020.00 ││ Alice │ 2 │ 1020.00 ││ Charlie │ 2 │ 700.00 │└─────────┴─────────────┴─────────────┘