AI_TO_SQL (Lakehouse v1)
Convierte instrucciones en lenguaje natural en consultas SQL con el modelo más reciente, text-davinci-003.
PlaidCloud Lakehouse ofrece una solución eficiente para construir consultas SQL que combina OLAP e IA. Con esta función, las instrucciones escritas en lenguaje natural se pueden convertir en sentencias de consulta SQL que se ajustan al esquema de la tabla. Por ejemplo, a la función se le puede proporcionar como entrada una frase como “Get all items that cost 10 dollars or less” y generar como salida la consulta SQL correspondiente “SELECT * FROM items WHERE price <= 10”.
Consulte la implementación original.
Sintaxis de Analyze
Sección titulada «Sintaxis de Analyze»func.ai_to_sql('<natural-language-instruction>')Ejemplos de Analyze
Sección titulada «Ejemplos de Analyze»En este ejemplo, la función AI_TO_SQL genera una sentencia de consulta SQL a partir de una instrucción y, luego, se ejecuta la sentencia resultante para obtener los resultados de la consulta.
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 función genera como salida una sentencia SQL:
*************************** 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;Sintaxis de SQL
Sección titulada «Sintaxis de SQL»USE <your-database>;SELECT * FROM ai_to_sql('<natural-language-instruction>');Ejemplos de SQL
Sección titulada «Ejemplos de SQL»En este ejemplo, la función AI_TO_SQL genera una sentencia de consulta SQL a partir de una instrucción y, luego, se ejecuta la sentencia resultante para obtener los resultados de la consulta.
- Prepare los datos.
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');- Ejecute la función AI_TO_SQL con una instrucción escrita en inglés como entrada.
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 función genera como salida una sentencia SQL:
*************************** 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;- Ejecute la sentencia SQL generada para obtener los resultados de la consulta.
┌─────────┬─────────────┬─────────────┐│ name │ order_count │ total_spent │├─────────┼─────────────┼─────────────┤│ Bob │ 2 │ 2020.00 ││ Alice │ 2 │ 1020.00 ││ Charlie │ 2 │ 700.00 │└─────────┴─────────────┴─────────────┘