Prompt engineering och LLM-optimering för utvecklare · Lektion

Generera SQL-frågor från naturligt språk

Lär er instruera en LLM att översätta frågor på vanlig engelska till korrekt SQL genom att ange schemakontext, exempel och säkerhetsräcken.

Lektion 4 av 413 steg

Generera SQL-frågor från naturligt språk är en gratis lektion i Prompt engineering och LLM-optimering för utvecklare på CoddyKit. Detta är lektion 4 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Prompt engineering och LLM-optimering för utvecklare, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Prompt engineering och LLM-optimering för utvecklare innehåller totalt 4 lektioner.

Översikt över Text-to-SQL

En av de mest praktiska användningarna av LLM:er för utvecklare är att omvandla en vanlig fråga som How many orders shipped last week? till en körbar SQL-fråga.

Om det görs på rätt sätt kan personer utan expertkunskaper ställa frågor till data, samtidigt som den dagliga analysen går snabbare.

Modellen behöver schemat

En LLM kan inte gissa era tabell- och kolumnnamn. Inkludera alltid det relevanta schemat i prompten så att modellen refererar till verkliga fält.

Schema:
orders(id, customer_id, status, total, created_at)
customers(id, name, country)

En grundläggande Text-to-SQL-prompt

Kombinera schemat, frågan och en instruktion om att endast returnera SQL.

Given the schema above, write a single
Postgres query. Return only SQL.
Question: total revenue per country last month.

Ange dialekten

SQL-dialekter skiljer sig åt (Postgres, MySQL, SQLite, BigQuery). Ange vilken ni använder, annars kan modellen generera funktioner som databasen inte stöder.

Few-shot-exempel hjälper

Genom att visa ett eller två par med fråga och SQL lär ni modellen era konventioner, till exempel hur ni formaterar datum eller namnger alias.

Q: customers from Japan
SQL: SELECT * FROM customers WHERE country = 'Japan';
Q: orders over 100
SQL: SELECT * FROM orders WHERE total > 100;

Hantera joins

För frågor som omfattar flera tabeller bör ni antyda relationerna i schemat (främmande nycklar), så att modellen gör rätt join i stället för att gissa.

-- orders.customer_id references customers.id
SELECT c.country, SUM(o.total)
FROM orders o JOIN customers c
  ON o.customer_id = c.id
GROUP BY c.country;

Skyddsräcke: endast läsning

Kör aldrig modellgenererad SQL med skrivbehörighet. Begränsa anslutningen till enbart SELECT och avvisa frågor som innehåller DELETE, UPDATE eller DROP.

if (/\b(delete|update|drop|insert)\b/i.test(sql)) {
  throw new Error('Only read queries allowed');
}

Validera före körning

Parsa eller använd EXPLAIN på frågan innan ni kör den. Det fångar syntaxfel och låter er avvisa frågor som berör tabeller utanför en tillåten lista.

EXPLAIN SELECT ...; -- check plan, no data fetched

Självkorrigeringsloop

Om frågan ger ett fel skickar ni tillbaka databasens felmeddelande till modellen och ber den korrigera SQL-koden. Två eller tre försök löser vanligtvis de flesta misstagen.

The query failed with: column "revenue"
does not exist. Fix the SQL.

Förklara resultat

Efter att frågan har körts kan ni be modellen sammanfatta raderna på ett enkelt språk, vilket sluter loopen från fråga till begripligt svar.

Begränsningar att komma ihåg

  • Otydliga frågor ger otydlig SQL.
  • Stora scheman får kanske inte plats i kontexten; hämta de relevanta tabellerna.
  • Verifiera alltid aggregat i kritiska rapporter.

Snabbkontroll

Testa din förståelse av text-till-SQL.

Sammanfattning

Text-to-SQL fungerar genom att ge modellen schemat, dialekten och few-shot-exempel och sedan validera utdatan. Kör alltid genererad SQL i skrivskyddat läge, validera före körning och använd en självkorrigeringsloop vid fel.

Gratis att börja

Lär dig Prompt engineering och LLM-optimering för utvecklare med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
12
Lektioner
48

Vanliga frågor

Är lektionen ”Generera SQL-frågor från naturligt språk” gratis?

Ja – hela texten till ”Generera SQL-frågor från naturligt språk” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Prompt engineering och LLM-optimering för utvecklare, kan Ni uppgradera till CoddyKit PRO. Kursen i Prompt engineering och LLM-optimering för utvecklare innehåller totalt 4 lektioner.

Vad lär jag mig i ”Generera SQL-frågor från naturligt språk”?

Lär er instruera en LLM att översätta frågor på vanlig engelska till korrekt SQL genom att ange schemakontext, exempel och säkerhetsräcken. Ni övar på Prompt engineering och LLM-optimering för utvecklare med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Prompt engineering och LLM-optimering för utvecklare?

Du behöver inga förkunskaper. Utbildningen i Prompt engineering och LLM-optimering för utvecklare på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.

Hur lång tid tar lektionen ”Generera SQL-frågor från naturligt språk”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Prompt engineering och LLM-optimering för utvecklare-lektionen?

Ja. Varje Prompt engineering och LLM-optimering för utvecklare-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Kodgenerering och refaktorering
  2. Felsökning och generering av testfall
  3. Dataextraktion och sammanfattning
  4. Generera SQL-frågor från naturligt språk
← Tillbaka till Prompt engineering och LLM-optimering för utvecklare