AI_TO_SQL (Lakehouse v1)
Przekształca instrukcje w języku naturalnym w zapytania SQL przy użyciu najnowszego modelu text-davinci-003.
PlaidCloud Lakehouse oferuje wydajny sposób tworzenia zapytań SQL dzięki połączeniu OLAP i AI. Za pomocą tej funkcji instrukcje zapisane w języku naturalnym można przekształcić w instrukcje zapytań SQL zgodne ze schematem tabeli. Na przykład do funkcji można przekazać zdanie „Get all items that cost 10 dollars or less” i otrzymać na wyjściu odpowiednie zapytanie SQL „SELECT * FROM items WHERE price <= 10”.
Zobacz implementację źródłową.
Składnia Analyze
Dział zatytułowany „Składnia Analyze”func.ai_to_sql('<natural-language-instruction>')Przykłady Analyze
Dział zatytułowany „Przykłady Analyze”W tym przykładzie funkcja AI_TO_SQL generuje instrukcję zapytania SQL na podstawie instrukcji, a następnie wygenerowana instrukcja jest wykonywana w celu uzyskania wyników zapytania.
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')Funkcja generuje na wyjściu następującą instrukcję 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;Składnia SQL
Dział zatytułowany „Składnia SQL”USE <your-database>;SELECT * FROM ai_to_sql('<natural-language-instruction>');Przykłady SQL
Dział zatytułowany „Przykłady SQL”W tym przykładzie funkcja AI_TO_SQL generuje instrukcję zapytania SQL na podstawie instrukcji, a następnie wygenerowana instrukcja jest wykonywana w celu uzyskania wyników zapytania.
- Przygotuj dane.
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');- Uruchom funkcję AI_TO_SQL, przekazując jako dane wejściowe instrukcję napisaną po angielsku.
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');Funkcja generuje na wyjściu następującą instrukcję 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;- Uruchom wygenerowaną instrukcję SQL, aby uzyskać wyniki zapytania.
┌─────────┬─────────────┬─────────────┐│ name │ order_count │ total_spent │├─────────┼─────────────┼─────────────┤│ Bob │ 2 │ 2020.00 ││ Alice │ 2 │ 1020.00 ││ Charlie │ 2 │ 700.00 │└─────────┴─────────────┴─────────────┘