Türkçe SQL Tahmin Sistemi

Türkçe doğal dil sorularından tablo, kolon ve filtre bilgisi üreten hibrit bir sorgu tahmin sistemidir. Sentence embedding, alan bilgisine dayalı kurallar ve büyük dil modeli (LLM) birlikte kullanılır.

Sistem doğrudan SQL sorgusu çalıştırmaz. Çıktısı, uygulama tarafından doğrulanıp SQL’e dönüştürülebilecek yapılandırılmış JSON’dur.

Sistem Bilgileri

Alan Açıklama
Dil Türkçe
Görev Doğal dilden yapılandırılmış sorgu tahmini
Mimari Embedding + kural katmanı + LLM
Kapsam Projede tanımlanmış tablo ve kolon şeması
Embedding modeli Model adı ve sürümü belirtilmemiştir
Filtre üretim modeli Model adı ve sürümü belirtilmemiştir
Geliştirici Yayın öncesinde eklenmelidir
Lisans Yayın öncesinde belirlenmelidir

Bu depo, tek bir modelden ziyade birden fazla bileşenden oluşan bir sorgu üretim hattını açıklamaktadır.

Amaç ve Kullanım Alanları

Sistem, kullanıcının sorusundan şu bilgileri çıkarmayı hedefler:

  • Sorgulanacak tablo.
  • Seçilecek kolon veya kolonlar.
  • Uygulanacak filtrelerin kolon, operatör ve değer bilgileri.

Hedeflenen kullanım alanları; Türkçe veri sorgulama arayüzleri, raporlama asistanları ve tanımlı bir veritabanı şeması üzerinde çalışan doğal dil tabanlı uygulamalardır.

Mevcut alan sözlüğü; bakım, ruhsat, imar, tapu, mülkiyet, yapı ve sigorta gibi konuları kapsar. Yeni alanlara uyarlama için şema, anahtar kelime listeleri ve kurallar güncellenmelidir.

Girdi ve Çıktı Örneği

Örnek kullanıcı sorusu:

2024 yılında biten sigortaların bitiş tarihlerini getir.

Hedeflenen çıktı:

{
  "table": "Sigortalar",
  "columns": ["BitisTarihi"],
  "filters": [
    {
      "column": "BitisTarihi",
      "operator": ">=",
      "value": "2024-01-01T00:00:00Z"
    },
    {
      "column": "BitisTarihi",
      "operator": "<=",
      "value": "2024-12-31T23:59:59Z"
    }
  ]
}

Bu çıktı, beklenen formatı gösteren bir örnektir; ölçülmüş bir test sonucu değildir. Tarih sınırları ve saat dilimi, uygulamanın veri saklama kurallarıyla uyumlu olmalıdır.

Çalışma Yöntemi

1. Embedding hazırlığı

Tablo konularını ve kolon anlamlarını temsil eden anahtar kelimeler vektörlere dönüştürülür. Tablo ve kolon embeddingleri ayrı dosyalarda saklanır.

2. Tablo seçimi

Kullanıcı sorusunun embeddingi ile tablo/domain embeddingleri arasında kosinüs benzerliği hesaplanır. Ardından alan kuralları adayların skorlarını düzenler.

Örneğin:

İfade Desteklenen tablo
hisse, pay Mulkiyetler
oda, salon, kat, m² Yapilar
TAKS, KAKS, çekme mesafesi Imarlar
poliçe, kasko Sigortalar

3. Kolon seçimi

Seçilen tablonun kolonları benzerlik skorlarıyla değerlendirilir. Para birimi ve zaman yönü gibi ipuçları kolon seçimini destekler.

Örneğin “dolar” ifadesi TutarUSD kolonunu; “gelecek” ifadesi ilgili sonraki tarih veya bitiş tarihi kolonlarını destekleyebilir.

4. Filtre üretimi

schema.json üzerinden kolonun metin, sayısal veya tarih türünde olduğu belirlenir. LLM’e bu bilgiyle birlikte JSON üretimini sınırlandıran bir prompt verilir.

Çıktıdan ilk dengeli JSON bloğu alınır. Ayrıştırma başarısız olduğunda boş filtre listesine dönülür. Bu davranış, filtre üretiminin başarılı olduğu anlamına gelmez.

5. Değerlendirme

Test soruları üzerinde tablo ve kolon tahminleri değerlendirilir. En yüksek iki aday arasındaki skor farkı, kararsız tahminlerin incelenmesinde kullanılır.

Temel Dosyalar

Dosya İşlev
table_embedding.ipynb Tablo/domain embeddinglerinin hazırlanması
colums_embedding.ipynb Kolon embeddinglerinin hazırlanması
schema.ipynb Tablo, kolon ve veri tipi şemasının hazırlanması
main.ipynb Uçtan uca tahmin ve filtre üretimi
yedek.ipynb Alternatif veya önceki akış
schema.json Tablo ve kolon veri tipleri
domain_keyword_embeddings.json/.npy Tablo/domain vektörleri
column_embeddings.json/.npy Kolon vektörleri
embedding/table.py Tablo tahmini ve hata analizi
embedding/column.py Kural destekli tablo ve kolon tahmini
embedding/test.py İlk iki adayın skor farkı analizi
embedding/threshold.py JSON üzerinden kural uygulama
test_questions2.json Değerlendirme soruları

Kullanılan Teknolojiler

  • Sentence Transformers: Soru ve anahtar kelimelerin embeddinglerini üretir.
  • scikit-learn: Kosinüs benzerliği hesaplar.
  • RapidFuzz: Benzer yazımları ve yazım hatalarını eşleştirmeyi destekler.
  • Transformers ve PyTorch: LLM tabanlı filtre üretiminde kullanılır.
  • FAISS CPU: Projede bulunur; ana akıştaki kullanımı sınırlıdır.

Eğitim ve Veri Bilgisi

Mevcut proje açıklaması, anahtar kelime embeddinglerinin hazırlanmasını ve önceden eğitilmiş modellerin kullanımını göstermektedir. Projeye özel fine-tuning yapıldığına ilişkin bilgi verilmemiştir.

Alan anahtar kelimeleri, kolon ifadeleri ve test soruları projeye özgüdür. Veri kaynağı, örnek sayısı, oluşturma yöntemi ve eğitim/test ayrımı henüz belgelenmemiştir.

Performans ve Değerlendirme

Projede toplu test ve hata analizi dosyaları bulunmaktadır. Ancak bu kartın hazırlanmasında doğrulanmış sayısal sonuçlar paylaşılmamıştır.

Ölçüt Durum
Tablo Top-1 doğruluğu Sayısal sonuç belirtilmemiştir
Kolon tahmin başarımı Sayısal sonuç belirtilmemiştir
Filtre doğruluğu Sayısal sonuç belirtilmemiştir
JSON ayrıştırma başarısı Sayısal sonuç belirtilmemiştir
Uçtan uca sorgu doğruluğu Sayısal sonuç belirtilmemiştir

Performans sonuçları; test kümesi boyutu, model sürümleri ve kullanılan kural sürümüyle birlikte raporlanmalıdır. Benzerlik skorları olasılık veya doğruluk yüzdesi olarak yorumlanmamalıdır.

Sınırlamalar

  • Tanımlanmamış tablo ve kolonlara genelleme kapasitesi değerlendirilmemiştir.
  • Kural sayısı arttıkça bakım yükü ve kural çakışmaları artabilir.
  • Notebook ve script sürümleri farklı sonuçlar üretebilir.
  • Yazım hataları, belirsiz ifadeler ve birden fazla tablo gerektiren sorular hatalı tahminlere yol açabilir.
  • Geçerli JSON üretilmesi, sorgunun anlam bakımından doğru olduğunu garanti etmez.
  • Boş filtreyle devam edilmesi, kullanıcının istediğinden daha geniş bir sonuç kümesi oluşturabilir.
  • Hibrit yaklaşımın diğer yöntemlerden üstünlüğü, karşılaştırmalı sonuçlarla henüz gösterilmemiştir.

Güvenli Kullanım

Üretilen çıktı çalıştırılmadan önce tablo ve kolon adları şemayla, operatörler izin verilen listeyle ve değerler veri tipleriyle doğrulanmalıdır.

SQL dönüşümünde parametreli sorgular kullanılmalı; erişim yetkileri ve veri kapsamı uygulama tarafından uygulanmalıdır. Filtre üretimi başarısız olduğunda kullanıcıya açıklama yapılması veya sorgunun incelemeye alınması önerilir.

Harici bir LLM servisi kullanılması durumunda kullanıcı soruları ve şema bilgilerinin aktarımı, kurumun veri gizliliği kurallarına göre değerlendirilmelidir.

Tekrarlanabilirlik

Aynı sonuçları yeniden üretebilmek için embedding ve LLM kimlikleri, model revizyonları, bağımlılık sürümleri, üretim parametreleri, şema, kurallar ve embedding dosyaları birlikte sürümlenmelidir.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support