Text-to-SQL Nedir? Doğal Dilden SQL'e Çeviri, Sade Anlatım
Text-to-SQL (NL2SQL), doğal dildeki bir soruyu çalıştırılabilir SQL sorgusuna çeviren yapay zeka tekniğidir. Nasıl çalışır, sınırları neler, güvenli kullanım için nelere bakılır? Pazarlamasız bir rehber.
Son bir yılda "text to sql" aramaları belirgin şekilde arttı; çünkü büyük dil modelleri bu eski problemi nihayet kullanılabilir hale getirdi. Bu yazı terimi pazarlama diline kaçmadan açıklıyor: ne yapar, nasıl yapar, nerede tökezler.
Text-to-SQL tam olarak nedir?
Text-to-SQL (literatürde NL2SQL olarak da geçer), doğal dilde yazılmış bir soruyu ("geçen ay en çok sipariş veren 10 müşteri kim?") ilgili veritabanında çalıştırılabilir bir SQL sorgusuna çeviren tekniğin adıdır. Girdi insan cümlesi, çıktı SQL; aradaki çeviriyi bir yapay zeka modeli yapar.
Terim ailesi kafa karıştırabilir: text-to-SQL çeviri tekniğinin adı, NLQ (natural language query) ise bu tekniğin kullanıcıya sunulduğu arayüz deneyiminin adıdır. Yani NLQ özelliği sunan bir ürün, motor olarak çoğunlukla text-to-SQL kullanır.
Nasıl çalışır?
- Model, veritabanının şemasını görür: tablo adları, kolon adları ve tipleri. Veriyi değil, verinin haritasını.
- Kullanıcının sorusu ve bu şema birlikte modele verilir; model soruya uyan SQL'i üretir.
- Üretilen sorgu veritabanında çalıştırılır; sonuç tablo ya da grafik olarak gösterilir.
Kritik ayrıntı şemanın kalitesidir. "musteriler" ve "siparisler" gibi anlamlı adlar taşıyan bir şemada model isabetli çalışır; "T001", "F17" gibi kriptik adlarla dolu bir şemada isabet düşer. Bu yüzden ciddi text-to-SQL araçları kolonlara açıklama ekleme imkânı sunar.
Ne kadar doğru? Dürüst cevap
Akademik kıyaslamalarda (Spider, BIRD) en iyi sistemler bile yüzde yüz doğruluğa ulaşmıyor; gerçek dünya şemaları kıyaslamalardan daha dağınık olduğu için üretimde de yüzde yüz beklememelisiniz. Belirsiz sorular ("en iyi müşteriler" derken neye göre en iyi?) ve karmaşık çok-tablolu sorgular en sık tökezlenen yerlerdir.
Bu yüzden doğruluğun nasıl ölçüldüğü, oranın kendisinden daha önemlidir. Üretilen SQL metninin "doğru görünmesi" ile çalıştırıldığında doğru veriyi döndürmesi ayrı şeylerdir; ölçüm ikincisi üzerinden yapılmalıdır. Biz PerSight'ta bunu dört veritabanı motorunda yüzlerce gerçek soruyla düzenli ölçüyor ve sonucu açık yöntemle yayımlıyoruz.
Güvenli kullanım için üç şart
- Salt-okunur çalışma: üretilen sorgu yalnızca SELECT olabilmeli; yazma ve silme teknik olarak engellenmeli.
- Görünür SQL: üretilen sorgu kara kutuda kalmamalı; çalıştırmadan önce görülebilmeli ve düzenlenebilmeli.
- Veri yerelliği: modele yalnızca şema ve soru gitmeli; satır verisi buluta taşınmamalı.
Sık sorulan sorular
- Text-to-SQL ile NL2SQL aynı şey mi?
- Evet, aynı tekniğin iki adı. Akademik makalelerde NL2SQL, ürün dünyasında text-to-SQL yazımı daha yaygın.
- ChatGPT'ye SQL yazdırmakla text-to-SQL aracı kullanmak arasındaki fark ne?
- ChatGPT şemanızı bilmez; her seferinde tablo yapısını elle anlatmanız gerekir ve ürettiği sorguyu kendiniz kopyalayıp çalıştırırsınız. Text-to-SQL aracı şemaya bağlıdır, sorguyu güvenlik katmanından (salt-okunur) geçirir ve sonucu doğrudan gösterir. Ayrıca kurumsal veride sohbet botuna şema veya veri yapıştırmak çoğu şirkette politika ihlalidir.
- Türkçe sorularla çalışır mı?
- Modern modeller çok dillidir; Türkçe soru, İngilizce şema adlarıyla bile eşleşir. PerSight özelinde birinci dil Türkçedir; sorunuzu Türkçe yazarsınız, üretilen SQL'in açıklamasını da Türkçe okursunuz.
- Text-to-SQL, SQL bilen birinin yerini tutar mı?
- Rutin soru-cevap sorgularında büyük ölçüde evet; veri modelleme, performans ayarı ve karmaşık analiz işlerinde hayır. En sağlıklı kullanım, üretilen sorgunun görünür olduğu ve gerektiğinde bilen birinin denetleyebildiği kurgudur.
Text-to-SQL'i kendi veritabanınızda denemek isterseniz PerSight tam bu üç şartla çalışır: salt-okunur, görünür SQL, veriniz makinenizde. Beta sırasına persight.ai/beta adresinden girebilirsiniz.
Kaynaklar
İlgili yazılar
- NLQ (Natural Language Query) Nedir? Veriye Kendi Dilinizle UlaşmakNLQ yani natural language query, veriye SQL veya filtre ekranı yerine kendi cümlenizle ulaşma deneyimidir. Text-to-SQL ile ilişkisi, self-servis BI'daki yeri ve sınırları bu yazıda.
- Yapay Zeka ile SQL Üretmek Güvenli mi? Riskler ve Alınacak ÖnlemlerAI SQL generator araçları ve ChatGPT ile SQL yazdırmak yaygınlaştı; peki kurumsal veride güvenli mi? Dört gerçek risk ve her biri için somut önlem: salt-okunur kullanıcı, görünür SQL, veri yerelliği, ölçüm.
- Doğal Dille Veritabanı Sorgulama Nasıl Çalışır (ve Görünür Sorgu Neden Önemli)Doğal dilden SQL üretimi sade bir anlatımla: sorunuz nasıl sorguya dönüşür, salt-okunur ve her zaman görünür bir sorgu neden daha güvenli ve PerSight verinizi neden makinenizde tutar.