Follow

Doğal Dilden Veritabanı ve API Sorgularına: Operasyon Ekipleri İçin Text-to-SQL ve Text-to-CLI Ajanları

SQL veya CLI sözdizimini ezbere bilmeyen operasyon ekiplerinin doğal dil ile veri sorgulayabilmesini sağlayan text-to-SQL/CLI yaklaşımlarını anlatıyorum.
Text-to-SQL ve Text-to-CLI Ajanları makalesi kapak görseli

Operasyon ekibindeki birinin ihtiyaç duyduğu bilgi çoğu zaman basit bir SQL sorgusuyla saniyeler içinde alınabilir — ama SQL bilmediği için ya bana ya da veritabanı ekibine talep açıyor. MSSQL yönetiminde sürekli karşılaştığım bir durum bu, ve text-to-SQL yaklaşımı bu bağımlılığı azaltma potansiyeli taşıyor.

Nasıl Çalışıyor?

Mantık basit: kullanıcının doğal dilde yazdığı soru (“geçen ay açılan ve hâlâ kapanmamış destek taleplerini göster”), veritabanı şemasının bir açıklamasıyla birlikte bir dil modeline veriliyor ve model geçerli bir SQL sorgusu üretiyor.

Şema bilgisi: tickets (id, title, status, created_date, department)
Kullanıcı sorusu: "Geçen ay açılan ve hâlâ kapanmamış talepleri göster"

Üretilen SQL:
SELECT id, title, department, created_date
FROM tickets
WHERE status != 'Closed'
  AND created_date >= DATEADD(month, -1, GETDATE())

Vazgeçemediğim Bir Kural: Salt Okunur Erişim

Bu tür bir sistem kurarken verdiğim en önemli karar, üretilen SQL’in sadece salt okunur bir veritabanı kullanıcısıyla çalıştırılmasıydı. Bir modelin — yanlışlıkla ya da kötü niyetli bir istemle — veri silen veya değiştiren bir sorgu üretme riski, bu katı sınırlama olmadan kabul edilemez.

CLI Komutlarına Genişletmek

Aynı mantık CLI komutlarına da uygulanabiliyor: “SRV-WEB01’de disk kullanımını göster” gibi bir istek otomatik olarak doğru PowerShell Remoting komutuna dönüştürülebilir. Ama burada risk SQL’den daha yüksek çünkü bir CLI komutu sistem durumunu doğrudan değiştirebilir. Bu yüzden text-to-CLI uygulamalarımda üretilen komutu çalıştırmadan önce mutlaka insana gösterip onay istiyorum, hiçbir zaman otomatik yürütmüyorum.

Ne Zaman Güveniyorum, Ne Zaman Güvenmiyorum

Şema basit ve sorular net olduğunda sistem oldukça iyi çalışıyor. Karmaşık join’ler ya da “aktif müşteriler” gibi şirkete özgü, belirsiz iş mantığı içeren sorularda hata oranı artıyor — bu yüzden karmaşık üretilen sorguları çalıştırmadan önce gözden geçirmeyi alışkanlık haline getirdim.

Son Not

Bu sistemlerin asıl değeri “SQL bilmeyen birini SQL uzmanı yapmak” değil, basit-orta karmaşıklıktaki tekrar eden sorguları bağımsızlaştırmak. Karmaşık analitik sorular hâlâ veritabanı ekibinin uzmanlığını gerektiriyor — ve bunda bir sorun görmüyorum. Doğru güvenlik sınırlarıyla (salt okunur erişim, insan onayı) kurgulandığında text-to-SQL/CLI, “her şeyi otomatik çalıştıran” değil doğru sorguyu önerip son kararı insana bırakan bir asistan olarak gerçek değer üretiyor.

Comments
Join the Discussion and Share Your Opinion
Add a Comment

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir


Newsletter
Join Design Community
Get the latest updates, creative tips, and exclusive resources straight to your inbox. Let’s explore the future of design and innovation together.