AI_TO_SQL (Lakehouse v1)
Wandelt Anweisungen in natürlicher Sprache mit dem aktuellen Modell text-davinci-003 in SQL-Abfragen um.
PlaidCloud Lakehouse bietet eine effiziente Lösung zum Erstellen von SQL-Abfragen, indem OLAP und KI kombiniert werden. Mit dieser Funktion lassen sich in natürlicher Sprache formulierte Anweisungen in SQL-Abfrageanweisungen umwandeln, die zum Tabellenschema passen. Die Funktion kann beispielsweise einen Satz wie “Get all items that cost 10 dollars or less” als Eingabe erhalten und daraus die entsprechende SQL-Abfrage “SELECT * FROM items WHERE price <= 10” als Ausgabe erzeugen.
Siehe die Upstream-Implementierung.
Analyze-Syntax
Abschnitt betitelt „Analyze-Syntax“func.ai_to_sql('<natural-language-instruction>')Analyze-Beispiele
Abschnitt betitelt „Analyze-Beispiele“In diesem Beispiel wird mit der Funktion AI_TO_SQL aus einer Anweisung eine SQL-Abfrageanweisung generiert. Die resultierende Anweisung wird anschließend ausgeführt, um die Abfrageergebnisse zu erhalten.
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')Die Funktion gibt als Ausgabe eine SQL-Anweisung zurück:
*************************** 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;SQL-Syntax
Abschnitt betitelt „SQL-Syntax“USE <your-database>;SELECT * FROM ai_to_sql('<natural-language-instruction>');SQL-Beispiele
Abschnitt betitelt „SQL-Beispiele“In diesem Beispiel wird mit der Funktion AI_TO_SQL aus einer Anweisung eine SQL-Abfrageanweisung generiert. Die resultierende Anweisung wird anschließend ausgeführt, um die Abfrageergebnisse zu erhalten.
- Bereiten Sie die Daten vor.
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');- Führen Sie die Funktion AI_TO_SQL mit einer in englischer Sprache formulierten Anweisung als Eingabe aus.
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');Die Funktion gibt als Ausgabe eine SQL-Anweisung zurück:
*************************** 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;- Führen Sie die generierte SQL-Anweisung aus, um die Abfrageergebnisse zu erhalten.
┌─────────┬─────────────┬─────────────┐│ name │ order_count │ total_spent │├─────────┼─────────────┼─────────────┤│ Bob │ 2 │ 2020.00 ││ Alice │ 2 │ 1020.00 ││ Charlie │ 2 │ 700.00 │└─────────┴─────────────┴─────────────┘