Text an SQL mit LLMsText an SQL mit LLMs
Bild von Autor | Leinwand

Bei großen Lagnuage -Modellen (LLMs) ist heute jeder ein Coder! Dies ist eine Nachricht, die Sie aus den LLM -Promo -Materialien erhalten. Es ist offensichtlich nicht wahr, genau wie jede Anzeige. Die Codierung ist viel mehr als das Erzeugnis von Code mit brauner Geschwindigkeit. Die Übersetzung von Englisch (oder anderen natürlichen Sprachen) in ausführbare SQL -Abfragen ist jedoch eine der überzeugendsten Verwendungen von LLMs und hat seinen Platz in der Welt.

# Warum LLMs verwenden, um SQL zu generieren?

Es gibt verschiedene Vorteile bei der Verwendung von LLMs, um SQL zu generieren, und wie bei allem gibt es auch einige Nachteile.

LLMs, um SQL zu generierenLLMs, um SQL zu generieren

# Zwei Arten von Textual content-to-SQL-LLMs

Wir können zwischen zwei sehr breiten Arten von Textual content-to-SQL-Technologien unterscheiden, die derzeit hinsichtlich des Zugriffs auf Ihr Datenbankschema verfügbar sind.

  1. LLMs ohne direkten Zugriff
  2. LLMs mit direktem Zugriff

// 1. LLMs ohne direkten Zugriff auf das Datenbankschema

Diese LLMs verbinden oder führen Abfragen nicht mit der tatsächlichen Datenbank her oder führen Sie sie nicht aus. Am nächsten können Sie die Datensätze hochladen, die Sie abfragen möchten. Diese Instruments beruhen darauf, dass Sie einen Kontext über Ihr Schema bereitstellen.

Werkzeugbeispiele:

Anwendungsfälle:

  • Abfrage und Prototyping
  • Lernen und Lehren
  • Statische Code -Generierung für die spätere Überprüfung

// 2. LLMs mit direktem Zugriff auf das Datenbankschema

Diese LLMs verbinden sich direkt mit Ihren Stay -Datenquellen, wie z. B. PostgreSQLAnwesend SchneeflockeAnwesend BigQueryoder Rotverschiebung. Sie ermöglichen es Ihnen, Ergebnisse aus SQL -Abfragen stay in Ihrer Datenbank zu generieren, auszuführen und zurückzugeben.

Werkzeugbeispiele:

Anwendungsfälle:

  • Konversationsanalysen für Geschäftsanwender
  • Echtzeit-Datenerforschung
  • Eingebettete KI -Assistenten in BI -Plattformen

# Schritt für Schritt: Wie man vom Textual content zu SQL geht

Der grundlegende Workflow, SQL aus dem Textual content zu holen, ist ähnlich, unabhängig davon, ob Sie getrennte oder verbundene LLMs verwenden.

Von Text zu SQLVon Text zu SQL

Wir werden versuchen, eine zu lösen Interviewfrage von Shopify und Amazon Verwenden der obigen Schritte in Chatgpt.

// 1. Definieren Sie das Schema

Damit die Abfrage an Ihren Daten arbeitet, muss die LLM Ihre Datenstruktur klar verstehen. Dies umfasst typischerweise:

  • Tabellennamen
  • Spaltennamen und Typen
  • Beziehungen zwischen Tabellen (Verbindungen, Schlüssel)

Diese Informationen können direkt in die Eingabeaufforderung übergeben oder dynamisch mithilfe von Dynamik abgerufen werden Vektorsuche innerhalb der retrieval-aus-generierten Technology (LAG) Pipeline.

// 2. Aufforderung mit natürlicher Sprache

Die Eingabeaufforderung besteht in der Regel aus zwei Segmenten:

  • Schema -Definition
  • Frage (en), für die wir eine SQL -Antwort benötigen

Beispiel: Lassen Sie mich Ihnen zunächst eine schnelle Struktur zur Verfügung stellen, die Platzhalter enthält. Wir werden dann eine tatsächliche Eingabeaufforderung schreiben.

Wir werden verwenden Rollenspielaufforderungwas bedeutet, Chatgpt zu unterweisen, eine bestimmte Rolle zu übernehmen.

Hier erfahren Sie, wie Sie die Eingabeaufforderung strukturieren.

Dataset: My dataset consists of (variety of tables) tables.

The primary one is (desk “” not discovered /)
with the next columns and knowledge sorts: (column names and knowledge sorts) The second desk is (desk “” not discovered /)
with the next columns and knowledge sorts: (column names and knowledge sorts) Query: (present a query to be answered) Assumptions: (present assumptions for fixing the query) Function: (describe a job LLM has to play)

Schreiben wir nun eine tatsächliche Aufforderung, die unsere Interviewfragen löst.

Hier ist es und wir hoffen, dass es eine korrekte SQL -Lösung bietet. Die Spaltennamen, Datentypen, Frage und Annahmen werden gerade aus der Frage selbst eingefügt.

Dataset: My dataset consists of two tables.

The primary one is "clients" with the next columns and knowledge sorts:

deal with:
textual content
metropolis:
textual content
first_name:
textual content
id:
bigint
last_name:
textual content
phone_number:
textual content

The second desk is "orders" with the next columns and knowledge sorts:

cust_id:
bigint
id:
bigint
order_date:
date
order_details:
textual content
total_order_cost:
bigint

Query: Discover the purchasers with the best each day whole order value between 2019-02-01 and 2019-05-01. If a buyer had a couple of order on a sure day, sum the order prices each day. Output every buyer's first title, whole value of their objects, and the date.

Assumption: For simplicity, you may assume that each first title within the dataset is exclusive.

Function: Act as a SQL knowledgeable and write a PostgreSQL question that solutions the query.

// 3. Generieren Sie die SQL -Abfrage

In dieser Section generiert der LLM Ihrer Wahl die SQL -Abfrage.

Beispiel: Hier ist der für uns produzierte Postgresql -Code -Chatgpt.

SELECT
    c.first_name,
    daily_totals.order_date,
    daily_totals.total_cost
FROM (
    SELECT
        cust_id,
        order_date,
        SUM(total_order_cost) AS total_cost
    FROM orders
    WHERE order_date BETWEEN '2019-02-01' AND '2019-05-01'
    GROUP BY cust_id, order_date
) AS daily_totals
JOIN clients c ON c.id = daily_totals.cust_id
WHERE (daily_totals.cust_id, daily_totals.order_date) IN (
    SELECT
        cust_id,
        order_date
    FROM (
        SELECT
            cust_id,
            order_date,
            SUM(total_order_cost) AS total_cost,
            RANK() OVER (ORDER BY SUM(total_order_cost) DESC) AS rnk
        FROM orders
        WHERE order_date BETWEEN '2019-02-01' AND '2019-05-01'
        GROUP BY cust_id, order_date
    ) ranked
    WHERE rnk = 1
);

// 4. Führen Sie die Abfrage aus

Jetzt können Sie die Abfrage ausführen, sei es direkt (wenn Ihr LLM Stay -Verbindungen unterstützt) oder durch Kopieren und Ausführen in Ihrem Datenbanksystem.

Beispiel: In unserem Fall kopieren wir den Code in den StratasCratch -Code -Editor und verwenden die Schaltfläche „Lösung“, um die Lösung zu validieren.

Dies gibt es aus und es ist eine korrekte Lösung. Bravo für Chatgpt! Es hat es beim ersten Versuch genagelt!

First_Name order_date Total_Cost
Jill 2019-04-19 275
Markieren 2019-04-19 275

// 5. Überprüfen, visualisieren und verfeinern

Abhängig vom Zweck der Verwendung von LLMs zum Schreiben von SQL -Code kann dieser Schritt non-compulsory sein. In der Geschäftswelt würden Sie die Abfrageausgabe in einem benutzerfreundlichen Format in der Regel vorstellen, das in der Regel Folgendes umfasst:

  • Ergebnisse als Tabelle und/oder Diagramm anzeigen
  • Erlauben Sie den Observe-up-Anforderungen (z. B. „Können Sie die Kundenstadt einbeziehen?“) Und Bereitstellung der geänderten Abfrage und Ausgabe

# Fallstricke und Finest Practices

In unserem Beispiel hat Chatgpt sofort die richtige Antwort ausgedacht. Dies bedeutet jedoch nicht, dass dies immer der Fall ist, insbesondere wenn Daten und Anforderungen komplizierter werden. Die Verwendung von LLMs, um SQL -Abfragen aus Textual content zu erhalten, erfolgt nicht ohne Fallstricke. Sie können sie vermeiden, indem Sie einige Finest Practices anwenden, wenn Sie die Erzeugung von LLM -Abfragen zu einem Teil Ihres Information Science -Workflows machen möchten.

Fallstricke und Best PracticesFallstricke und Best Practices

# Abschluss

LLMs können Ihr bester Freund sein, wenn Sie SQL -Abfragen aus Textual content erstellen möchten. Um jedoch das Beste aus diesen Instruments zu machen, müssen Sie ein klares Verständnis dafür haben, was Sie erreichen möchten, und die Anwendungsfälle, in denen die Verwendung von LLMs von Vorteil ist.

Dieser Artikel enthält Ihnen solche Richtlinien sowie ein Beispiel dafür, wie Sie einen LLM in der natürlichen Sprache fordern und einen funktionierenden SQL -Code erhalten.

Nate Rosidi ist Datenwissenschaftler und in Produktstrategie. Er ist außerdem eine zusätzliche Professorin für Lehranalysen und Gründer von Stratascratch, einer Plattform, die Datenwissenschaftlern hilft, sich auf ihre Interviews mit echten Interviewfragen von High -Unternehmen vorzubereiten. Nate schreibt über die neuesten Tendencies auf dem Karrieremarkt, gibt Interviewberatung, teilt Datenwissenschaftsprojekte und deckt alles SQL ab.



Von admin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert