AI_TO_SQL (Lakehouse v1)
Converte instruções em linguagem natural em consultas SQL com o modelo mais recente, text-davinci-003.
O PlaidCloud Lakehouse oferece uma solução eficiente para construir consultas SQL, combinando OLAP e IA. Através desta função, as instruções escritas em linguagem natural podem ser convertidas em instruções de consulta SQL alinhadas com o esquema da tabela. Por exemplo, a função pode receber como entrada uma frase como “Get all items that cost 10 dollars or less” e gerar como saída a consulta SQL correspondente “SELECT * FROM items WHERE price <= 10”.
Consulte a implementação original.
Sintaxe do Analyze
Seção intitulada “Sintaxe do Analyze”func.ai_to_sql('<natural-language-instruction>')Exemplos do Analyze
Seção intitulada “Exemplos do Analyze”Neste exemplo, é gerada uma instrução de consulta SQL a partir de uma instrução com a função AI_TO_SQL, e a instrução resultante é executada para obter os resultados da 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')A função gera como saída uma instrução 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;Sintaxe SQL
Seção intitulada “Sintaxe SQL”USE <your-database>;SELECT * FROM ai_to_sql('<natural-language-instruction>');Exemplos de SQL
Seção intitulada “Exemplos de SQL”Neste exemplo, é gerada uma instrução de consulta SQL a partir de uma instrução com a função AI_TO_SQL, e a instrução resultante é executada para obter os resultados da consulta.
- Prepare os dados.
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');- Execute a função AI_TO_SQL com uma instrução escrita em 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');A função gera como saída uma instrução 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;- Execute a instrução SQL gerada para obter os resultados da consulta.
┌─────────┬─────────────┬─────────────┐│ name │ order_count │ total_spent │├─────────┼─────────────┼─────────────┤│ Bob │ 2 │ 2020.00 ││ Alice │ 2 │ 1020.00 ││ Charlie │ 2 │ 700.00 │└─────────┴─────────────┴─────────────┘