Upload 466 files
Browse filesThis view is limited to 50 files because it contains too many changes. See raw diff
- .dockerignore +12 -0
- .env.example +15 -0
- .gitattributes +62 -0
- .gitignore +10 -0
- DENEY_KILAVUZU.md +256 -0
- Dockerfile +18 -0
- KURULUM.md +257 -0
- LICENSE +26 -0
- README.md +197 -0
- Tablo2SQL-TR_Deney_Kilavuzu.docx +0 -0
- agir_kume/README.md +64 -0
- agir_kume/altin_denetimi.json +44 -0
- agir_kume/belgeler/belediye_00_yesilvadi_2024_butce.pdf +0 -0
- agir_kume/belgeler/belediye_01_akkopru_mahalle.pdf +0 -0
- agir_kume/belgeler/belediye_07_akkopru_personel.html +14 -0
- agir_kume/belgeler/belediye_10_yesilvadi_2025_tarife.pdf +0 -0
- agir_kume/belgeler/belediye_13_serinsu_2025_butce.pdf +0 -0
- agir_kume/belgeler/belediye_14_cinarli_mahalle.pdf +0 -0
- agir_kume/belgeler/belediye_20_cinarli_personel.pdf +0 -0
- agir_kume/belgeler/belediye_23_serinsu_2025_tarife.html +17 -0
- agir_kume/belgeler/belediye_26_kartaltepe_2025_butce.pdf +0 -0
- agir_kume/belgeler/belediye_27_bademli_mahalle.html +69 -0
- agir_kume/belgeler/belediye_33_bademli_personel.pdf +0 -0
- agir_kume/belgeler/belediye_36_kartaltepe_2026_tarife.pdf +0 -0
- agir_kume/belgeler/belediye_39_kumluca_ova_2024_butce.html +30 -0
- agir_kume/belgeler/belediye_40_gokdere_mahalle.pdf +0 -0
- agir_kume/belgeler/belediye_46_gokdere_personel.pdf +0 -0
- agir_kume/belgeler/belediye_49_kumluca_ova_2025_tarife.pdf +0 -0
- agir_kume/belgeler/il_03_deniztepe_2025_turizm.html +23 -0
- agir_kume/belgeler/il_04_ardicli_2024_konut.pdf +0 -0
- agir_kume/belgeler/il_05_deniztepe_2025_tufe.pdf +0 -0
- agir_kume/belgeler/il_08_deniztepe_2025_yatirim.pdf +0 -0
- agir_kume/belgeler/il_09_ardicli_enerji.pdf +0 -0
- agir_kume/belgeler/il_11_aksungur_2025_havalimani.html +23 -0
- agir_kume/belgeler/il_12_gokceova_kaza.pdf +0 -0
- agir_kume/belgeler/il_16_aksungur_2025_turizm.pdf +0 -0
- agir_kume/belgeler/il_17_kizilyar_2025_konut.pdf +0 -0
- agir_kume/belgeler/il_18_aksungur_2025_tufe.pdf +0 -0
- agir_kume/belgeler/il_21_aksungur_2024_yatirim.pdf +0 -0
- agir_kume/belgeler/il_22_kizilyar_enerji.pdf +0 -0
- agir_kume/belgeler/il_24_yaylacik_2025_havalimani.pdf +0 -0
- agir_kume/belgeler/il_25_deniztepe_kaza.pdf +0 -0
- agir_kume/belgeler/il_29_yaylacik_2025_turizm.pdf +0 -0
- agir_kume/belgeler/il_30_gokceova_2024_konut.pdf +0 -0
- agir_kume/belgeler/il_31_yaylacik_2024_tufe.html +22 -0
- agir_kume/belgeler/il_34_yaylacik_2025_yatirim.pdf +0 -0
- agir_kume/belgeler/il_35_gokceova_enerji.html +20 -0
- agir_kume/belgeler/il_37_ardicli_2024_havalimani.pdf +0 -0
- agir_kume/belgeler/il_38_aksungur_kaza.pdf +0 -0
- agir_kume/belgeler/il_42_ardicli_2025_turizm.pdf +0 -0
.dockerignore
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.venv
|
| 2 |
+
.env
|
| 3 |
+
.git
|
| 4 |
+
**/__pycache__
|
| 5 |
+
.pytest_cache
|
| 6 |
+
ayarlar/*.json
|
| 7 |
+
outputs/qa/db
|
| 8 |
+
outputs/.ai_onbellek.json
|
| 9 |
+
gercek_pilot/test_belgeler/*.pdf
|
| 10 |
+
gercek_pilot/db_test
|
| 11 |
+
*.zip
|
| 12 |
+
outputs/otomasyon
|
.env.example
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# İSTEĞE BAĞLI. Anahtarları uygulamadaki "Model bağlantıları" panelinden girmek en kolay yoldur
|
| 2 |
+
# (ayarlar/tablo2sql-ayarlar.json dosyasına kaydedilir). Anahtarı o dosyada tutmak istemiyorsanız
|
| 3 |
+
# bu dosyayı ".env" adıyla kopyalayın ve kullandığınız sağlayıcının anahtarını girin.
|
| 4 |
+
# .env dosyası uygulama açılırken okunur; anahtarlar arayüzde ayrıca yazılmak zorunda kalmaz.
|
| 5 |
+
# .env dosyasını kimseyle paylaşmayın.
|
| 6 |
+
|
| 7 |
+
# Claude (Anthropic) — https://console.anthropic.com
|
| 8 |
+
ANTHROPIC_API_KEY=
|
| 9 |
+
|
| 10 |
+
# OpenAI veya OpenAI uyumlu bir uç nokta (OpenRouter, vLLM, LM Studio…)
|
| 11 |
+
OPENAI_API_KEY=
|
| 12 |
+
# OPENAI_BASE_URL=https://api.openai.com/v1
|
| 13 |
+
|
| 14 |
+
# Ollama (yerel, anahtar gerekmez) — varsayılan http://localhost:11434
|
| 15 |
+
# OLLAMA_HOST=http://localhost:11434
|
.gitattributes
CHANGED
|
@@ -33,3 +33,65 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 36 |
+
assets/fonts/DejaVuSans-Bold.ttf filter=lfs diff=lfs merge=lfs -text
|
| 37 |
+
assets/fonts/DejaVuSans.ttf filter=lfs diff=lfs merge=lfs -text
|
| 38 |
+
docs/ekran/01_belgeler.png filter=lfs diff=lfs merge=lfs -text
|
| 39 |
+
docs/ekran/02_bilgi_tabani.png filter=lfs diff=lfs merge=lfs -text
|
| 40 |
+
docs/ekran/04_hata_katalogu.png filter=lfs diff=lfs merge=lfs -text
|
| 41 |
+
docs/ekran/06_otomasyon.png filter=lfs diff=lfs merge=lfs -text
|
| 42 |
+
docs/ekran/07_raporlar.png filter=lfs diff=lfs merge=lfs -text
|
| 43 |
+
docs/ekran/08_genel_rapor.png filter=lfs diff=lfs merge=lfs -text
|
| 44 |
+
docs/ekran/09_test_raporu.png filter=lfs diff=lfs merge=lfs -text
|
| 45 |
+
docs/ekran/10_soru_red.png filter=lfs diff=lfs merge=lfs -text
|
| 46 |
+
docs/img/en/01_genel_bakis.png filter=lfs diff=lfs merge=lfs -text
|
| 47 |
+
docs/img/en/02_kenar_cubugu.png filter=lfs diff=lfs merge=lfs -text
|
| 48 |
+
docs/img/en/03_cikarim_ham_izgara.png filter=lfs diff=lfs merge=lfs -text
|
| 49 |
+
docs/img/en/05_bilgi_tabani.png filter=lfs diff=lfs merge=lfs -text
|
| 50 |
+
docs/img/en/06_soru_cevap.png filter=lfs diff=lfs merge=lfs -text
|
| 51 |
+
docs/img/en/08_hata_katalogu.png filter=lfs diff=lfs merge=lfs -text
|
| 52 |
+
docs/img/en/09_degerlendirme.png filter=lfs diff=lfs merge=lfs -text
|
| 53 |
+
docs/img/en/10_model_senkron.png filter=lfs diff=lfs merge=lfs -text
|
| 54 |
+
docs/img/en/11_ai_oneriler.png filter=lfs diff=lfs merge=lfs -text
|
| 55 |
+
docs/img/en/13_kendini_duzeltme.png filter=lfs diff=lfs merge=lfs -text
|
| 56 |
+
docs/img/en/15_ollama.png filter=lfs diff=lfs merge=lfs -text
|
| 57 |
+
docs/img/en/16_karanlik_tema.png filter=lfs diff=lfs merge=lfs -text
|
| 58 |
+
docs/img/en/17_model_karsilastirma.png filter=lfs diff=lfs merge=lfs -text
|
| 59 |
+
docs/img/tr/01_genel_bakis.png filter=lfs diff=lfs merge=lfs -text
|
| 60 |
+
docs/img/tr/02_kenar_cubugu.png filter=lfs diff=lfs merge=lfs -text
|
| 61 |
+
docs/img/tr/03_cikarim_ham_izgara.png filter=lfs diff=lfs merge=lfs -text
|
| 62 |
+
docs/img/tr/05_bilgi_tabani.png filter=lfs diff=lfs merge=lfs -text
|
| 63 |
+
docs/img/tr/06_soru_cevap.png filter=lfs diff=lfs merge=lfs -text
|
| 64 |
+
docs/img/tr/08_hata_katalogu.png filter=lfs diff=lfs merge=lfs -text
|
| 65 |
+
docs/img/tr/09_degerlendirme.png filter=lfs diff=lfs merge=lfs -text
|
| 66 |
+
docs/img/tr/10_model_senkron.png filter=lfs diff=lfs merge=lfs -text
|
| 67 |
+
docs/img/tr/11_ai_oneriler.png filter=lfs diff=lfs merge=lfs -text
|
| 68 |
+
docs/img/tr/13_kendini_duzeltme.png filter=lfs diff=lfs merge=lfs -text
|
| 69 |
+
docs/img/tr/15_ollama.png filter=lfs diff=lfs merge=lfs -text
|
| 70 |
+
docs/img/tr/16_karanlik_tema.png filter=lfs diff=lfs merge=lfs -text
|
| 71 |
+
docs/img/tr/17_model_karsilastirma.png filter=lfs diff=lfs merge=lfs -text
|
| 72 |
+
docs/Tablo2SQL-TR_Kullanim_Kilavuzu.docx filter=lfs diff=lfs merge=lfs -text
|
| 73 |
+
docs/Tablo2SQL-TR_User_Guide.docx filter=lfs diff=lfs merge=lfs -text
|
| 74 |
+
gercek_pilot/rapor/img/01_cikarim.png filter=lfs diff=lfs merge=lfs -text
|
| 75 |
+
gercek_pilot/rapor/img/02_bilgi_tabani.png filter=lfs diff=lfs merge=lfs -text
|
| 76 |
+
gercek_pilot/rapor/img/03_soru_dogru.png filter=lfs diff=lfs merge=lfs -text
|
| 77 |
+
gercek_pilot/rapor/img/03_soru_red.png filter=lfs diff=lfs merge=lfs -text
|
| 78 |
+
gercek_pilot/rapor/img/03_soru_yanlis.png filter=lfs diff=lfs merge=lfs -text
|
| 79 |
+
gercek_pilot/rapor/img/04_hata_bozuk_yazi_tipi.png filter=lfs diff=lfs merge=lfs -text
|
| 80 |
+
gercek_pilot/rapor/img/05_hata_iki_sutunlu_bilanco.png filter=lfs diff=lfs merge=lfs -text
|
| 81 |
+
gercek_pilot/rapor/img/06_hata_cift_sayfa_duzeni.png filter=lfs diff=lfs merge=lfs -text
|
| 82 |
+
gercek_pilot/rapor/Tablo2SQL-TR_Gercek_Belge_Pilotu.docx filter=lfs diff=lfs merge=lfs -text
|
| 83 |
+
outputs/ekran/1_belgeler.png filter=lfs diff=lfs merge=lfs -text
|
| 84 |
+
outputs/ekran/2_bilgi.png filter=lfs diff=lfs merge=lfs -text
|
| 85 |
+
outputs/ekran/3_soru.png filter=lfs diff=lfs merge=lfs -text
|
| 86 |
+
outputs/ekran/4_hata.png filter=lfs diff=lfs merge=lfs -text
|
| 87 |
+
outputs/ekran/5_degerlendirme_calisma.png filter=lfs diff=lfs merge=lfs -text
|
| 88 |
+
outputs/ekran/5_degerlendirme.png filter=lfs diff=lfs merge=lfs -text
|
| 89 |
+
outputs/ekran/v2_en_dark_ask.png filter=lfs diff=lfs merge=lfs -text
|
| 90 |
+
outputs/ekran/v2_en_dark_docs.png filter=lfs diff=lfs merge=lfs -text
|
| 91 |
+
outputs/ekran/v2_en_dark_kb.png filter=lfs diff=lfs merge=lfs -text
|
| 92 |
+
outputs/ekran/v2_tr_light_ask.png filter=lfs diff=lfs merge=lfs -text
|
| 93 |
+
outputs/ekran/v2_tr_light_err.png filter=lfs diff=lfs merge=lfs -text
|
| 94 |
+
outputs/ekran/v2_tr_light_extract.png filter=lfs diff=lfs merge=lfs -text
|
| 95 |
+
outputs/ekran/v2_tr_light_kb.png filter=lfs diff=lfs merge=lfs -text
|
| 96 |
+
outputs/ekran/v2_tr_light_start.png filter=lfs diff=lfs merge=lfs -text
|
| 97 |
+
outputs/ekran/v2_tr_ollama_sidebar.png filter=lfs diff=lfs merge=lfs -text
|
.gitignore
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Anahtarlar ve kişisel ayarlar: asla paylaşmayın
|
| 2 |
+
.env
|
| 3 |
+
ayarlar/*.json
|
| 4 |
+
ayarlar/*.tmp
|
| 5 |
+
# Üretilen çıktılar ve önbellekler
|
| 6 |
+
__pycache__/
|
| 7 |
+
.pytest_cache/
|
| 8 |
+
.venv/
|
| 9 |
+
outputs/.ai_onbellek.json
|
| 10 |
+
outputs/qa/db/
|
DENEY_KILAVUZU.md
ADDED
|
@@ -0,0 +1,256 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
title: "Tablo2SQL-TR Deney Kılavuzu"
|
| 3 |
+
subtitle: "LLM deneylerini kendi bilgisayarında çalıştırmak için adım adım yönerge"
|
| 4 |
+
cover: "no"
|
| 5 |
+
---
|
| 6 |
+
|
| 7 |
+
# Bu kılavuz ne için?
|
| 8 |
+
|
| 9 |
+
Makaledeki sonuçlar şimdiye kadar yalnızca kural tabanlı motorla alındı. Bu kılavuzla aynı deneyleri **büyük dil modelleriyle (LLM)** çalıştıracaksın. İki deney var:
|
| 10 |
+
|
| 11 |
+
| Deney | Ne ölçer? | Çıktı klasörü |
|
| 12 |
+
|---|---|---|
|
| 13 |
+
| **1. Makale protokolü** | 99 soruluk ana test kümesi beş koşulda: döngü açık/kapalı, statik denetim kapalı, sayılar metin, İngilizce yerel ayar. Ardından pilot, stres kümesi ve ağır kümenin 200 soruluk hızlı alt kümesi. | `outputs/llm/<sağlayıcı>_<model>/` |
|
| 14 |
+
| **2. Gerçek belge pilotu** | 7 kurumdan 18 gerçek belge üzerinde 189 soru | `gercek_pilot/sonuclar/` |
|
| 15 |
+
|
| 16 |
+
Her iki deneyi de seçilen **her model için birer kez** çalıştıracaksın. Kodda hiçbir değişiklik yapma; ayrıntısı Bölüm 9'da.
|
| 17 |
+
|
| 18 |
+
**İki kurulum yolu var; birini seç:**
|
| 19 |
+
|
| 20 |
+
| | A. Sanal ortam (başlatıcı) | B. Docker |
|
| 21 |
+
|---|---|---|
|
| 22 |
+
| Kurulum | `baslat.bat`'a çift tıkla | Docker Desktop'u kur, `docker_baslat.bat`'a çift tıkla |
|
| 23 |
+
| Paket sürümleri | Başlatıcı uygun sürümleri kurar; küçük farklar olabilir | Makaledeki sonuçların alındığı sürümlerle **birebir aynı** |
|
| 24 |
+
| Kime uygun | Docker kullanmayanlara | Docker'ı zaten kullananlara; en güvenilir tekrar üretim |
|
| 25 |
+
| Bölümler | 3, 6, 7, 8 | 3B, 7B, 8B |
|
| 26 |
+
|
| 27 |
+
Deney komutları iki yolda da terminalden çalıştırılır (Bölüm 6). İki yolda da Bölüm 2 (dosyalar), 4 (model bağlantıları), 5 (model seçimi), 9 (kurallar) ve 10 (geri gönderim) aynıdır.
|
| 28 |
+
|
| 29 |
+
# 1. Gerekenler
|
| 30 |
+
|
| 31 |
+
- **Bilgisayar:** Windows 10/11, macOS ya da Linux. En az 8 GB RAM ve 3 GB boş disk.
|
| 32 |
+
- **Python 3.10, 3.11 ya da 3.12.** Yoksa başlatıcı kurmayı önerir. Windows'ta kurulum sırasında **"Add python.exe to PATH"** kutusunu işaretle.
|
| 33 |
+
- **İnternet bağlantısı:** Paket kurulumu ve bulut modelleri için gerekli.
|
| 34 |
+
- **B yolu için:** [Docker Desktop](https://www.docker.com/products/docker-desktop/). A yolunda gerekmez; B yolunda Python kurmak gerekmez.
|
| 35 |
+
- **API anahtarları ve kredi:**
|
| 36 |
+
- Claude için: [console.anthropic.com](https://console.anthropic.com/settings/keys)
|
| 37 |
+
- OpenAI için: [platform.openai.com](https://platform.openai.com/api-keys)
|
| 38 |
+
- Hesaplarda kullanım kredisi tanımlı olmalı.
|
| 39 |
+
- **Yerel model için Ollama:** [ollama.com/download](https://ollama.com/download).
|
| 40 |
+
- En az 8 GB belleği olan bir ekran kartı önerilir.
|
| 41 |
+
- Ekran kartı yoksa çalışır ama deneyler çok uzun sürer (bir günden fazla olabilir).
|
| 42 |
+
|
| 43 |
+
# 2. Dosyaları yerleştir
|
| 44 |
+
|
| 45 |
+
Sana iki dosya gelecek:
|
| 46 |
+
|
| 47 |
+
1. **`tablo2sql.zip`:** Uygulama, test kümeleri ve betikler.
|
| 48 |
+
2. **`gercek_belgeler.zip`:** 18 gerçek belge (PDF, yaklaşık 115 MB).
|
| 49 |
+
|
| 50 |
+
Adımlar:
|
| 51 |
+
|
| 52 |
+
1. `tablo2sql.zip`'i kısa, boşluksuz ve Türkçe karaktersiz bir yola aç. Örneğin Windows'ta `C:\tablo2sql`, macOS'ta `~/tablo2sql`.
|
| 53 |
+
2. `gercek_belgeler.zip`'i **`tablo2sql/gercek_pilot/test_belgeler/`** klasörünün içine aç. Klasörde 18 PDF olmalı ve doğrudan bu klasörde durmalı, alt klasörde değil. Dosya adlarını değiştirme.
|
| 54 |
+
|
| 55 |
+
```
|
| 56 |
+
tablo2sql/
|
| 57 |
+
├── baslat.bat / baslat.command / baslat.sh
|
| 58 |
+
├── scripts/llm_deneyi.py ← Deney 1
|
| 59 |
+
├── gercek_pilot/
|
| 60 |
+
│ ├── calistir.py ← Deney 2
|
| 61 |
+
│ ├── db_kur.py
|
| 62 |
+
│ └── test_belgeler/ ← 18 PDF buraya
|
| 63 |
+
└── ...
|
| 64 |
+
```
|
| 65 |
+
|
| 66 |
+
# 3. Kurulum (A yolu: sanal ortam)
|
| 67 |
+
|
| 68 |
+
1. Başlatıcıya çift tıkla:
|
| 69 |
+
- Windows: `baslat.bat`
|
| 70 |
+
- macOS: `baslat.command`
|
| 71 |
+
- Linux: terminalde `./baslat.sh`
|
| 72 |
+
2. İlk açılışta başlatıcı `.venv` adında bir sanal ortam kurar ve gerekli paketleri indirir. Bu 5–10 dakika sürebilir.
|
| 73 |
+
3. Kurulum bitince tarayıcıda uygulama açılır. Terminal penceresini kapatma; uygulama o pencere açık kaldıkça çalışır.
|
| 74 |
+
|
| 75 |
+
# 4. Model bağlantılarını kur
|
| 76 |
+
|
| 77 |
+
Uygulamada sağ üstteki **🔌 Bağlantılar** düğmesine bas.
|
| 78 |
+
|
| 79 |
+
- **Claude:** API anahtarını yapıştır ve **Kaydet ve senkronize et**'e bas. Kart *Bağlı · N model* olmalı.
|
| 80 |
+
- **OpenAI:** Aynı şekilde anahtarı yapıştır. Sunucu adresi alanını boş bırak.
|
| 81 |
+
- **Ollama:**
|
| 82 |
+
1. Ollama uygulaması açık olmalı. Kart *Bağlı* görünmüyorsa Ollama'yı başlat ve **Modelleri senkronize et**'e bas.
|
| 83 |
+
2. **Hangi Ollama modeli?** bölümünü aç, `qwen2.5-coder:7b`'yi seç ve **⬇️ Model indir**'e bas. Yaklaşık 4,7 GB indirilir.
|
| 84 |
+
3. Hesaplama aygıtını **Otomatik** bırak.
|
| 85 |
+
|
| 86 |
+
Anahtarlar `tablo2sql/ayarlar/tablo2sql-ayarlar.json` dosyasına kaydedilir ve deney betikleri anahtarı oradan okur. **Bu dosyayı kimseyle paylaşma.** İçinde anahtarlar düz metin olarak durur.
|
| 87 |
+
|
| 88 |
+
# 5. Modelleri önceden seç ve not et
|
| 89 |
+
|
| 90 |
+
Hakemler, birkaç model deneyip yalnızca en iyisinin raporlanmasını kabul etmez. Bu yüzden **çalıştırmaya başlamadan önce** üç modeli seç ve aşağıdaki tabloya yaz. Sonra bu üçünün hepsini, sonuç ne ç��karsa çıksın, çalıştır.
|
| 91 |
+
|
| 92 |
+
| Rol | Sağlayıcı | Model kimliği |
|
| 93 |
+
|---|---|---|
|
| 94 |
+
| Güçlü bulut modeli | claude | ………………………… |
|
| 95 |
+
| İkinci bulut modeli | openai | ………………………… |
|
| 96 |
+
| Yerel model | ollama | qwen2.5-coder:7b |
|
| 97 |
+
|
| 98 |
+
**Model kimliği nasıl bulunur:** Model bağlantıları panelinde ilgili kartın **Modelleri göster** listesindeki `model` sütunundan aynen kopyala. Kimlik genelde tarih içerir, örneğin `claude-…-2025….`. Takma ad yerine tarihli sürüm varsa onu seç; böylece aynı model yeniden kullanılabilir. Komutlarda `<MODEL>` yazan yere bu kimliği koyacaksın.
|
| 99 |
+
|
| 100 |
+
# 6. Terminali aç
|
| 101 |
+
|
| 102 |
+
Komutlar `tablo2sql` klasöründe çalıştırılır.
|
| 103 |
+
|
| 104 |
+
- **Windows:**
|
| 105 |
+
1. Dosya Gezgini'nde `tablo2sql` klasörünü aç.
|
| 106 |
+
2. Üstteki adres çubuğuna `cmd` yaz ve Enter'a bas.
|
| 107 |
+
3. Açılan pencerede bir kez şunu çalıştır: `set PYTHONUTF8=1`
|
| 108 |
+
4. Python komutu: `.venv\Scripts\python`
|
| 109 |
+
- **macOS / Linux:**
|
| 110 |
+
1. Terminalde `cd ~/tablo2sql` ile klasöre geç.
|
| 111 |
+
2. Python komutu: `.venv/bin/python`
|
| 112 |
+
|
| 113 |
+
Aşağıdaki örnekler Windows içindir. macOS/Linux'ta `.venv\Scripts\python` yerine `.venv/bin/python` yaz, ters eğik çizgileri `/` yap.
|
| 114 |
+
|
| 115 |
+
# 7. Deney 1: Makale protokolü (A yolu)
|
| 116 |
+
|
| 117 |
+
Her model için önce maliyet tahminini al, sonra deneyi çalıştır:
|
| 118 |
+
|
| 119 |
+
```
|
| 120 |
+
.venv\Scripts\python scripts\llm_deneyi.py --saglayici claude --model <MODEL> --kuru
|
| 121 |
+
.venv\Scripts\python scripts\llm_deneyi.py --saglayici claude --model <MODEL>
|
| 122 |
+
```
|
| 123 |
+
|
| 124 |
+
- `--kuru` hiçbir istek göndermez. Yalnızca yaklaşık token sayısını yazar. Toplam yaklaşık 4–5 milyon giriş tokenı beklenir.
|
| 125 |
+
- İkinci komut bağlantıyı dener ("Bağlantı denemesi… tamam"), sonra sırasıyla şunları çalıştırır:
|
| 126 |
+
1. Ana test kümesi, 5 koşulda.
|
| 127 |
+
2. Pilot.
|
| 128 |
+
3. Stres kümesi.
|
| 129 |
+
4. Ağır küme hızlı alt kümesi.
|
| 130 |
+
- Süre bulut modellerinde birkaç saat sürebilir. Yerel model ekran kartıyla benzer, ekran kartı olmadan çok daha uzundur.
|
| 131 |
+
- Bitince ekrana bir özet basılır. Sonuçlar `outputs\llm\claude_<MODEL>\` klasörüne yazılır; en önemli dosyalar `rapor.md` ve `ozet.json`.
|
| 132 |
+
|
| 133 |
+
Diğer iki model için `--saglayici` değerini değiştir:
|
| 134 |
+
|
| 135 |
+
```
|
| 136 |
+
.venv\Scripts\python scripts\llm_deneyi.py --saglayici openai --model <MODEL>
|
| 137 |
+
.venv\Scripts\python scripts\llm_deneyi.py --saglayici ollama --model qwen2.5-coder:7b
|
| 138 |
+
```
|
| 139 |
+
|
| 140 |
+
# 8. Deney 2: Gerçek belge pilotu (A yolu)
|
| 141 |
+
|
| 142 |
+
Bu deney `gercek_pilot` klasöründe çalışır.
|
| 143 |
+
|
| 144 |
+
```
|
| 145 |
+
cd gercek_pilot
|
| 146 |
+
..\.venv\Scripts\python db_kur.py
|
| 147 |
+
..\.venv\Scripts\python calistir.py --arka-uc kural
|
| 148 |
+
```
|
| 149 |
+
|
| 150 |
+
1. **`db_kur.py`:** 18 belgenin her biri için bir veritabanı kurar. Yalnızca bir kez gerekir ve 20–40 dakika sürer.
|
| 151 |
+
2. **`calistir.py --arka-uc kural`:** Ortamın doğru kurulduğunu doğrulayan **kontrol çalıştırmasıdır.** Sonunda `"basari": 19.6` görmelisin; bu, raporladığımız sonuçla aynı. Farklı bir sayı çıkarsa LLM deneylerine geçme ve bize haber ver (Bölüm 10). Büyük olasılıkla bir paket sürümü farklıdır.
|
| 152 |
+
3. Ardından seçtiğin üç model:
|
| 153 |
+
|
| 154 |
+
```
|
| 155 |
+
..\.venv\Scripts\python calistir.py --arka-uc claude:<MODEL>
|
| 156 |
+
..\.venv\Scripts\python calistir.py --arka-uc openai:<MODEL>
|
| 157 |
+
..\.venv\Scripts\python calistir.py --arka-uc ollama:qwen2.5-coder:7b
|
| 158 |
+
```
|
| 159 |
+
|
| 160 |
+
- `--arka-uc` biçimi şöyle: `sağlayıcı:model-kimliği`. Ollama modelinin adında da `:` var; bu sorun değil.
|
| 161 |
+
- Her çalıştırma `gercek_pilot\sonuclar\sonuclar_<arka-uç>.json` dosyasını üretir.
|
| 162 |
+
- Önce bağlantıyı denemek istersen `--sinir 5` ekle. Yalnızca 5 soru çalışır. Bu deneme çalıştırmasının sonucu raporlanmaz.
|
| 163 |
+
|
| 164 |
+
# Docker ile (B yolu)
|
| 165 |
+
|
| 166 |
+
Bu yolda Python ve paketler bir Docker imajının içindedir. Proje klasörü konteynere bağlanır; ayarlar, veritabanları ve sonuçlar doğrudan bilgisayarındaki `tablo2sql` klasörüne yazılır. Böylece konteyner silinse de hiçbir şey kaybolmaz.
|
| 167 |
+
|
| 168 |
+
## 3B. Kurulum (bir kez)
|
| 169 |
+
|
| 170 |
+
1. [Docker Desktop](https://www.docker.com/products/docker-desktop/)'ı kur ve aç. Windows'ta WSL 2 seçeneğini kabul et.
|
| 171 |
+
2. Bölüm 2'deki gibi dosyaları yerleştir.
|
| 172 |
+
3. Başlatıcıya çift tıkla:
|
| 173 |
+
- Windows: **`docker_baslat.bat`**
|
| 174 |
+
- macOS: `docker_baslat.command`
|
| 175 |
+
- Linux: terminalde `./docker_baslat.sh`
|
| 176 |
+
|
| 177 |
+
Başlatıcı şu adımları sırayla yapar:
|
| 178 |
+
1. Docker Desktop kapalıysa açar.
|
| 179 |
+
2. İlk seferde imajı kurar. Bu 5–10 dakika sürer ve makaledeki sonuçların üretildiği paket sürümlerini (`requirements-docker.txt`) kullanır.
|
| 180 |
+
3. Uygulamayı başlatır ve tarayıcıda **http://localhost:8501** adresini açar.
|
| 181 |
+
|
| 182 |
+
Başlatıcının penceresini kapatabilirsin; uygulama arka planda çalışmaya devam eder.
|
| 183 |
+
4. Bölüm 4'teki gibi model bağlantılarını kur.
|
| 184 |
+
|
| 185 |
+
Aynı işleri terminalden de yapabilirsin: `docker compose build`, ardından `docker compose up -d uygulama`.
|
| 186 |
+
|
| 187 |
+
**Ollama hakkında:**
|
| 188 |
+
- Ollama'yı bilgisayarın kendisine kur, Docker'ın içine değil. Böylece ekran kartını doğrudan kullanır.
|
| 189 |
+
- Konteyner Ollama'ya `http://host.docker.internal:11434` adresiyle ulaşır. Ayar dosyası ilk kez Docker içinde oluşursa bu adres kendiliğinden yazılır.
|
| 190 |
+
- Daha önce A yoluyla uygulamayı açtıysan Ollama kartında **Sunucu adresini değiştir**'i aç ve bu adresi gir.
|
| 191 |
+
|
| 192 |
+
Uygulamayı kapatmak için **`docker_durdur.bat`**'a çift tıkla (konteyner silinmez, yalnızca durur) (macOS/Linux: `./docker_baslat.sh durdur`). Paketler güncellenirse imajı yeniden kurmak için: `docker_baslat.bat yeniden-kur`.
|
| 193 |
+
|
| 194 |
+
## 7B. Deney 1 (Docker ile)
|
| 195 |
+
|
| 196 |
+
```
|
| 197 |
+
docker compose run --rm deney scripts/llm_deneyi.py --saglayici claude --model <MODEL> --kuru
|
| 198 |
+
docker compose run --rm deney scripts/llm_deneyi.py --saglayici claude --model <MODEL>
|
| 199 |
+
docker compose run --rm deney scripts/llm_deneyi.py --saglayici openai --model <MODEL>
|
| 200 |
+
docker compose run --rm deney scripts/llm_deneyi.py --saglayici ollama --model qwen2.5-coder:7b
|
| 201 |
+
```
|
| 202 |
+
|
| 203 |
+
Sonuçlar bilgisayarındaki `tablo2sql/outputs/llm/` klasörüne yazılır.
|
| 204 |
+
|
| 205 |
+
## 8B. Deney 2 (Docker ile)
|
| 206 |
+
|
| 207 |
+
```
|
| 208 |
+
docker compose run --rm -w /app/gercek_pilot deney db_kur.py
|
| 209 |
+
docker compose run --rm -w /app/gercek_pilot deney calistir.py --arka-uc kural
|
| 210 |
+
docker compose run --rm -w /app/gercek_pilot deney calistir.py --arka-uc claude:<MODEL>
|
| 211 |
+
docker compose run --rm -w /app/gercek_pilot deney calistir.py --arka-uc openai:<MODEL>
|
| 212 |
+
docker compose run --rm -w /app/gercek_pilot deney calistir.py --arka-uc ollama:qwen2.5-coder:7b
|
| 213 |
+
```
|
| 214 |
+
|
| 215 |
+
Kontrol çalıştırmasında (`--arka-uc kural`) sonuç yine **%19,6** olmalı. Sonuçlar `tablo2sql/gercek_pilot/sonuclar/` klasörüne yazılır.
|
| 216 |
+
|
| 217 |
+
**Uzun çalıştırmalar için:** Terminal penceresini kapatırsan `docker compose run` da durur. Bilgisayarın uyku moduna girmemesine dikkat et.
|
| 218 |
+
|
| 219 |
+
# 9. Kurallar
|
| 220 |
+
|
| 221 |
+
1. **Koddaki hiçbir dosyayı değiştirme.**
|
| 222 |
+
- `calistir.py` başlarken kodun dondurulduğu andaki parmak izini doğrular. Kod değişmişse "KOD DEĞİŞMİŞ, çalıştırma durduruldu" der ve çalışmaz.
|
| 223 |
+
- Bu hatayı görürsen düzeltmeye çalışma; bize bildir.
|
| 224 |
+
2. **Her modeli bir kez çalıştır.**
|
| 225 |
+
- Bir çalıştırma ağ hatası ya da elektrik kesintisi yüzünden yarıda kesilirse aynı komutu baştan çalıştır ve bunu not al.
|
| 226 |
+
- Sonuç beğenilmediği için tekrar çalıştırma.
|
| 227 |
+
3. **Seçtiğin üç modelin hepsini raporla.** Sonucu kötü olan model de makalede yer alacak.
|
| 228 |
+
4. **Ayarları değiştirme.** Model sıcaklığı 0, deneme sayısı 3 ve hibrit geri düşme kapalı olarak betiklerde sabit.
|
| 229 |
+
|
| 230 |
+
# 10. Sonuçları geri gönder
|
| 231 |
+
|
| 232 |
+
Deneyler bitince şu klasörleri tek bir zip dosyasında topla:
|
| 233 |
+
|
| 234 |
+
- `tablo2sql\outputs\llm\` (Deney 1, tüm modeller)
|
| 235 |
+
- `tablo2sql\gercek_pilot\sonuclar\` (Deney 2, tüm modeller ve kontrol çalıştırması)
|
| 236 |
+
- `tablo2sql\gercek_pilot\db_test\kurulum_gunlugu.json`
|
| 237 |
+
- Model kimliklerini yazdığın tablo (Bölüm 5) ve varsa yarıda kesilen çalıştırma notları.
|
| 238 |
+
|
| 239 |
+
**Gönderme:** `ayarlar` klasörünü (API anahtarları) ve `.env` dosyasını gönderme.
|
| 240 |
+
|
| 241 |
+
# 11. Sorun giderme
|
| 242 |
+
|
| 243 |
+
| Belirti | Çözüm |
|
| 244 |
+
|---|---|
|
| 245 |
+
| `401` / "invalid x-api-key" / "Incorrect API key" | Anahtar yanlış ya da süresi dolmuş. Model bağlantıları'nda yeni anahtarı kaydet. |
|
| 246 |
+
| `429` / "rate limit" / "overloaded" | Sağlayıcının hız sınırı. 10–15 dakika bekleyip aynı komutu yeniden çalıştır. |
|
| 247 |
+
| "credit balance is too low" / "insufficient_quota" | Hesaba kredi yükle. |
|
| 248 |
+
| Ollama: "model not found" | Model indirilmemiş. Model bağlantıları → Ollama → Model indir. |
|
| 249 |
+
| Ollama: model açılmıyor ya da bellek hatası | Hesaplama aygıtını *Otomatik* yap ya da başka uygulamaları kapat. |
|
| 250 |
+
| "No module named t2s" | Komutu yanlış klasörde çalıştırdın. Deney 1 `tablo2sql` içinde, Deney 2 `tablo2sql\gercek_pilot` içinde çalışır. |
|
| 251 |
+
| Türkçe karakterlerde hata (`UnicodeEncodeError`) | Windows'ta önce `set PYTHONUTF8=1` çalıştır. |
|
| 252 |
+
| `db_kur.py` bir belgede hata verdi | O belgenin dosya adını kontrol et (Bölüm 2); hata mesajını not al ve gönder. |
|
| 253 |
+
| Docker: "Cannot connect to the Docker daemon" | Docker Desktop açık değil; aç ve bir dakika bekle. |
|
| 254 |
+
| Docker: Ollama kartı "Ulaşılamıyor" | Ollama bilgisayarda açık mı? Kart adresi `http://host.docker.internal:11434` olmalı. |
|
| 255 |
+
| Docker: 8501 portu dolu | `docker-compose.yml`'de `"8501:8501"` satırını `"8502:8501"` yap ve http://localhost:8502 adresini aç. |
|
| 256 |
+
| Kontrol çalıştırmasında %19,6'dan farklı sonuç | LLM deneylerine geçmeden önce terminal çıktısını gönder. A yolunda paketleri birebir sabitlemek için: `.venv\Scripts\python -m pip install -r requirements-docker.txt` (Python 3.13 gerekir) ya da B yolunu (Docker) kullan. |
|
Dockerfile
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Tablo2SQL-TR deney ortamı: makaledeki sonuçların üretildiği paket sürümleri (requirements-docker.txt) sabitlenmiştir.
|
| 2 |
+
FROM python:3.13-slim
|
| 3 |
+
|
| 4 |
+
ENV PYTHONUTF8=1 \
|
| 5 |
+
PYTHONUNBUFFERED=1 \
|
| 6 |
+
PYTHONDONTWRITEBYTECODE=1 \
|
| 7 |
+
PIP_NO_CACHE_DIR=1 \
|
| 8 |
+
PIP_DISABLE_PIP_VERSION_CHECK=1
|
| 9 |
+
|
| 10 |
+
WORKDIR /app
|
| 11 |
+
COPY requirements-docker.txt .
|
| 12 |
+
RUN pip install -r requirements-docker.txt
|
| 13 |
+
|
| 14 |
+
COPY . .
|
| 15 |
+
|
| 16 |
+
EXPOSE 8501
|
| 17 |
+
CMD ["streamlit", "run", "app.py", "--server.address=0.0.0.0", "--server.port=8501", \
|
| 18 |
+
"--server.headless=true", "--browser.gatherUsageStats=false"]
|
KURULUM.md
ADDED
|
@@ -0,0 +1,257 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Tablo2SQL-TR — Kurulum ve ayrıntılı kullanım
|
| 2 |
+
|
| 3 |
+
**Dokümanlardaki Tabloların Yapılandırılmış Bilgi Tabanına Dönüştürülmesi ve Doğal Dille Sorgulanması (Text-to-SQL)**
|
| 4 |
+
|
| 5 |
+
PDF / HTML / CSV / XLSX belgelerindeki tabloları çıkarır, birleşik hücreleri ve çok satırlı başlıkları çözer,
|
| 6 |
+
Türkçe sayı/tarih/birim normalizasyonuyla SQLite'a aktarır ve Türkçe soruları kendini düzelten bir ajanla SQL'e çevirir.
|
| 7 |
+
Cevap tablolarda yoksa bunu açıkça söyler.
|
| 8 |
+
|
| 9 |
+
> 📘 **Kullanım kılavuzu (ekran görüntülü):** [Türkçe](docs/KULLANIM_KILAVUZU.md) · [çevrimdışı HTML](docs/kullanim_kilavuzu.html) · [Word](docs/Tablo2SQL-TR_Kullanim_Kilavuzu.docx)
|
| 10 |
+
>
|
| 11 |
+
> 📗 **User guide (with screenshots):** [English](docs/USER_GUIDE.md) · [offline HTML](docs/user_guide.html) · [Word](docs/Tablo2SQL-TR_User_Guide.docx)
|
| 12 |
+
|
| 13 |
+
```
|
| 14 |
+
Belge (PDF/HTML) ─► Çıkarım (pdfplumber · Camelot · BeautifulSoup)
|
| 15 |
+
└► Çözümleme: rowspan/colspan, çok satırlı başlık, başlık/açıklama satırı ayıklama
|
| 16 |
+
└► Normalizasyon: '1.234,56'→1234.56 · '(1.200)'→-1200 · '%4,5'→4.5
|
| 17 |
+
'Ocak 2024'→'2024-01' · birim ('bin TL', 'bin MWh') · 'Toplam' satırı bayrağı
|
| 18 |
+
└► SQLite + meta tablolar (_tablolar, _sutunlar)
|
| 19 |
+
Soru (TR) ─► Ajan: şema bağlama → SQL üretimi (LLM veya kural tabanlı) → statik denetim
|
| 20 |
+
→ yürütme → sonuç denetimi → hata tipiyle geri besleme (≤N deneme) → Türkçe cevap / "cevap yok"
|
| 21 |
+
```
|
| 22 |
+
|
| 23 |
+
## Hızlı başlangıç (tek tık)
|
| 24 |
+
|
| 25 |
+
Zip'i bir klasöre çıkarın ve işletim sisteminize uygun başlatıcıyı çalıştırın:
|
| 26 |
+
|
| 27 |
+
| Sistem | Çalıştırın | Masaüstü kısayolu |
|
| 28 |
+
|---|---|---|
|
| 29 |
+
| Windows 10/11 | `baslat.bat` (çift tık) | `kisayol_olustur.bat` |
|
| 30 |
+
| macOS | `baslat.command` (ilk seferde **sağ tık › Aç**) | `kisayol_olustur.command` → Masaüstü'nde `Tablo2SQL.app` |
|
| 31 |
+
| Linux | `bash baslat.sh` | `bash kisayol_olustur.sh` → uygulama menüsü + masaüstü |
|
| 32 |
+
|
| 33 |
+
Başlatıcı şunları kendiliğinden yapar:
|
| 34 |
+
|
| 35 |
+
1. **Python ≥ 3.10'u arar** (py başlatıcısı, PATH, Homebrew, python.org kurulumları, uv). Bulamazsa izin isteyerek kurar:
|
| 36 |
+
- Windows: `winget` → yoksa python.org kurulum dosyasını indirip sessizce kullanıcı hesabına kurar
|
| 37 |
+
- macOS: Homebrew → yoksa `uv` (yönetici izni gerekmez) → yoksa python.org paketini indirip açar
|
| 38 |
+
- Linux: `apt` / `dnf` / `pacman` / `zypper` / `apk` (sudo) → yoksa `uv` (yönetici izni gerekmez)
|
| 39 |
+
- Hiçbiri olmazsa ne yapılacağını adım adım yazar ve indirme sayfasını açar
|
| 40 |
+
2. Proje içinde **sanal ortam** (`.venv`) kurar; Debian/Ubuntu'da eksik `python3-venv` paketini önerir. Klasör taşındığı
|
| 41 |
+
için bozulmuş bir `.venv`'i fark edip yeniden oluşturur.
|
| 42 |
+
3. **Paketleri** `requirements.txt`'den kurar (dosya değişmedikçe tekrar kurmaz) ve tek tek içe aktararak doğrular.
|
| 43 |
+
4. İsteğe bağlı bileşenler için **öneri** verir: LLM API anahtarı, Ollama (kurulu/çalışıyor mu, model var mı).
|
| 44 |
+
5. Örnek belgeler eksikse üretir, **boş bir port** bulur (8501'den başlayarak), arayüzü başlatır, hazır olunca
|
| 45 |
+
**tarayıcıyı açar**. Uygulama zaten çalışıyorsa yenisini başlatmaz, mevcut sayfayı açar.
|
| 46 |
+
6. İlk çalıştırmada masaüstü kısayolu oluşturmayı önerir.
|
| 47 |
+
|
| 48 |
+
Ek seçenekler (her üç başlatıcıda aynı): `--kontrol` (yalnızca denetle), `--sifirla` (.venv'i silip yeniden kur),
|
| 49 |
+
`--port 8600`, `--tarayici-yok`, `--kisayol`. Arayüz günlüğü: `outputs/arayuz.log`.
|
| 50 |
+
|
| 51 |
+
**Güvenlik uyarıları:** İnternetten indirilen betikler için Windows SmartScreen "Windows bilgisayarınızı korudu" derse
|
| 52 |
+
*Ek bilgi › Yine de çalıştır*; macOS "geliştirici doğrulanamadı" derse *sağ tık › Aç* (veya Sistem Ayarları ›
|
| 53 |
+
Gizlilik ve Güvenlik › Yine de Aç). Kısayol oluşturucu macOS'ta proje klasöründeki karantina işaretini kaldırır.
|
| 54 |
+
|
| 55 |
+
## Elle kurulum ve çalıştırma
|
| 56 |
+
|
| 57 |
+
```bash
|
| 58 |
+
python -m venv .venv && source .venv/bin/activate # Windows: .venv\Scripts\activate
|
| 59 |
+
pip install -r requirements.txt
|
| 60 |
+
|
| 61 |
+
python scripts/run_all.py # örnek belgeler → veritabanları → test kümesi → değerlendirme → rapor
|
| 62 |
+
streamlit run app.py # arayüz: http://localhost:8501
|
| 63 |
+
pytest -q # 42 birim/entegrasyon testi
|
| 64 |
+
|
| 65 |
+
# Test edilen sürümler (Python 3.13): streamlit 1.65, pandas 3.0, camelot-py 2.0, pdfplumber 0.11, reportlab 5.0
|
| 66 |
+
```
|
| 67 |
+
|
| 68 |
+
LLM arka uçları (isteğe bağlı):
|
| 69 |
+
|
| 70 |
+
```bash
|
| 71 |
+
export ANTHROPIC_API_KEY=... && python scripts/run_all.py --claude # Claude
|
| 72 |
+
export OPENAI_API_KEY=... && python scripts/run_all.py --openai gpt-4o-mini # OpenAI uyumlu
|
| 73 |
+
ollama pull qwen2.5-coder:7b && python scripts/run_all.py --ollama qwen2.5-coder:7b # yerel, ücretsiz
|
| 74 |
+
```
|
| 75 |
+
|
| 76 |
+
Arayüzde varsayılan model sağ üstteki model menüsünden seçilir; anahtarlar **Bağlantılar** penceresinden girilir.
|
| 77 |
+
|
| 78 |
+
## Arayüz
|
| 79 |
+
|
| 80 |
+
Sayfalar üstteki gezinme çubuğundadır (dar pencerede sığmayanlar "more" menüsüne, telefonda yan menüye geçer).
|
| 81 |
+
Üst çubuğun sağında: varsayılan model ve ajan ayarları menüsü, **🔌 Bağlantılar**, **dil** (TR / EN) ve **tema**
|
| 82 |
+
(☀ / 🌙). Tercihler saklanır ve uygulama yeniden açıldığında korunur.
|
| 83 |
+
|
| 84 |
+
| Sekme | İçerik |
|
| 85 |
+
|---|---|
|
| 86 |
+
| ① Belgeler & çıkarım | Dosya yükle / örnek seç, çıkarıcı ve sayı kipi seç. Her tablo için **ham ızgara** (birleşik hücreler vurgulu), çözümlenmiş tablo, şema önizlemesi. AI açıksa: önerilen tablo adı, tablo özeti, sütun açıklamaları ve ayrıştırma uyarıları. Aktarım sonrası veritabanı hemen indirilebilir. |
|
| 87 |
+
| ② Bilgi tabanı | Tablolar ve meta veriler, veri görünümü, salt-okunur SQL konsolu. **Veritabanını indir:** SQLite (.db), Excel (.xlsx), CSV (.zip), SQL dökümü (.sql); tek tablo CSV/XLSX. AI açıksa tabloyu açıklama. |
|
| 88 |
+
| ③ Soru sor | Sohbet. Durum rozeti, SQL ve **ajan adımları**. AI açıksa: veritabanına özel örnek sorular, cümleleştirilmiş cevap, İngilizce soru desteği. |
|
| 89 |
+
| ④ Hata kataloğu | Hata tiplerinin tanımı/örneği/önlemi, kaydedilen hatalar. AI açıksa seçilen hatayı **sade dille açıklama**. |
|
| 90 |
+
| ⑤ Değerlendirme | Seçili arka uçla EX çalıştırma, soru bazında yanlışlar. AI açıksa başarısız örnekleri **temalara ayıran analiz**. |
|
| 91 |
+
| ⑥ Otomasyon | Seçilen testleri **arka planda sırayla** çalıştırır (tarayıcı kapansa da sürer). Önce tüm modelleri sınar; rastgele (üst model ağırlıklı), tek model ya da her model kipinde çalışır. Her test için **Türkçe/İngilizce HTML ve PDF** rapor + genel rapor; bitince bir kez uyarı penceresi. Ayrıntı: aşağıda *Otomasyon*. |
|
| 92 |
+
| ⑦ Raporlar | Geçmiş otomasyon çalıştırmaları: genel raporu sayfada görüntüleme, raporları tek tek ya da ZIP olarak indirme, çalıştırma silme. |
|
| 93 |
+
|
| 94 |
+
## Otomasyon (⑥ sekmesi)
|
| 95 |
+
|
| 96 |
+
Başında beklemeden çok sayıda testi çalıştırmak için.
|
| 97 |
+
|
| 98 |
+
1. **Testleri seç.** Liste uygulamadaki tüm kümeleri (TR-TabloSQL ana küme, pilot, stres, ağır, ağır hızlı;
|
| 99 |
+
PDF'ler varsa gerçek belge pilotu) ve dışarıdan eklenen testleri gösterir. *Dışarıdan test ekle*: belgeler
|
| 100 |
+
(PDF/HTML/CSV/XLSX) + `sorular.json` ya da hepsi tek ZIP. Örnek `sorular.json` sekmeden indirilebilir; dış
|
| 101 |
+
testler `testler/` klasörüne kaydedilir.
|
| 102 |
+
2. **Model seçimi.**
|
| 103 |
+
- *Rastgele*: her test için çalışan modeller arasından seçer; üst kademe (ör. Opus/Fable, GPT-5/6, 30B+ yerel)
|
| 104 |
+
modeller daha sık seçilir (*üst model ağırlığı*). Çok pahalı `-pro` ve sohbet dışı modeller varsayılan
|
| 105 |
+
olarak havuz dışıdır.
|
| 106 |
+
- *Tek model*: tüm testler aynı modelle.
|
| 107 |
+
- *Her model*: her test seçilen her modelle (karşılaştırma için).
|
| 108 |
+
3. **Model sınaması.** İş başlarken her model kısa bir ping ve küçük bir SQL göreviyle sınanır; cevap vermeyen ya
|
| 109 |
+
da SQL yazamayan modeller kullanılmaz. Rastgele kipte bir model test sırasında çökerse (çağrıların yarısından
|
| 110 |
+
fazlası hata) test başka bir modelle yeniden çalıştırılır.
|
| 111 |
+
4. **Seçenekler.** Test başına soru sınırı (tohuma göre tekrarlanabilir örneklem), kendini düzeltme, deneme
|
| 112 |
+
sayısı, rapor dilleri ve biçimleri.
|
| 113 |
+
5. **Başlat.** İş ayrı bir süreçte çalışır; sayfada ve üst çubukta canlı ilerleme görünür, *Durdur* ile
|
| 114 |
+
mevcut sorudan sonra durur. Bitince özetle bir uyarı penceresi açılır (sayfa o sırada kapalıysa bir sonraki
|
| 115 |
+
açılışta, yalnızca bir kez). Hiçbir dosya kendiliğinden indirilmez.
|
| 116 |
+
6. **Raporlar** sekmesi: geçmiş çalıştırmalar; genel raporu sayfada görüntüleme, raporları tek tek ya da hepsini
|
| 117 |
+
ZIP olarak indirme.
|
| 118 |
+
|
| 119 |
+
Çıktılar: `outputs/otomasyon/isler/<tarih-saat>/` — `genel_rapor_{tr,en}.{html,pdf}`,
|
| 120 |
+
`testler/NN_<test>__<model>/rapor_{tr,en}.{html,pdf}` + `sonuclar.json`, `model_sinamasi.json`, `gunluk.txt`,
|
| 121 |
+
`tum_raporlar.zip`. Otomasyon, deney için dondurulmuş `t2s/` koduna dokunmaz; yalnızca onu kullanır.
|
| 122 |
+
|
| 123 |
+
## Yapay zekâ (isteğe bağlı)
|
| 124 |
+
|
| 125 |
+
Sağlayıcı sağ üstteki model menüsünden seçilir: **Kural tabanlı (AI kapalı)**, **Claude**, **OpenAI / uyumlu**, **Ollama (yerel)**.
|
| 126 |
+
|
| 127 |
+
- **Model senkronizasyonu:** Model listesi sağlayıcının API'sinden otomatik çekilir (Claude `/v1/models`,
|
| 128 |
+
OpenAI `/v1/models`, Ollama `/api/tags`); model adını elle yazmak gerekmez. 🔄 düğmesi listeyi yeniler.
|
| 129 |
+
Ollama'da model yoksa önerilen modeller arayüzden indirilebilir. Komut satırında `--claude`, `--openai`,
|
| 130 |
+
`--ollama` model adı verilmeden kullanılırsa en yeni model otomatik seçilir.
|
| 131 |
+
- **Anahtarlar:** `.env.example` dosyasını `.env` olarak kopyalayıp doldurun ya da arayüze yazın
|
| 132 |
+
(arayüze yazılan anahtar yalnızca oturumda tutulur).
|
| 133 |
+
- **AI'nın kullanıldığı yerler:** SQL üretimi ve kendini düzeltme · tablo adı/özet/sütun açıklaması önerisi ·
|
| 134 |
+
örnek soru önerisi · cevabı cümleleştirme · hata açıklaması · değerlendirme analizi · çok tablolu
|
| 135 |
+
veritabanlarında şema seçimi. AI yalnızca öneri üretir; tablo çıkarma, sayı ayrıştırma ve denetimler
|
| 136 |
+
deterministik kalır. AI çıktıları arayüzde “AI tarafından üretildi” notuyla işaretlenir.
|
| 137 |
+
- **Hibrit çalışma:** AI'ya ulaşılamazsa soru otomatik olarak kural tabanlı üreticiyle yanıtlanır.
|
| 138 |
+
- **Önbellek ve kullanım:** Aynı AI isteği tekrar ücretlendirilmez (`outputs/.ai_onbellek.json`); kenar
|
| 139 |
+
çubuğunda çağrı ve belirteç sayısı gösterilir.
|
| 140 |
+
- **Test:** `tests/mock_llm_server.py`, üç sağlayıcının API biçimini taklit eden **sahte** bir sunucudur
|
| 141 |
+
(gerçek model değildir); entegrasyon testleri anahtar olmadan bununla çalışır.
|
| 142 |
+
|
| 143 |
+
Ekran görüntüleri: `outputs/ekran/` (`v2_*` dosyaları sahte sunucuyla alınmıştır; cevaplardaki `[MOCK]` öneki bunu gösterir).
|
| 144 |
+
|
| 145 |
+
## Çıktılar
|
| 146 |
+
|
| 147 |
+
| Çıktı | Yer |
|
| 148 |
+
|---|---|
|
| 149 |
+
| Tablo çıkarma ve dönüştürme hattı | `t2s/extract.py`, `t2s/schema.py`, `t2s/trnum.py`, `t2s/pipeline.py` |
|
| 150 |
+
| Text-to-SQL modülü (ajan + LLM + kural tabanlı) | `t2s/agent.py`, `t2s/llm.py`, `t2s/rulebased.py` |
|
| 151 |
+
| Hata kataloğu | `t2s/errors.py` (tanımlar + çalışma zamanı sınıflandırıcı + değerlendirme teşhisi), `outputs/hata_gunlugu.jsonl` |
|
| 152 |
+
| Türkçe test kümesi (TR-TabloSQL, 99 soru) | `benchmark/tr_tablosoru.json`, üretici: `benchmark/build_benchmark.py` |
|
| 153 |
+
| Karşılaştırmalı başarım raporu | `outputs/basarim_raporu.html`, ham sonuçlar `outputs/sonuclar/`, `outputs/ozet.json` |
|
| 154 |
+
|
| 155 |
+
## Mevcut sonuçlar (LLM'siz çalıştırma)
|
| 156 |
+
|
| 157 |
+
| Sistem | EX | Ayrılmış test EX | Cevapsız sorularda doğru red |
|
| 158 |
+
|---|---|---|---|
|
| 159 |
+
| Kural tabanlı · TR normalizasyon | %92,9 | %88,6 | %90,9 |
|
| 160 |
+
| Kural tabanlı · naif İngilizce yerel ayar | %29,3 | %28,6 | %90,9 |
|
| 161 |
+
| Kural tabanlı · sayılar metin | %13,1 | %14,3 | %90,9 |
|
| 162 |
+
|
| 163 |
+
**Türkçe sayı biçimi etkisi:** *Doğru* (altın) SQL sorguları, naif ayrıştırılmış veritabanlarında çalıştırıldığında
|
| 164 |
+
cevapların %71,6'sı (en kipi) ve %80,7'si (metin kipi) bozuluyor. Ör. `'1.346'` → 1,346 (1000 kat hata), `'4,5'` → 45,
|
| 165 |
+
`SUM('1.234,56')` → 1,234.
|
| 166 |
+
|
| 167 |
+
**Tablo çıkarma:** `auto` kipi 7 tablonun tamamında %100 hücre doğruluğu. pdfplumber ve Camelot-lattice çizgisiz tabloyu
|
| 168 |
+
bulamıyor; Camelot-stream çizgili ve çok satırlı başlıklı tablolarda başlık yapısını bozuyor (ort. %71,9).
|
| 169 |
+
|
| 170 |
+
## Docker ile çalıştırma
|
| 171 |
+
|
| 172 |
+
Makaledeki sonuçların üretildiği paket sürümleri `requirements-docker.txt` dosyasında sabitlenmiştir.
|
| 173 |
+
|
| 174 |
+
Windows'ta `docker_baslat.bat`'a çift tıklamak yeterli (macOS: `docker_baslat.command`, Linux: `./docker_baslat.sh`); durdurmak için `docker_durdur.bat` (konteyneri yalnızca durdurur, silmez). Terminalden:
|
| 175 |
+
|
| 176 |
+
```bash
|
| 177 |
+
docker compose build # imajı bir kez kur
|
| 178 |
+
docker compose up -d uygulama # arayüz: http://localhost:8501
|
| 179 |
+
docker compose run --rm deney scripts/llm_deneyi.py --saglayici claude --model <MODEL>
|
| 180 |
+
docker compose run --rm -w /app/gercek_pilot deney calistir.py --arka-uc kural
|
| 181 |
+
```
|
| 182 |
+
|
| 183 |
+
LLM deneylerinin adım adım yönergesi: `DENEY_KILAVUZU.md` (Word: `Tablo2SQL-TR_Deney_Kilavuzu.docx`).
|
| 184 |
+
|
| 185 |
+
## Model bağlantıları (Ollama, OpenAI, Claude)
|
| 186 |
+
|
| 187 |
+
Üst çubuktaki **🔌 Bağlantılar** düğmesi üç sağlayıcıyı tek yerde yönetir:
|
| 188 |
+
|
| 189 |
+
- **Ollama (yerel):** sunucu adresi, bağlantı durumu, kurulu modeller, Text-to-SQL için önerilen modeller ve uygulama
|
| 190 |
+
içinden indirme, hesaplama aygıtı (Otomatik / GPU / CPU).
|
| 191 |
+
- **OpenAI ve Claude (bulut):** anahtarı yapıştırıp *Kaydet ve senkronize et*; model listesi API'den çekilir. Anahtar
|
| 192 |
+
yalnızca maskeli gösterilir (`sk-…F1cA`). OpenAI için isteğe bağlı sunucu adresi (OpenAI uyumlu sunucular).
|
| 193 |
+
- Model listeleri açılışta kendiliğinden yenilenir. Varsayılan model sağ üstteki model menüsünden, her sekmenin modeli o sekmenin
|
| 194 |
+
başından seçilir.
|
| 195 |
+
- Bütün ayarlar `ayarlar/tablo2sql-ayarlar.json` dosyasındadır (anahtarlar düz metin; paylaşmayın). Panelden indirilip
|
| 196 |
+
başka bilgisayarda yüklenebilir.
|
| 197 |
+
|
| 198 |
+
## LLM'leri ölçmek: ağır test kümesi
|
| 199 |
+
|
| 200 |
+
`agir_kume/` klasöründe LLM'ler için hazırlanmış ağır bir küme var: 13 türde **52 kurgusal belge tek veritabanında**,
|
| 201 |
+
**767 soru**, beş seviye (L1 değer okuma · L2 toplama/filtre · L3 çok adımlı hesap · L4 belgeler arası · L5 tuzak ve
|
| 202 |
+
cevapsız) ve İngilizce, Türkçe karaktersiz ve yazım hatalı sorular. 200 soruluk tabakalı bir *hızlı alt küme* de vardır.
|
| 203 |
+
Kural tabanlı motor bu kümede %13'te kalır; küme modeller arasındaki farkı görünür kılmak için tasarlandı.
|
| 204 |
+
Ayrıntılar: `agir_kume/README.md`.
|
| 205 |
+
|
| 206 |
+
Arayüzde **⑤ Değerlendirme → Model karşılaştırma** bölümü, seçilen modelleri aynı kümede yan yana çalıştırır ve seviye
|
| 207 |
+
bazında doğruluk, cevapsızda red ve sessiz yanlış oranını gösterir. Komut satırından:
|
| 208 |
+
|
| 209 |
+
```bash
|
| 210 |
+
python pilot/pilot_calistir.py --kume agir_hizli --claude # en yeni Claude modeli
|
| 211 |
+
python pilot/pilot_calistir.py --kume agir --openai gpt-4.1-mini --sinir 100
|
| 212 |
+
python pilot/pilot_calistir.py --kume agir --ollama qwen2.5-coder:7b --cihaz gpu
|
| 213 |
+
```
|
| 214 |
+
|
| 215 |
+
### Makale protokolü (altın SQL'li kıyaslama + cevap düzeyindeki kümeler)
|
| 216 |
+
|
| 217 |
+
Makaledeki sonuçlar kural tabanlı üreticiyle alınmıştır. LLM'lerin başarımı için tek komutluk protokol (sabit model
|
| 218 |
+
sürümü, sıcaklık 0, hibrit geri düşme kapalı):
|
| 219 |
+
|
| 220 |
+
```bash
|
| 221 |
+
python scripts/llm_deneyi.py --saglayici claude --model <sabit-model-sürümü> --kuru # önce token tahmini
|
| 222 |
+
python scripts/llm_deneyi.py --saglayici claude --model <sabit-model-sürümü>
|
| 223 |
+
python scripts/llm_deneyi.py --saglayici ollama --model qwen2.5-coder:7b # yerel, ücretsiz
|
| 224 |
+
```
|
| 225 |
+
|
| 226 |
+
Beş koşul çalışır: döngü açık (ana sonuç), döngü kapalı (K = 1), statik denetim kapalı, sayılar metin olarak saklanmış
|
| 227 |
+
veritabanı ve İngilizce yerel ayarlı veritabanı. Ardından pilot, stres kümesi ve ağır kümenin hızlı alt kümesi cevap
|
| 228 |
+
düzeyinde çalıştırılır. Sonuçlar, güven aralıkları ve McNemar karşılaştırmaları `outputs/llm/<sağlayıcı_model>/rapor.md`
|
| 229 |
+
dosyasına yazılır.
|
| 230 |
+
|
| 231 |
+
## Stres testi (görülmemiş belge düzenleri)
|
| 232 |
+
|
| 233 |
+
`pilot/` klasöründe kurgusal üç belge ve 44 soruyla stres testi bulunur; gerçek belgeler aynı düzenekle değerlendirilebilir.
|
| 234 |
+
Ayrıntılar: `pilot/README.md` ve `pilot/PILOT_RAPORU.md`.
|
| 235 |
+
|
| 236 |
+
Daha geniş küme `stres_kumesi/` klasöründedir: 11 belge türünden 33 kurgusal belge (ızgara, yatay çizgili, çizgisiz PDF
|
| 237 |
+
ve HTML) ve 307 soru. `python stres_kumesi/uret.py --tekrar N` ile istenen büyüklükte yeniden üretilebilir.
|
| 238 |
+
Ayrıntılar: `stres_kumesi/README.md` ve `stres_kumesi/STRES_RAPORU.md`.
|
| 239 |
+
|
| 240 |
+
## Dürüstlük notları
|
| 241 |
+
|
| 242 |
+
- Örnek belgeler **sentetiktir** (gerçek kurum verisi değildir); gerçek Türk raporlarının yapısal zorluklarını taşıyacak
|
| 243 |
+
şekilde tasarlandı. Gerçek belgeler için: PDF'leri `data/docs/`'a koyun veya arayüzden yükleyin.
|
| 244 |
+
- Kural tabanlı sistem geliştirme bölümündeki 64 soru üzerinde ayarlandı; bu nedenle **genelleme ölçüsü ayrılmış test
|
| 245 |
+
bölümüdür** (35 soru, geliştirmede hiç kullanılmadı).
|
| 246 |
+
- Kural tabanlı üretici neredeyse hiç çalışma zamanı hatası yapmadığı için kendini düzeltmenin katkısı orada görünmüyor;
|
| 247 |
+
döngü asıl olarak LLM arka uçları için tasarlandı. Bu ortamda API anahtarı olmadığından LLM yolu canlı modelle değil,
|
| 248 |
+
betikli test arka ucuyla (`tests/test_sistem.py`: şema hatası, İ/I değer eşleme, toplam satırı) doğrulandı.
|
| 249 |
+
Gerçek LLM sayıları için `--claude/--openai/--ollama` ile çalıştırın; rapor otomatik olarak karşılaştırmaya ekler.
|
| 250 |
+
- Taranmış (görüntü) PDF'ler için OCR adımı yoktur (ör. `ocrmypdf` ile önce metin katmanı eklenebilir).
|
| 251 |
+
|
| 252 |
+
## Test kümesini genişletme
|
| 253 |
+
|
| 254 |
+
1. Belgeyi `data/docs/`'a koyun, `data/ground_truth/<id>.json` dosyasına doğru başlık ve gövdeyi yazın
|
| 255 |
+
(biçim için mevcut dosyalara bakın; referans veritabanı buradan kurulur).
|
| 256 |
+
2. `benchmark/build_benchmark.py` içindeki `Q` (geliştirme) veya `QT` (test) listesine
|
| 257 |
+
`(soru, altın_sql | None, zorluk, kategoriler, kanıt, uyarlama)` ekleyin. Betik her altın SQL'i çalıştırıp doğrular.
|
LICENSE
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
MIT License
|
| 2 |
+
|
| 3 |
+
Copyright (c) 2026 Tablo2SQL-TR yazarları
|
| 4 |
+
|
| 5 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
| 6 |
+
of this software and associated documentation files (the "Software"), to deal
|
| 7 |
+
in the Software without restriction, including without limitation the rights
|
| 8 |
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
| 9 |
+
copies of the Software, and to permit persons to whom the Software is
|
| 10 |
+
furnished to do so, subject to the following conditions:
|
| 11 |
+
|
| 12 |
+
The above copyright notice and this permission notice shall be included in all
|
| 13 |
+
copies or substantial portions of the Software.
|
| 14 |
+
|
| 15 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
| 16 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
| 17 |
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
| 18 |
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
| 19 |
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
| 20 |
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
| 21 |
+
SOFTWARE.
|
| 22 |
+
|
| 23 |
+
---
|
| 24 |
+
Veri kümeleri (data/, benchmark/, pilot/, stres_kumesi/, agir_kume/, gercek_pilot/sorular*,
|
| 25 |
+
veri/, sonuclar_llm/) Creative Commons Attribution 4.0 (CC BY 4.0) lisansıyla paylaşılır.
|
| 26 |
+
Gerçek belge pilotundaki 18 PDF bu pakette yoktur; haklar ilgili kurumlara aittir.
|
README.md
CHANGED
|
@@ -1,3 +1,200 @@
|
|
| 1 |
---
|
| 2 |
license: cc-by-4.0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3 |
---
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
---
|
| 2 |
license: cc-by-4.0
|
| 3 |
+
language:
|
| 4 |
+
- tr
|
| 5 |
+
- en
|
| 6 |
+
pretty_name: "TR-TabloSQL: Türkçe belge tablolarında Text-to-SQL"
|
| 7 |
+
task_categories:
|
| 8 |
+
- table-question-answering
|
| 9 |
+
- question-answering
|
| 10 |
+
tags:
|
| 11 |
+
- text-to-sql
|
| 12 |
+
- turkish
|
| 13 |
+
- table-extraction
|
| 14 |
+
- pdf
|
| 15 |
+
- benchmark
|
| 16 |
+
- llm-evaluation
|
| 17 |
+
size_categories:
|
| 18 |
+
- 1K<n<10K
|
| 19 |
+
configs:
|
| 20 |
+
- config_name: tr_tablosql
|
| 21 |
+
data_files: veri/tr_tablosql.jsonl
|
| 22 |
+
- config_name: pilot
|
| 23 |
+
data_files: veri/pilot.jsonl
|
| 24 |
+
- config_name: stres
|
| 25 |
+
data_files: veri/stres.jsonl
|
| 26 |
+
- config_name: agir
|
| 27 |
+
data_files: veri/agir.jsonl
|
| 28 |
+
- config_name: gercek
|
| 29 |
+
data_files: veri/gercek.jsonl
|
| 30 |
+
- config_name: sonuclar
|
| 31 |
+
data_files: veri/sonuclar.jsonl
|
| 32 |
---
|
| 33 |
+
|
| 34 |
+
# Tablo2SQL-TR ve TR-TabloSQL
|
| 35 |
+
|
| 36 |
+
**Türkçe belgelerdeki tabloları sorgulanabilir bir bilgi tabanına dönüştüren uçtan uca sistem, test kümeleri ve LLM deney sonuçları.**
|
| 37 |
+
|
| 38 |
+
Tablo2SQL-TR, PDF, HTML, CSV ve XLSX belgelerdeki tabloları çıkarır. Birleşik hücreleri ve çok satırlı başlıkları çözer. Türkçe sayı, tarih ve birim yazımlarını normalleştirir (`1.234,56` → 1234.56, `(1.200)` → −1200, `Ocak 2024` → `2024-01`). Tabloları meta veriyle birlikte SQLite'a aktarır. Türkçe soruları kendini düzelten bir ajanla SQL'e çevirir. Cevap tablolarda yoksa uydurmak yerine bunu açıkça söyler.
|
| 39 |
+
|
| 40 |
+
Bu depoda üç şey bir arada:
|
| 41 |
+
|
| 42 |
+
1. **Uygulama:** kaynak kod, web arayüzü ve tek tıkla başlatıcılar.
|
| 43 |
+
2. **Test kümeleri:** 5 küme, 1.406 soru.
|
| 44 |
+
3. **Deney sonuçları:** kural tabanlı üretici ve 6 LLM için soru düzeyinde 5.012 kayıt.
|
| 45 |
+
|
| 46 |
+
*English summary at the end.*
|
| 47 |
+
|
| 48 |
+

|
| 49 |
+
|
| 50 |
+
## Öne çıkan sonuçlar
|
| 51 |
+
|
| 52 |
+
Doğruluk, cevap düzeyinde ölçüldü. Her sistem aynı sorulara, aynı veritabanlarında cevap verdi.
|
| 53 |
+
|
| 54 |
+
| Küme | Kural tabanlı | Claude Opus 5.5 | GPT-6.1-sol | Qwen2.5-Coder-32B (yerel) |
|
| 55 |
+
|---|---|---|---|---|
|
| 56 |
+
| Stres (33 belge, 307 soru) | %42,7 | **%89,9** | %76,9¹ | %62,5 |
|
| 57 |
+
| Ağır, hızlı alt küme (200 soru) | %14,5 | **%90,0** | %83,0 | %63,5 |
|
| 58 |
+
| Gerçek belge pilotu (18 belge, 189 soru) | %19,6 | %59,8 | **%62,4** | %28,6 |
|
| 59 |
+
| Sessiz yanlış, gerçek belgeler | %40,7 | **%2,6** | %5,3 | %9,5 |
|
| 60 |
+
|
| 61 |
+
¹ Bu çalıştırmada 34 soruda API hata döndürdü. Bu sorular dışarıda tutulursa sonuç %85,0.
|
| 62 |
+
|
| 63 |
+
- **Yerel sayı biçimi bir ön koşul.** TR-TabloSQL'de Türkçe normalizasyonla kural tabanlı üretici %92,9'a ulaşıyor. İngilizce yerel ayar varsayıldığında, kusursuz altın SQL sorgularının bile yalnızca %28,4'ü doğru sonuç veriyor ve hiçbir hata mesajı çıkmıyor.
|
| 64 |
+
- **Güçlü LLM'lerle darboğaz tablo çıkarımına kayıyor.** Gerçek belgelerde değeri veritabanına doğru okunamamış 32 sorudan her model yalnızca ikisini çözebildi. Bu sorular dışarıda tutulunca bulut modelleri %70,7–73,9'a çıkıyor.
|
| 65 |
+
- **Denetim zinciri sessiz hataları yakalıyor.** 159 bozuk sorguyla yapılan hata enjeksiyonunda hataların %92,5'i yakalandı ve hiç yanlış alarm üretilmedi.
|
| 66 |
+
|
| 67 |
+
## Ekran görüntüleri
|
| 68 |
+
|
| 69 |
+
| | |
|
| 70 |
+
|---|---|
|
| 71 |
+
|  **Belgeler:** tablo çıkarma; birleşik hücreler mavi, Türkçe sayılar çözümlenmiş |  **Bilgi tabanı:** aktarılan tablolar, meta veri, SQL konsolu ve dışa aktarma |
|
| 72 |
+
|  **Soru sor:** cevap ve SQL; tablolarda olmayan bir varlık için gerekçeli red |  **Hata kataloğu:** Türkçeye özgü hata tipleri, örnekler ve önlemler |
|
| 73 |
+
|  **Değerlendirme:** modelleri test kümelerinde karşılaştırma, seviyelere göre doğruluk |  **Otomasyon:** testleri ve modelleri seçip arka planda çalıştırma |
|
| 74 |
+
|  **Raporlar:** geçmiş çalıştırmalar; raporları tek tek ya da ZIP olarak indirme |  **Genel rapor (HTML/PDF, TR/EN):** aydınlık/karanlık tema |
|
| 75 |
+
|  **Test raporu:** soru tipi, zorluk ve soru ailesine göre kırılım | |
|
| 76 |
+
|
| 77 |
+
## Hızlı başlangıç
|
| 78 |
+
|
| 79 |
+
```bash
|
| 80 |
+
# Windows: baslat.bat (çift tık) · macOS: baslat.command · Linux:
|
| 81 |
+
bash baslat.sh
|
| 82 |
+
```
|
| 83 |
+
|
| 84 |
+
Başlatıcı şunları kendisi yapar:
|
| 85 |
+
|
| 86 |
+
- Gerekirse Python'u kurar.
|
| 87 |
+
- Bir sanal ortam oluşturur ve paketleri yükler.
|
| 88 |
+
- Tarayıcıda `http://localhost:8501` adresini açar.
|
| 89 |
+
|
| 90 |
+
Uygulama LLM olmadan, kural tabanlı üreticiyle çalışır. Claude, OpenAI ya da yerel Ollama modelleri **Bağlantılar** düğmesinden eklenir.
|
| 91 |
+
|
| 92 |
+
Docker ile çalıştırmak için:
|
| 93 |
+
|
| 94 |
+
```bash
|
| 95 |
+
docker compose up -d # durdurmak için: docker compose stop
|
| 96 |
+
```
|
| 97 |
+
|
| 98 |
+
Elle kurulum, tüm seçenekler ve deneyleri yeniden üretme adımları için [KURULUM.md](KURULUM.md) dosyasına bakın. Ekran görüntülü kullanım kılavuzları için: [Türkçe](docs/KULLANIM_KILAVUZU.md) · [English](docs/USER_GUIDE.md).
|
| 99 |
+
|
| 100 |
+
> **Güvenlik:** API anahtarları `ayarlar/tablo2sql-ayarlar.json` dosyasına düz metin olarak yazılır. Bu dosya pakette yoktur. Kendi kopyanızı paylaşmayın ve depoya yüklemeyin.
|
| 101 |
+
|
| 102 |
+
## Test kümeleri
|
| 103 |
+
|
| 104 |
+
| Küme | Belge | Soru | İçerik | Konum |
|
| 105 |
+
|---|---|---|---|---|
|
| 106 |
+
| **TR-TabloSQL** | 6 sentetik (4 PDF, 2 HTML), 7 tablo | 99 (64 geliştirme / 35 test) | Altın SQL; Spider/BIRD tiplerinden uyarlama; 11 cevapsız soru | `benchmark/`, `data/` |
|
| 107 |
+
| **Pilot** | 3 | 44 | Ana kümeden bilerek farklı düzenler | `pilot/` |
|
| 108 |
+
| **Stres** | 33 (11 tür × 3) | 307 (39 cevapsız) | Izgara, yalnız yatay çizgi, çizgisiz PDF ve HTML | `stres_kumesi/` |
|
| 109 |
+
| **Ağır** | 52, tek veritabanında | 767 (200'lük hızlı alt küme) | L1–L5 seviyeleri; %20'si İngilizce, Türkçe karaktersiz ya da yazım hatalı | `agir_kume/` |
|
| 110 |
+
| **Gerçek belge pilotu** | 7 kurumdan 18 gerçek PDF | 189 (19 cevapsız) | Bağımsız yazılmış ve denetlenmiş sorular | `gercek_pilot/` |
|
| 111 |
+
|
| 112 |
+
Sentetik belgeler tohumlanmış rastgele sayılarla üretilir. Gerçek kurum verisi içermezler, ama Türk kamu belgelerinin düzenini ve yazım kurallarını taklit ederler. Belgeleri yeniden üreten betikler her klasördedir.
|
| 113 |
+
|
| 114 |
+
**Gerçek belgeler bu pakette yoktur,** çünkü belgelerin hakları ilgili kurumlara aittir. Belgeler kurumların internet sitelerinden indirilmeli:
|
| 115 |
+
|
| 116 |
+
- Kaynakların listesi [`gercek_pilot/README.md`](gercek_pilot/README.md) dosyasında.
|
| 117 |
+
- İndirilen dosyaların doğru sürüm olduğu SHA-256 özetleriyle denetlenebilir. Komut `gercek_pilot` klasöründen çalıştırılır: `sha256sum -c belgeler.sha256`.
|
| 118 |
+
|
| 119 |
+
Kod deneylerden önce donduruldu. Dosyaların SHA-256 özetleri `kod_parmak_izi.txt` dosyalarında; çalıştırma betikleri bu özetleri kontrol eder.
|
| 120 |
+
|
| 121 |
+
### Hugging Face veri görüntüleyicisi (`veri/`)
|
| 122 |
+
|
| 123 |
+
Soru kümeleri ve sonuçlar, veri görüntüleyicide açılabilsin diye düz JSONL olarak da verildi:
|
| 124 |
+
|
| 125 |
+
```python
|
| 126 |
+
from datasets import load_dataset
|
| 127 |
+
gercek = load_dataset("<kullanıcı>/tr-tablosql", "gercek", split="train")
|
| 128 |
+
sonuc = load_dataset("<kullanıcı>/tr-tablosql", "sonuclar", split="train")
|
| 129 |
+
```
|
| 130 |
+
|
| 131 |
+
| Yapılandırma | Satır | Alanlar |
|
| 132 |
+
|---|---|---|
|
| 133 |
+
| `tr_tablosql` | 99 | `id, bolum, soru, altin_sql, cevaplanabilir, zorluk, kategoriler, kanit, tablolar` |
|
| 134 |
+
| `pilot`, `stres`, `agir`, `gercek` | 44 / 307 / 767 / 189 | `id, belge, soru, tip, cevap_json, aile, zorluk` ve kümeye özgü alanlar (`seviye`, `dil`, `cizim`, `sayfa`, `tablo` …) |
|
| 135 |
+
| `sonuclar` | 5.012 | `kume, model, calistirma, id, dogru, durum, bulunan, beklenen_json, sql` |
|
| 136 |
+
|
| 137 |
+
Cevaplar farklı tiplerde olabilir (sayı, metin ya da liste). Bu yüzden JSON metni olarak saklandılar: `json.loads(r["cevap_json"])`.
|
| 138 |
+
|
| 139 |
+
## Deney sonuçları (`sonuclar_llm/`)
|
| 140 |
+
|
| 141 |
+
| Klasör | İçerik |
|
| 142 |
+
|---|---|
|
| 143 |
+
| `20261026-021813/` | 26.10.2026 çalıştırması: her test için rastgele seçilen üst kademe model. TR-TabloSQL'de GPT-5.2, pilotta Claude Opus 5.5, stresde GPT-6.1-sol, ağır hızlı alt kümede Claude Opus 4.5, ağır tam kümede GPT-5. |
|
| 144 |
+
| `20261027-043315/` | 27.10.2026 çalıştırması: stres, ağır hızlı alt küme ve gerçek belge kümelerinin her biri üç modelle. 4 sa 51 dk sürdü. |
|
| 145 |
+
| `kural_tabanli/` | Kural tabanlı üreticinin aynı kümelerdeki sonuçları. |
|
| 146 |
+
| `analiz.py`, `llm_analiz.json`, `gercek_kirilim.json` | Güven aralıkları, McNemar testleri ve gerçek belgelerde belge türüne göre kırılım. |
|
| 147 |
+
|
| 148 |
+
Her test klasöründe soru başına SQL, cevap ve hakem kararı (`sonuclar.json`, `ozet_normal.json`) ile Türkçe ve İngilizce HTML/PDF raporlar bulunur.
|
| 149 |
+
|
| 150 |
+
Bulut modelleri sağlayıcı API'leriyle çalıştırıldı. API'ler sıcaklık parametresini kabul etmediği için sağlayıcının varsayılan ayarı kullanıldı; bu nedenle sonuçlar soru düzeyinde küçük farklarla değişebilir. Yerel model Ollama ile, sıcaklık 0'da çalıştırıldı.
|
| 151 |
+
|
| 152 |
+
## Klasör yapısı
|
| 153 |
+
|
| 154 |
+
```
|
| 155 |
+
app.py, arayuz_tema.py web arayüzü (Streamlit)
|
| 156 |
+
t2s/ çıkarma, normalizasyon, ajan, denetim zinciri, LLM istemcileri
|
| 157 |
+
otomasyon/ arka planda çoklu test/model çalıştırma ve rapor üretimi
|
| 158 |
+
benchmark/, data/ TR-TabloSQL soruları, sentetik belgeler, doğru içerik dosyaları
|
| 159 |
+
pilot/, stres_kumesi/, agir_kume/, gercek_pilot/ diğer test kümeleri ve raporları
|
| 160 |
+
veri/ Hugging Face görüntüleyicisi için JSONL dosyaları
|
| 161 |
+
sonuclar_llm/ LLM ve kural tabanlı deneylerin ham sonuçları
|
| 162 |
+
outputs/ TR-TabloSQL, ablasyon ve hata enjeksiyonu çıktıları
|
| 163 |
+
scripts/, tests/ yardımcı betikler ve testler (pytest)
|
| 164 |
+
docs/ kullanım kılavuzları ve ekran görüntüleri
|
| 165 |
+
```
|
| 166 |
+
|
| 167 |
+
## Lisans
|
| 168 |
+
|
| 169 |
+
- **Kod:** MIT.
|
| 170 |
+
- **Test kümeleri ve sonuçlar:** CC BY 4.0.
|
| 171 |
+
|
| 172 |
+
Ayrıntılar [LICENSE](LICENSE) dosyasında. Gerçek belgelerin hakları ilgili kurumlara aittir.
|
| 173 |
+
|
| 174 |
+
## Atıf
|
| 175 |
+
|
| 176 |
+
Makale değerlendirme sürecindedir. Atıf bilgisi yayımlandıktan sonra eklenecektir.
|
| 177 |
+
|
| 178 |
+
---
|
| 179 |
+
|
| 180 |
+
## English summary
|
| 181 |
+
|
| 182 |
+
**Tablo2SQL-TR** is an end-to-end system for question answering over tables in Turkish documents. It:
|
| 183 |
+
|
| 184 |
+
- extracts tables from PDF, HTML, CSV and XLSX files and resolves merged cells and multi-row headers;
|
| 185 |
+
- normalises Turkish number, date and unit notations;
|
| 186 |
+
- loads the tables with metadata into SQLite;
|
| 187 |
+
- answers Turkish or English questions with a self-correcting Text-to-SQL agent that abstains when the answer is not in the tables.
|
| 188 |
+
|
| 189 |
+
This repository contains:
|
| 190 |
+
|
| 191 |
+
- the code and web app;
|
| 192 |
+
- five benchmarks with 1,406 questions in total: TR-TabloSQL, pilot, stress, heavy, and an 18-document real-world pilot. Real PDFs are not redistributed; sources and SHA-256 hashes are given.
|
| 193 |
+
- question-level results of a rule-based generator and six LLMs (5,012 records).
|
| 194 |
+
|
| 195 |
+
The main findings:
|
| 196 |
+
|
| 197 |
+
- Locale-aware normalisation is a prerequisite. Under an English-locale assumption, even gold SQL returns correct results for only 28.4% of questions, with no error raised.
|
| 198 |
+
- With strong LLMs (Claude Opus 5.5 reaches 89.9–90.0% on synthetic sets and 59.8% on real documents; GPT-6.1-sol 62.4% on real documents), the bottleneck shifts from SQL generation to table extraction.
|
| 199 |
+
|
| 200 |
+
Quick start: `bash baslat.sh` (or `baslat.bat` / `baslat.command`), or `docker compose up -d`. The interface is available in English via the TR/EN switch. See [docs/USER_GUIDE.md](docs/USER_GUIDE.md).
|
Tablo2SQL-TR_Deney_Kilavuzu.docx
ADDED
|
Binary file (20.4 kB). View file
|
|
|
agir_kume/README.md
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Ağır LLM test kümesi
|
| 2 |
+
|
| 3 |
+
Bu küme, büyük dil modellerini Türkçe belge tabloları üzerinde zorlamak için hazırlandı. Bütün belgeler kurgusaldır
|
| 4 |
+
ve her sayfada "KURGUSAL ÖRNEK BELGE" uyarısı vardır.
|
| 5 |
+
|
| 6 |
+
| | |
|
| 7 |
+
|---|---|
|
| 8 |
+
| Belge | 52 (13 tür × 4 kurum), 13 ızgara + 13 yatay çizgili + 13 çizgisiz PDF, 13 HTML |
|
| 9 |
+
| Veritabanı | **Tek veritabanı**, 57 tablo. Aynı türden dört kurumun neredeyse aynı başlıklı tabloları vardır |
|
| 10 |
+
| Soru | 767 (hızlı alt küme: 200, seviye × dil tabakalı) |
|
| 11 |
+
| Seviye | L1 118 · L2 193 · L3 264 · L4 92 · L5 100 |
|
| 12 |
+
| Dil | Türkçe 619 · İngilizce 61 · Türkçe karaktersiz 46 · yazım hatalı 41 |
|
| 13 |
+
| Cevap tipi | sayı 442 · metin 181 · liste 44 · cevapsız 100 |
|
| 14 |
+
|
| 15 |
+
## Belge türleri
|
| 16 |
+
|
| 17 |
+
Belediye bütçesi (gider + gelir), mahalle nüfusu (60 satıra kadar, sayfaya bölünen), personel sayısı, su tarifesi,
|
| 18 |
+
KAP tarzı finansal tablolar (bölüm başlıkları, dipnot sütunu, parantezli negatifler), il turizm bülteni (yıl × çeyrek),
|
| 19 |
+
aylık konut satışı, TÜFE, üniversite öğrenci sayıları, yatırım programı, elektrik tüketimi, **havalimanı yolcu
|
| 20 |
+
trafiği** (yıl × hat iki seviyeli başlık) ve **trafik kazaları** (ilçe × yıl uzun biçim).
|
| 21 |
+
|
| 22 |
+
## Seviyeler
|
| 23 |
+
|
| 24 |
+
| Seviye | Aileler |
|
| 25 |
+
|---|---|
|
| 26 |
+
| L1 değer okuma | kurum adıyla nitelenmiş tek hücre |
|
| 27 |
+
| L2 tek tablo işlemleri | toplam (toplam satırı tuzağı), ortalama, eşik sayımı, en yüksek/en düşük, uzun biçimde yıla göre toplam, bin/milyon TL → TL |
|
| 28 |
+
| L3 çok adımlı hesap | iki sütunun oranı, yüzde değişim, en çok artan, pay, sıra, ikinci en yüksek, ortalamanın üstü, ilk üç |
|
| 29 |
+
| L4 belgeler arası | iki kurumu karşılaştırma, farklı birimlerde tutulan tutarların TL farkı, dört kurumun toplamı, aynı abone grubunun iki belediyedeki fiyat farkı |
|
| 30 |
+
| L5 tuzak ve cevapsız | başka kurumun tablosunda olan varlık, belgede olmayan yıl, o türde belgesi olmayan kurum, tabloda olmayan gösterge |
|
| 31 |
+
|
| 32 |
+
## Altın cevaplar
|
| 33 |
+
|
| 34 |
+
Cevaplar üreticide belgede görünen (yuvarlanmış) değerlerden hesaplanır. Üreticiye erişimi olmayan ayrı bir denetçi,
|
| 35 |
+
seviye tabakalı 80 soruyu belgelerden kendisi hesapladı: **80/80 doğru** (`altin_denetimi.json`). Denetçinin bulduğu 3
|
| 36 |
+
belirsiz soru kalıbı (yılı belirtilmemiş çok yıllı toplam, endeks değerlerinin toplamı, yılı belirsiz "önceki yıl"
|
| 37 |
+
sütunu) ve dilbilgisi sorunları üreticide düzeltildi; küme yeniden üretildi.
|
| 38 |
+
|
| 39 |
+
## Taban çizgisi
|
| 40 |
+
|
| 41 |
+
| Arka uç | Genel | L1 | L2 | L3 | L4 | L5 | Sessiz yanlış |
|
| 42 |
+
|---|---|---|---|---|---|---|---|
|
| 43 |
+
| Kural tabanlı (tam küme) | %13,0 | %16,1 | %16,6 | %5,3 | %0 | %35,0 | %78,9 |
|
| 44 |
+
|
| 45 |
+
Kural tabanlı motor kurum adını tablo kaynağına bağlayamadığı ve çok adımlı hesap şablonu olmadığı için düşük kalır.
|
| 46 |
+
Bu bilinçli bir tasarımdır: küme LLM'ler arasındaki farkı görünür kılmak için hazırlandı.
|
| 47 |
+
|
| 48 |
+
## Çalıştırma
|
| 49 |
+
|
| 50 |
+
```bash
|
| 51 |
+
python agir_kume/uret.py # yeniden üret (--tekrar 6 ile 78 belge)
|
| 52 |
+
python pilot/pilot_calistir.py --kume agir_hizli --claude
|
| 53 |
+
python pilot/pilot_calistir.py --kume agir --ollama qwen2.5-coder:7b --cihaz gpu --sinir 100
|
| 54 |
+
```
|
| 55 |
+
|
| 56 |
+
Arayüzde: **⑤ Değerlendirme → Model karşılaştırma**. Veritabanı ilk çalıştırmada kurulur (yaklaşık bir dakika) ve
|
| 57 |
+
çıkarım kodu değişmedikçe yeniden kullanılır.
|
| 58 |
+
|
| 59 |
+
## Değerlendirme kuralları
|
| 60 |
+
|
| 61 |
+
Cevap düzeyindedir, altın SQL kullanılmaz (`t2s/qa_eval.py`): sayılar |a − b| ≤ 0,01 + 10⁻³·|b| toleransıyla, metinler
|
| 62 |
+
Türkçe katlama ve tarih/dönem normalleştirmesiyle, listeler küme olarak karşılaştırılır; kurum adı cevaplarında kısa
|
| 63 |
+
adın geçmesi yeterlidir. Cevapsız sorularda sistemin cevap vermemesi doğrudur. **Sessiz yanlış**, sistemin cevap
|
| 64 |
+
üretip yanlış çıktığı soruların oranıdır.
|
agir_kume/altin_denetimi.json
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"orneklem": 80,
|
| 3 |
+
"dogru": 80,
|
| 4 |
+
"hatali": [],
|
| 5 |
+
"belirsiz": [
|
| 6 |
+
{
|
| 7 |
+
"id": "A0596",
|
| 8 |
+
"soru": "Akköprü Belediyesi, Çınarlı Belediyesi, Bademli Belediyesi ve Gökdere Belediyesi için toplam memur sayısı değerlerinin toplamı kaç?",
|
| 9 |
+
"neden": "Yıl belirtilmemiş: altın (5317) 4 belediyenin 2021-2025 beş yılının memur sayılarını topluyor; personel sayısı stok değişken olduğundan okuyucu tek bir yıl (ör. 2025: 181+342+245+296=1064) bekleyebilir."
|
| 10 |
+
},
|
| 11 |
+
{
|
| 12 |
+
"id": "A0617",
|
| 13 |
+
"soru": "Deniztepe Bölgesi, Aksungur Bölgesi ve Ardıçlı Bölgesi için 2025 yılı toplam tüketici fiyat endeksi değerlerinin toplamı kaç?",
|
| 14 |
+
"neden": "'Toplam tüketici fiyat endeksi' 12 aylık endeks değerlerinin toplamı (99009.68) olarak alınmış; endeks toplamı anlamsız bir büyüklük, ortalama veya Aralık değeri olarak da okunabilir."
|
| 15 |
+
},
|
| 16 |
+
{
|
| 17 |
+
"id": "A0065",
|
| 18 |
+
"soru": "Ardıçlı İlinde önceki yılın aynı ayındaki satış ikinci en yüksek olan ay hangisidir?",
|
| 19 |
+
"neden": "'Önceki yılın aynı ayındaki satış' sütunu 2023 aylarını gösteriyor ama altın satır etiketi '2024/12' veriyor; doğru cevap '2023 Aralık' olarak da beklenebilir."
|
| 20 |
+
}
|
| 21 |
+
],
|
| 22 |
+
"dil_sorunlari": [
|
| 23 |
+
{
|
| 24 |
+
"id": "A0025",
|
| 25 |
+
"soru": "Yeşilvadi Belediyesinde 2024 yılında gelir gelir türleri ortalamasının üzerinde olan kaç gelir türü vardır?",
|
| 26 |
+
"neden": "'gelir gelir türleri ortalamasının' — kelime tekrarı (dil='tr', kasıtlı yazım gürültüsü değil)."
|
| 27 |
+
},
|
| 28 |
+
{
|
| 29 |
+
"id": "A0705",
|
| 30 |
+
"soru": "Kartaltepe Belediyesinde 2021 yılında Personel Giderleri'nin gerçekleşme ne kadardır?",
|
| 31 |
+
"neden": "'Personel Giderleri'nin gerçekleşme ne kadardır' — iyelik eki eksik ('gerçekleşmesi'); aynı kalıp A0740'ta da var."
|
| 32 |
+
},
|
| 33 |
+
{
|
| 34 |
+
"id": "A0745",
|
| 35 |
+
"soru": "Akköprü Belediyesinde 2021 yılında Kazım Karabekir Mahallesinin nüfus ne kadardır?",
|
| 36 |
+
"neden": "'Kazım Karabekir Mahallesinin nüfus ne kadardır' — 'nüfusu' olmalı; aynı kalıp A0712, A0706'da da var."
|
| 37 |
+
},
|
| 38 |
+
{
|
| 39 |
+
"id": "A0703",
|
| 40 |
+
"soru": "Bademli Belediyesinde 2025 yılında Sosyal Güvenlik Kurumlarına Devlet Primi Giderleri'nin toplam ödenek ne kadardır?",
|
| 41 |
+
"neden": "'...Giderleri'nin toplam ödenek ne kadardır' — 'toplam ödeneği' olmalı; aynı kalıp A0685'te de var."
|
| 42 |
+
}
|
| 43 |
+
]
|
| 44 |
+
}
|
agir_kume/belgeler/belediye_00_yesilvadi_2024_butce.pdf
ADDED
|
Binary file (47.3 kB). View file
|
|
|
agir_kume/belgeler/belediye_01_akkopru_mahalle.pdf
ADDED
|
Binary file (48.4 kB). View file
|
|
|
agir_kume/belgeler/belediye_07_akkopru_personel.html
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!doctype html><html lang='tr'><head><meta charset='utf-8'><title>AKKÖPRÜ BELEDİYESİ İNSAN KAYNAKLARI RAPORU</title><style>body{font-family:DejaVu Sans,Arial,sans-serif;max-width:960px;margin:24px auto}table{border-collapse:collapse;margin:8px 0}td,th{border:1px solid #888;padding:3px 8px;font-size:13px}td:not(:first-child){text-align:right}tfoot td{border:none;font-size:11px;text-align:left!important}.uyari{color:#9a3412;font-size:12px}</style></head><body>
|
| 2 |
+
<p class='uyari'>KURGUSAL ÖRNEK BELGE — Tablo2SQL-TR stres testi için üretilmiştir; gerçek kurum verisi değildir.</p><h1>AKKÖPRÜ BELEDİYESİ İNSAN KAYNAKLARI RAPORU</h1>
|
| 3 |
+
<p>Akköprü Belediyesinde son beş yılda istihdam edilen personel sayıları aşağıdadır.</p>
|
| 4 |
+
<table><caption>Tablo 7: Yıllara Göre Personel Sayısı (Kişi)</caption><thead>
|
| 5 |
+
<tr><th>Yıl</th><th>Memur</th><th>Kadrolu İşçi</th><th>Sözleşmeli Personel</th><th>Toplam</th></tr>
|
| 6 |
+
</thead><tbody>
|
| 7 |
+
<tr><td>2021</td><td>182</td><td>174</td><td>60</td><td>416</td></tr>
|
| 8 |
+
<tr><td>2022</td><td>306</td><td>58</td><td>41</td><td>405</td></tr>
|
| 9 |
+
<tr><td>2023</td><td>264</td><td>147</td><td>89</td><td>500</td></tr>
|
| 10 |
+
<tr><td>2024</td><td>183</td><td>244</td><td>38</td><td>465</td></tr>
|
| 11 |
+
<tr><td>2025</td><td>181</td><td>145</td><td>45</td><td>371</td></tr>
|
| 12 |
+
</tbody>
|
| 13 |
+
</table>
|
| 14 |
+
</body></html>
|
agir_kume/belgeler/belediye_10_yesilvadi_2025_tarife.pdf
ADDED
|
Binary file (46.2 kB). View file
|
|
|
agir_kume/belgeler/belediye_13_serinsu_2025_butce.pdf
ADDED
|
Binary file (47.1 kB). View file
|
|
|
agir_kume/belgeler/belediye_14_cinarli_mahalle.pdf
ADDED
|
Binary file (47.8 kB). View file
|
|
|
agir_kume/belgeler/belediye_20_cinarli_personel.pdf
ADDED
|
Binary file (45.6 kB). View file
|
|
|
agir_kume/belgeler/belediye_23_serinsu_2025_tarife.html
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!doctype html><html lang='tr'><head><meta charset='utf-8'><title>SERINSU BELEDİYESİ SU TARİFELERİ YÖNETMELİĞİ EKİ</title><style>body{font-family:DejaVu Sans,Arial,sans-serif;max-width:960px;margin:24px auto}table{border-collapse:collapse;margin:8px 0}td,th{border:1px solid #888;padding:3px 8px;font-size:13px}td:not(:first-child){text-align:right}tfoot td{border:none;font-size:11px;text-align:left!important}.uyari{color:#9a3412;font-size:12px}</style></head><body>
|
| 2 |
+
<p class='uyari'>KURGUSAL ÖRNEK BELGE — Tablo2SQL-TR stres testi için üretilmiştir; gerçek kurum verisi değildir.</p><h1>SERINSU BELEDİYESİ SU TARİFELERİ YÖNETMELİĞİ EKİ</h1>
|
| 3 |
+
<p>Serinsu Belediyesi Meclisinin kararı ile 2025 yılı su ve atıksu tarifeleri belirlenmiştir.</p>
|
| 4 |
+
<table><caption>Tablo 1: Abone Gruplarına Göre Su ve Atıksu Tarifeleri (01.03.2025 tarihinden itibaren)</caption><thead>
|
| 5 |
+
<tr><th>Abone Grubu</th><th>Su Bedeli (TL/m³)</th><th>Atıksu Bedeli (TL/m³)</th><th>Toplam (TL/m³)</th></tr>
|
| 6 |
+
</thead><tbody>
|
| 7 |
+
<tr><td>Konut (0-10 m³)</td><td>21,39</td><td>7,73</td><td>29,12</td></tr>
|
| 8 |
+
<tr><td>Konut (11-20 m³)</td><td>29,24</td><td>9,08</td><td>38,32</td></tr>
|
| 9 |
+
<tr><td>Konut (20 m³ üzeri)</td><td>30,48</td><td>14,00</td><td>44,48</td></tr>
|
| 10 |
+
<tr><td>İşyeri</td><td>78,05</td><td>38,55</td><td>116,60</td></tr>
|
| 11 |
+
<tr><td>Resmi Daire</td><td>55,85</td><td>29,76</td><td>85,61</td></tr>
|
| 12 |
+
<tr><td>İnşaat</td><td>91,33</td><td>37,98</td><td>129,31</td></tr>
|
| 13 |
+
<tr><td>Organize Sanayi</td><td>21,00</td><td>12,11</td><td>33,11</td></tr>
|
| 14 |
+
</tbody>
|
| 15 |
+
<tfoot><tr><td colspan='4'>Fiyatlara KDV dahil değildir.</td></tr></tfoot>
|
| 16 |
+
</table>
|
| 17 |
+
</body></html>
|
agir_kume/belgeler/belediye_26_kartaltepe_2025_butce.pdf
ADDED
|
Binary file (46.9 kB). View file
|
|
|
agir_kume/belgeler/belediye_27_bademli_mahalle.html
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!doctype html><html lang='tr'><head><meta charset='utf-8'><title>BADEMLI BELEDİYESİ MAHALLE NÜFUS BİLGİLERİ</title><style>body{font-family:DejaVu Sans,Arial,sans-serif;max-width:960px;margin:24px auto}table{border-collapse:collapse;margin:8px 0}td,th{border:1px solid #888;padding:3px 8px;font-size:13px}td:not(:first-child){text-align:right}tfoot td{border:none;font-size:11px;text-align:left!important}.uyari{color:#9a3412;font-size:12px}</style></head><body>
|
| 2 |
+
<p class='uyari'>KURGUSAL ÖRNEK BELGE — Tablo2SQL-TR stres testi için üretilmiştir; gerçek kurum verisi değildir.</p><h1>BADEMLI BELEDİYESİ MAHALLE NÜFUS BİLGİLERİ</h1>
|
| 3 |
+
<p>Bademli Belediyesi sınırları içindeki mahallelerin 2025 yılı nüfus ve hane bilgileri aşağıda sunulmuştur.</p>
|
| 4 |
+
<table><caption>Tablo 8: Mahallelere Göre Nüfus ve Hane Sayısı</caption><thead>
|
| 5 |
+
<tr><th>Mahalle</th><th>Nüfus (2024)</th><th>Nüfus (2025)</th><th>Hane Sayısı (2025)</th><th>Değişim (%)</th></tr>
|
| 6 |
+
</thead><tbody>
|
| 7 |
+
<tr><td>Çınarlı</td><td>20.172</td><td>20.248</td><td>6.257</td><td>0,38</td></tr>
|
| 8 |
+
<tr><td>Şirinevler</td><td>12.337</td><td>11.815</td><td>3.627</td><td>-4,23</td></tr>
|
| 9 |
+
<tr><td>Dumlupınar</td><td>20.494</td><td>21.221</td><td>8.389</td><td>3,55</td></tr>
|
| 10 |
+
<tr><td>Esentepe</td><td>5.730</td><td>6.117</td><td>2.181</td><td>6,75</td></tr>
|
| 11 |
+
<tr><td>Ziya Gökalp</td><td>24.882</td><td>25.989</td><td>7.066</td><td>4,45</td></tr>
|
| 12 |
+
<tr><td>Güzeltepe</td><td>18.650</td><td>19.482</td><td>5.810</td><td>4,46</td></tr>
|
| 13 |
+
<tr><td>Mevlana</td><td>6.751</td><td>7.216</td><td>2.133</td><td>6,89</td></tr>
|
| 14 |
+
<tr><td>İstiklal</td><td>22.724</td><td>22.408</td><td>6.895</td><td>-1,39</td></tr>
|
| 15 |
+
<tr><td>Emek</td><td>8.584</td><td>8.607</td><td>2.729</td><td>0,27</td></tr>
|
| 16 |
+
<tr><td>İnönü</td><td>5.442</td><td>5.672</td><td>2.085</td><td>4,23</td></tr>
|
| 17 |
+
<tr><td>Kocatepe</td><td>7.014</td><td>7.317</td><td>2.107</td><td>4,32</td></tr>
|
| 18 |
+
<tr><td>Orhangazi</td><td>13.204</td><td>13.490</td><td>4.396</td><td>2,17</td></tr>
|
| 19 |
+
<tr><td>Sümbül</td><td>21.031</td><td>20.899</td><td>7.089</td><td>-0,63</td></tr>
|
| 20 |
+
<tr><td>Yeşilyurt</td><td>10.739</td><td>11.477</td><td>4.350</td><td>6,87</td></tr>
|
| 21 |
+
<tr><td>Kayabaşı</td><td>24.137</td><td>24.245</td><td>9.169</td><td>0,45</td></tr>
|
| 22 |
+
<tr><td>Mimar Sinan</td><td>11.376</td><td>11.651</td><td>3.835</td><td>2,42</td></tr>
|
| 23 |
+
<tr><td>Fatih</td><td>17.299</td><td>17.902</td><td>4.988</td><td>3,49</td></tr>
|
| 24 |
+
<tr><td>Söğütlü</td><td>19.564</td><td>19.541</td><td>6.071</td><td>-0,12</td></tr>
|
| 25 |
+
<tr><td>Ufuktepe</td><td>13.775</td><td>13.510</td><td>4.191</td><td>-1,92</td></tr>
|
| 26 |
+
<tr><td>Gülbahçe</td><td>19.864</td><td>19.152</td><td>6.915</td><td>-3,58</td></tr>
|
| 27 |
+
<tr><td>Gençlik</td><td>3.912</td><td>4.065</td><td>1.288</td><td>3,91</td></tr>
|
| 28 |
+
<tr><td>Ihlamur</td><td>1.033</td><td>1.019</td><td>333</td><td>-1,36</td></tr>
|
| 29 |
+
<tr><td>Çamlıbel</td><td>20.755</td><td>20.636</td><td>6.828</td><td>-0,57</td></tr>
|
| 30 |
+
<tr><td>Kazım Karabekir</td><td>7.791</td><td>8.234</td><td>2.851</td><td>5,69</td></tr>
|
| 31 |
+
<tr><td>Mehmet Akif</td><td>7.674</td><td>7.728</td><td>2.528</td><td>0,70</td></tr>
|
| 32 |
+
<tr><td>Alparslan</td><td>6.885</td><td>7.241</td><td>2.584</td><td>5,17</td></tr>
|
| 33 |
+
<tr><td>Turgut Özal</td><td>14.452</td><td>14.557</td><td>3.944</td><td>0,73</td></tr>
|
| 34 |
+
<tr><td>Ilıca</td><td>10.453</td><td>10.255</td><td>2.998</td><td>-1,89</td></tr>
|
| 35 |
+
<tr><td>Örnekköy</td><td>24.404</td><td>24.811</td><td>7.696</td><td>1,67</td></tr>
|
| 36 |
+
<tr><td>Malazgirt</td><td>2.690</td><td>2.803</td><td>1.004</td><td>4,20</td></tr>
|
| 37 |
+
<tr><td>Ulubatlı</td><td>5.869</td><td>5.969</td><td>1.667</td><td>1,70</td></tr>
|
| 38 |
+
<tr><td>Fevzi Çakmak</td><td>2.328</td><td>2.364</td><td>719</td><td>1,55</td></tr>
|
| 39 |
+
<tr><td>Çağlayan</td><td>10.082</td><td>10.708</td><td>3.514</td><td>6,21</td></tr>
|
| 40 |
+
<tr><td>Pınarönü</td><td>1.135</td><td>1.160</td><td>360</td><td>2,20</td></tr>
|
| 41 |
+
<tr><td>Atatürk</td><td>25.309</td><td>25.953</td><td>7.513</td><td>2,54</td></tr>
|
| 42 |
+
<tr><td>Hürriyet</td><td>14.053</td><td>14.981</td><td>4.113</td><td>6,60</td></tr>
|
| 43 |
+
<tr><td>Değirmenönü</td><td>24.108</td><td>23.227</td><td>7.730</td><td>-3,65</td></tr>
|
| 44 |
+
<tr><td>Zafer</td><td>6.763</td><td>7.103</td><td>2.606</td><td>5,03</td></tr>
|
| 45 |
+
<tr><td>Akşemsettin</td><td>9.639</td><td>9.197</td><td>3.109</td><td>-4,59</td></tr>
|
| 46 |
+
<tr><td>Kurtuluş</td><td>16.447</td><td>17.381</td><td>5.566</td><td>5,68</td></tr>
|
| 47 |
+
<tr><td>Hacı Bayram</td><td>5.923</td><td>5.920</td><td>2.015</td><td>-0,05</td></tr>
|
| 48 |
+
<tr><td>Karşıyaka</td><td>16.890</td><td>17.567</td><td>5.092</td><td>4,01</td></tr>
|
| 49 |
+
<tr><td>Papatya</td><td>23.156</td><td>23.943</td><td>6.849</td><td>3,40</td></tr>
|
| 50 |
+
<tr><td>Osmangazi</td><td>11.373</td><td>11.382</td><td>4.187</td><td>0,08</td></tr>
|
| 51 |
+
<tr><td>Yavuz Selim</td><td>4.194</td><td>4.147</td><td>1.123</td><td>-1,12</td></tr>
|
| 52 |
+
<tr><td>Lale</td><td>12.487</td><td>11.886</td><td>3.729</td><td>-4,81</td></tr>
|
| 53 |
+
<tr><td>Sakarya</td><td>10.950</td><td>11.549</td><td>4.081</td><td>5,47</td></tr>
|
| 54 |
+
<tr><td>Yıldıztepe</td><td>12.198</td><td>12.505</td><td>3.389</td><td>2,52</td></tr>
|
| 55 |
+
<tr><td>Namık Kemal</td><td>7.082</td><td>7.240</td><td>2.293</td><td>2,23</td></tr>
|
| 56 |
+
<tr><td>Gazi Osman Paşa</td><td>12.064</td><td>12.733</td><td>3.645</td><td>5,55</td></tr>
|
| 57 |
+
<tr><td>Bağlarbaşı</td><td>962</td><td>946</td><td>364</td><td>-1,66</td></tr>
|
| 58 |
+
<tr><td>Işıklar</td><td>21.069</td><td>22.243</td><td>7.575</td><td>5,57</td></tr>
|
| 59 |
+
<tr><td>Sütçü İmam</td><td>19.850</td><td>20.855</td><td>6.377</td><td>5,06</td></tr>
|
| 60 |
+
<tr><td>Yunus Emre</td><td>24.429</td><td>25.318</td><td>7.807</td><td>3,64</td></tr>
|
| 61 |
+
<tr><td>Akarca</td><td>12.288</td><td>12.009</td><td>3.447</td><td>-2,27</td></tr>
|
| 62 |
+
<tr><td>Bereket</td><td>17.370</td><td>17.724</td><td>4.860</td><td>2,04</td></tr>
|
| 63 |
+
<tr><td>Kemalpaşa</td><td>5.623</td><td>6.010</td><td>2.382</td><td>6,88</td></tr>
|
| 64 |
+
<tr><td>Barbaros</td><td>13.346</td><td>14.131</td><td>3.988</td><td>5,88</td></tr>
|
| 65 |
+
<tr style='font-weight:bold'><td>Toplam</td><td>750.805</td><td>765.459</td><td>242.437</td><td></td></tr>
|
| 66 |
+
</tbody>
|
| 67 |
+
<tfoot><tr><td colspan='5'>Kaynak: Adrese Dayalı Nüfus Kayıt Sistemi sonuçları (kurgusal).</td></tr></tfoot>
|
| 68 |
+
</table>
|
| 69 |
+
</body></html>
|
agir_kume/belgeler/belediye_33_bademli_personel.pdf
ADDED
|
Binary file (45.4 kB). View file
|
|
|
agir_kume/belgeler/belediye_36_kartaltepe_2026_tarife.pdf
ADDED
|
Binary file (46.3 kB). View file
|
|
|
agir_kume/belgeler/belediye_39_kumluca_ova_2024_butce.html
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!doctype html><html lang='tr'><head><meta charset='utf-8'><title>T.C. KUMLUCA OVA BELEDİYESİ 2024 YILI FAALİYET RAPORU</title><style>body{font-family:DejaVu Sans,Arial,sans-serif;max-width:960px;margin:24px auto}table{border-collapse:collapse;margin:8px 0}td,th{border:1px solid #888;padding:3px 8px;font-size:13px}td:not(:first-child){text-align:right}tfoot td{border:none;font-size:11px;text-align:left!important}.uyari{color:#9a3412;font-size:12px}</style></head><body>
|
| 2 |
+
<p class='uyari'>KURGUSAL ÖRNEK BELGE — Tablo2SQL-TR stres testi için üretilmiştir; gerçek kurum verisi değildir.</p><h1>T.C. KUMLUCA OVA BELEDİYESİ 2024 YILI FAALİYET RAPORU</h1>
|
| 3 |
+
<p>Bu rapor, 5018 sayılı Kamu Mali Yönetimi ve Kontrol Kanunu uyarınca Kumluca Ova Belediyesinin 2024 mali yılı faaliyetlerini ve bütçe uygulama sonuçlarını içermektedir.</p>
|
| 4 |
+
<table><caption>Tablo 4: 2024 Yılı Bütçe Giderlerinin Ekonomik Sınıflandırmaya Göre Dağılımı (bin TL)</caption><thead>
|
| 5 |
+
<tr><th rowspan='2'>Gider Türü</th><th rowspan='2'>Ekonomik Kod</th><th colspan='2'>Ödenek</th><th rowspan='2'>Gerçekleşme</th><th rowspan='2'>Gerçekleşme Oranı (%)</th></tr><tr><th>Bütçe Ödeneği</th><th>Toplam Ödenek</th></tr>
|
| 6 |
+
</thead><tbody>
|
| 7 |
+
<tr><td>Personel Giderleri</td><td>01</td><td>155.481,0</td><td>156.543,3</td><td>111.163,4</td><td>71,0</td></tr>
|
| 8 |
+
<tr><td>Sosyal Güvenlik Kurumlarına Devlet Primi Giderleri</td><td>02</td><td>80.760,0</td><td>81.625,9</td><td>44.828,1</td><td>54,9</td></tr>
|
| 9 |
+
<tr><td>Mal ve Hizmet Alım Giderleri</td><td>03</td><td>177.127,0</td><td>176.328,7</td><td>142.985,2</td><td>81,1</td></tr>
|
| 10 |
+
<tr><td>Faiz Giderleri</td><td>04</td><td>67.762,0</td><td>71.520,4</td><td>61.655,3</td><td>86,2</td></tr>
|
| 11 |
+
<tr><td>Cari Transferler</td><td>05</td><td>21.604,0</td><td>22.575,9</td><td>17.001,4</td><td>75,3</td></tr>
|
| 12 |
+
<tr><td>Sermaye Giderleri</td><td>06</td><td>118.371,0</td><td>124.027,3</td><td>83.738,0</td><td>67,5</td></tr>
|
| 13 |
+
<tr><td>Sermaye Transferleri</td><td>07</td><td>9.960,0</td><td>9.806,5</td><td>6.743,4</td><td>68,8</td></tr>
|
| 14 |
+
<tr><td>Borç Verme</td><td>08</td><td>172.663,0</td><td>185.860,2</td><td>161.627,3</td><td>87,0</td></tr>
|
| 15 |
+
<tr style='font-weight:bold'><td>TOPLAM</td><td></td><td>803.728,0</td><td>828.288,2</td><td>629.742,1</td><td></td></tr>
|
| 16 |
+
</tbody>
|
| 17 |
+
<tfoot><tr><td colspan='6'>Kaynak: Mali Hizmetler Müdürlüğü kesin hesap verileri.</td></tr></tfoot>
|
| 18 |
+
</table>
|
| 19 |
+
<table><caption>Tablo 11: Gelirlerin Yıllara Göre Karşılaştırılması (bin TL)</caption><thead>
|
| 20 |
+
<tr><th>Gelir Türü</th><th>2023</th><th>2024</th><th>Değişim 2023-2024 (%)</th></tr>
|
| 21 |
+
</thead><tbody>
|
| 22 |
+
<tr><td>Vergi Gelirleri</td><td>81.246,0</td><td>69.529,2</td><td>-14,42</td></tr>
|
| 23 |
+
<tr><td>Teşebbüs ve Mülkiyet Gelirleri</td><td>15.604,0</td><td>20.856,4</td><td>33,66</td></tr>
|
| 24 |
+
<tr><td>Alınan Bağış ve Yardımlar</td><td>88.316,0</td><td>116.128,6</td><td>31,49</td></tr>
|
| 25 |
+
<tr><td>Diğer Gelirler</td><td>43.991,0</td><td>43.453,0</td><td>-1,22</td></tr>
|
| 26 |
+
<tr><td>Sermaye Gelirleri</td><td>9.364,0</td><td>10.426,0</td><td>11,34</td></tr>
|
| 27 |
+
<tr style='font-weight:bold'><td>Toplam</td><td>238.521,0</td><td>260.393,2</td><td></td></tr>
|
| 28 |
+
</tbody>
|
| 29 |
+
</table>
|
| 30 |
+
</body></html>
|
agir_kume/belgeler/belediye_40_gokdere_mahalle.pdf
ADDED
|
Binary file (47.8 kB). View file
|
|
|
agir_kume/belgeler/belediye_46_gokdere_personel.pdf
ADDED
|
Binary file (45.5 kB). View file
|
|
|
agir_kume/belgeler/belediye_49_kumluca_ova_2025_tarife.pdf
ADDED
|
Binary file (46.2 kB). View file
|
|
|
agir_kume/belgeler/il_03_deniztepe_2025_turizm.html
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!doctype html><html lang='tr'><head><meta charset='utf-8'><title>DENIZTEPE İLİ 2025 YILI TURİZM BÜLTENİ</title><style>body{font-family:DejaVu Sans,Arial,sans-serif;max-width:960px;margin:24px auto}table{border-collapse:collapse;margin:8px 0}td,th{border:1px solid #888;padding:3px 8px;font-size:13px}td:not(:first-child){text-align:right}tfoot td{border:none;font-size:11px;text-align:left!important}.uyari{color:#9a3412;font-size:12px}</style></head><body>
|
| 2 |
+
<p class='uyari'>KURGUSAL ÖRNEK BELGE — Tablo2SQL-TR stres testi için üretilmiştir; gerçek kurum verisi değildir.</p><h1>DENIZTEPE İLİ 2025 YILI TURİZM BÜLTENİ</h1>
|
| 3 |
+
<p>Deniztepe İli 2025 yılı turizm istatistikleri aşağıda sunulmuştur. Veriler geçicidir.</p>
|
| 4 |
+
<table><caption>Tablo 1: İlçelere Göre Konaklama Tesislerine Geliş Sayısı (Kişi)</caption><thead>
|
| 5 |
+
<tr><th rowspan='2'>İlçe</th><th colspan='4'>2025</th><th rowspan='2'>2025 Toplam</th><th rowspan='2'>2024 Toplam</th><th rowspan='2'>Değişim (%)</th></tr><tr><th>Ç1</th><th>Ç2</th><th>Ç3</th><th>Ç4</th></tr>
|
| 6 |
+
</thead><tbody>
|
| 7 |
+
<tr><td>Ilıcaköy</td><td>34.394</td><td>68.160</td><td>92.675</td><td>41.329</td><td>236.558</td><td>267.893</td><td>-11,7</td></tr>
|
| 8 |
+
<tr><td>Sarıyurt</td><td>25.995</td><td>45.274</td><td>60.376</td><td>28.551</td><td>160.196</td><td>136.613</td><td>17,3</td></tr>
|
| 9 |
+
<tr><td>Yeşilköprü</td><td>3.546</td><td>7.468</td><td>9.472</td><td>4.031</td><td>24.517</td><td>26.389</td><td>-7,1</td></tr>
|
| 10 |
+
<tr><td>Kuşkaya</td><td>4.173</td><td>6.686</td><td>11.293</td><td>4.998</td><td>27.150</td><td>25.805</td><td>5,2</td></tr>
|
| 11 |
+
<tr><td>Kayalı</td><td>6.266</td><td>12.151</td><td>16.990</td><td>6.718</td><td>42.125</td><td>36.932</td><td>14,1</td></tr>
|
| 12 |
+
<tr><td>Ortaköy</td><td>4.199</td><td>7.464</td><td>11.316</td><td>5.133</td><td>28.112</td><td>25.732</td><td>9,2</td></tr>
|
| 13 |
+
<tr><td>Taşlıdere</td><td>9.474</td><td>19.880</td><td>30.031</td><td>11.522</td><td>70.907</td><td>63.088</td><td>12,4</td></tr>
|
| 14 |
+
<tr><td>Bozkurtlu</td><td>19.106</td><td>35.617</td><td>50.378</td><td>22.562</td><td>127.663</td><td>114.267</td><td>11,7</td></tr>
|
| 15 |
+
<tr><td>Esenyurt</td><td>4.426</td><td>7.374</td><td>11.723</td><td>4.440</td><td>27.963</td><td>25.734</td><td>8,7</td></tr>
|
| 16 |
+
<tr><td>Çamlıyayla</td><td>25.687</td><td>46.352</td><td>72.186</td><td>28.617</td><td>172.842</td><td>187.610</td><td>-7,9</td></tr>
|
| 17 |
+
<tr><td>Akpınar</td><td>22.731</td><td>39.002</td><td>56.551</td><td>24.966</td><td>143.250</td><td>129.344</td><td>10,8</td></tr>
|
| 18 |
+
<tr><td>Yukarıova</td><td>29.865</td><td>53.777</td><td>81.128</td><td>34.729</td><td>199.499</td><td>228.617</td><td>-12,7</td></tr>
|
| 19 |
+
<tr style='font-weight:bold'><td>İl Toplamı</td><td>189.862</td><td>349.205</td><td>504.119</td><td>217.596</td><td>1.260.782</td><td>1.268.024</td><td></td></tr>
|
| 20 |
+
</tbody>
|
| 21 |
+
<tfoot><tr><td colspan='8'>Kaynak: İl Kültür ve Turizm Müdürlüğü. Ç: çeyrek.</td></tr></tfoot>
|
| 22 |
+
</table>
|
| 23 |
+
</body></html>
|
agir_kume/belgeler/il_04_ardicli_2024_konut.pdf
ADDED
|
Binary file (46.6 kB). View file
|
|
|
agir_kume/belgeler/il_05_deniztepe_2025_tufe.pdf
ADDED
|
Binary file (46.1 kB). View file
|
|
|
agir_kume/belgeler/il_08_deniztepe_2025_yatirim.pdf
ADDED
|
Binary file (46.6 kB). View file
|
|
|
agir_kume/belgeler/il_09_ardicli_enerji.pdf
ADDED
|
Binary file (46.3 kB). View file
|
|
|
agir_kume/belgeler/il_11_aksungur_2025_havalimani.html
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!doctype html><html lang='tr'><head><meta charset='utf-8'><title>AKSUNGUR HAVALİMANI 2025 YILI İSTATİSTİKLERİ</title><style>body{font-family:DejaVu Sans,Arial,sans-serif;max-width:960px;margin:24px auto}table{border-collapse:collapse;margin:8px 0}td,th{border:1px solid #888;padding:3px 8px;font-size:13px}td:not(:first-child){text-align:right}tfoot td{border:none;font-size:11px;text-align:left!important}.uyari{color:#9a3412;font-size:12px}</style></head><body>
|
| 2 |
+
<p class='uyari'>KURGUSAL ÖRNEK BELGE — Tablo2SQL-TR stres testi için üretilmiştir; gerçek kurum verisi değildir.</p><h1>AKSUNGUR HAVALİMANI 2025 YILI İSTATİSTİKLERİ</h1>
|
| 3 |
+
<p>Aksungur Havalimanında 2024 ve 2025 yıllarında taşınan yolcu sayıları aylara göre verilmiştir.</p>
|
| 4 |
+
<table><caption>Tablo 5: Aylara Göre Havalimanı Yolcu Trafiği (Yolcu)</caption><thead>
|
| 5 |
+
<tr><th rowspan='2'>Ay</th><th colspan='2'>2024</th><th colspan='2'>2025</th></tr><tr><th>İç Hat</th><th>Dış Hat</th><th>İç Hat</th><th>Dış Hat</th></tr>
|
| 6 |
+
</thead><tbody>
|
| 7 |
+
<tr><td>Ocak</td><td>142.376</td><td>18.949</td><td>105.940</td><td>57.957</td></tr>
|
| 8 |
+
<tr><td>Şubat</td><td>79.253</td><td>25.854</td><td>77.704</td><td>17.666</td></tr>
|
| 9 |
+
<tr><td>Mart</td><td>84.874</td><td>40.685</td><td>45.325</td><td>10.208</td></tr>
|
| 10 |
+
<tr><td>Nisan</td><td>134.983</td><td>25.114</td><td>152.141</td><td>30.995</td></tr>
|
| 11 |
+
<tr><td>Mayıs</td><td>75.043</td><td>34.471</td><td>128.075</td><td>46.534</td></tr>
|
| 12 |
+
<tr><td>Haziran</td><td>210.630</td><td>90.699</td><td>284.448</td><td>153.530</td></tr>
|
| 13 |
+
<tr><td>Temmuz</td><td>151.003</td><td>114.471</td><td>101.658</td><td>15.441</td></tr>
|
| 14 |
+
<tr><td>Ağustos</td><td>248.120</td><td>139.666</td><td>101.692</td><td>120.780</td></tr>
|
| 15 |
+
<tr><td>Eylül</td><td>105.887</td><td>62.547</td><td>138.452</td><td>106.331</td></tr>
|
| 16 |
+
<tr><td>Ekim</td><td>91.494</td><td>50.352</td><td>136.680</td><td>35.566</td></tr>
|
| 17 |
+
<tr><td>Kasım</td><td>139.811</td><td>30.926</td><td>100.822</td><td>50.427</td></tr>
|
| 18 |
+
<tr><td>Aralık</td><td>87.206</td><td>12.310</td><td>66.396</td><td>35.269</td></tr>
|
| 19 |
+
<tr style='font-weight:bold'><td>Toplam</td><td>1.550.680</td><td>646.044</td><td>1.439.333</td><td>680.704</td></tr>
|
| 20 |
+
</tbody>
|
| 21 |
+
<tfoot><tr><td colspan='5'>Kaynak: Havalimanı Mülki İdare Amirliği (kurgusal). Transit yolcular hariçtir.</td></tr></tfoot>
|
| 22 |
+
</table>
|
| 23 |
+
</body></html>
|
agir_kume/belgeler/il_12_gokceova_kaza.pdf
ADDED
|
Binary file (46.9 kB). View file
|
|
|
agir_kume/belgeler/il_16_aksungur_2025_turizm.pdf
ADDED
|
Binary file (47.3 kB). View file
|
|
|
agir_kume/belgeler/il_17_kizilyar_2025_konut.pdf
ADDED
|
Binary file (46.5 kB). View file
|
|
|
agir_kume/belgeler/il_18_aksungur_2025_tufe.pdf
ADDED
|
Binary file (46.1 kB). View file
|
|
|
agir_kume/belgeler/il_21_aksungur_2024_yatirim.pdf
ADDED
|
Binary file (46.4 kB). View file
|
|
|
agir_kume/belgeler/il_22_kizilyar_enerji.pdf
ADDED
|
Binary file (46 kB). View file
|
|
|
agir_kume/belgeler/il_24_yaylacik_2025_havalimani.pdf
ADDED
|
Binary file (46.6 kB). View file
|
|
|
agir_kume/belgeler/il_25_deniztepe_kaza.pdf
ADDED
|
Binary file (46.5 kB). View file
|
|
|
agir_kume/belgeler/il_29_yaylacik_2025_turizm.pdf
ADDED
|
Binary file (46.5 kB). View file
|
|
|
agir_kume/belgeler/il_30_gokceova_2024_konut.pdf
ADDED
|
Binary file (46.3 kB). View file
|
|
|
agir_kume/belgeler/il_31_yaylacik_2024_tufe.html
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!doctype html><html lang='tr'><head><meta charset='utf-8'><title>YAYLACIK BÖLGESİ 2024 YILI FİYAT İSTATİSTİKLERİ</title><style>body{font-family:DejaVu Sans,Arial,sans-serif;max-width:960px;margin:24px auto}table{border-collapse:collapse;margin:8px 0}td,th{border:1px solid #888;padding:3px 8px;font-size:13px}td:not(:first-child){text-align:right}tfoot td{border:none;font-size:11px;text-align:left!important}.uyari{color:#9a3412;font-size:12px}</style></head><body>
|
| 2 |
+
<p class='uyari'>KURGUSAL ÖRNEK BELGE — Tablo2SQL-TR stres testi için üretilmiştir; gerçek kurum verisi değildir.</p><h1>YAYLACIK BÖLGESİ 2024 YILI FİYAT İSTATİSTİKLERİ</h1>
|
| 3 |
+
<p>Yaylacık bölgesinde 2024 yılı aylık tüketici fiyatları değişimleri sunulmuştur.</p>
|
| 4 |
+
<table><caption>Tablo 1: Tüketici Fiyat Endeksi ve Değişim Oranları</caption><thead>
|
| 5 |
+
<tr><th>Dönem</th><th>Endeks (2003=100)</th><th>Aylık Değişim (%)</th><th>Yıllık Değişim (%)</th></tr>
|
| 6 |
+
</thead><tbody>
|
| 7 |
+
<tr><td>Ocak 2024</td><td>2.108,96</td><td>%4,14</td><td>%45,56</td></tr>
|
| 8 |
+
<tr><td>Şubat 2024</td><td>2.123,09</td><td>%0,67</td><td>%50,22</td></tr>
|
| 9 |
+
<tr><td>Mart 2024</td><td>2.120,76</td><td>-%0,11</td><td>%57,95</td></tr>
|
| 10 |
+
<tr><td>Nisan 2024</td><td>2.160,20</td><td>%1,86</td><td>%74,83</td></tr>
|
| 11 |
+
<tr><td>Mayıs 2024</td><td>2.170,14</td><td>%0,46</td><td>%28,66</td></tr>
|
| 12 |
+
<tr><td>Haziran 2024</td><td>2.177,30</td><td>%0,33</td><td>%38,11</td></tr>
|
| 13 |
+
<tr><td>Temmuz 2024</td><td>2.256,56</td><td>%3,64</td><td>%71,65</td></tr>
|
| 14 |
+
<tr><td>Ağustos 2024</td><td>2.310,04</td><td>%2,37</td><td>%70,05</td></tr>
|
| 15 |
+
<tr><td>Eylül 2024</td><td>2.387,65</td><td>%3,36</td><td>%28,30</td></tr>
|
| 16 |
+
<tr><td>Ekim 2024</td><td>2.443,53</td><td>%2,34</td><td>%41,67</td></tr>
|
| 17 |
+
<tr><td>Kasım 2024</td><td>2.521,96</td><td>%3,21</td><td>%29,00</td></tr>
|
| 18 |
+
<tr><td>Aralık 2024</td><td>2.504,31</td><td>-%0,70</td><td>%70,06</td></tr>
|
| 19 |
+
</tbody>
|
| 20 |
+
<tfoot><tr><td colspan='4'>Kaynak: Bölge istatistik ofisi (kurgusal).</td></tr></tfoot>
|
| 21 |
+
</table>
|
| 22 |
+
</body></html>
|
agir_kume/belgeler/il_34_yaylacik_2025_yatirim.pdf
ADDED
|
Binary file (46.2 kB). View file
|
|
|
agir_kume/belgeler/il_35_gokceova_enerji.html
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!doctype html><html lang='tr'><head><meta charset='utf-8'><title>GÖKÇEOVA İLİ ENERJİ GÖSTERGELERİ</title><style>body{font-family:DejaVu Sans,Arial,sans-serif;max-width:960px;margin:24px auto}table{border-collapse:collapse;margin:8px 0}td,th{border:1px solid #888;padding:3px 8px;font-size:13px}td:not(:first-child){text-align:right}tfoot td{border:none;font-size:11px;text-align:left!important}.uyari{color:#9a3412;font-size:12px}</style></head><body>
|
| 2 |
+
<p class='uyari'>KURGUSAL ÖRNEK BELGE — Tablo2SQL-TR stres testi için üretilmiştir; gerçek kurum verisi değildir.</p><h1>GÖKÇEOVA İLİ ENERJİ GÖSTERGELERİ</h1>
|
| 3 |
+
<p>Gökçeova ilinde ilçelere göre elektrik tüketimi 2023-2025 döneminde aşağıdaki gibidir.</p>
|
| 4 |
+
<table><caption>Tablo 2: İlçelere Göre Elektrik Tüketimi (bin MWh)</caption><thead>
|
| 5 |
+
<tr><th>İlçe</th><th>2023</th><th>2024</th><th>2025</th><th>Değişim 2024-2025 (%)</th></tr>
|
| 6 |
+
</thead><tbody>
|
| 7 |
+
<tr><td>Çamlıyayla</td><td>634,5</td><td>677,6</td><td>573,5</td><td>-15,4</td></tr>
|
| 8 |
+
<tr><td>Yukarıova</td><td>762,4</td><td>756,4</td><td>801,2</td><td>5,9</td></tr>
|
| 9 |
+
<tr><td>Gölyaka</td><td>507,2</td><td>551,1</td><td>516,6</td><td>-6,3</td></tr>
|
| 10 |
+
<tr><td>Ortaköy</td><td>523,9</td><td>608,8</td><td>546,4</td><td>-10,2</td></tr>
|
| 11 |
+
<tr><td>Esenyurt</td><td>141,0</td><td>155,7</td><td>164,8</td><td>5,8</td></tr>
|
| 12 |
+
<tr><td>Taşlıdere</td><td>217,6</td><td>230,3</td><td>205,5</td><td>-10,8</td></tr>
|
| 13 |
+
<tr><td>Karaağıl</td><td>19,1</td><td>21,9</td><td>19,6</td><td>-10,5</td></tr>
|
| 14 |
+
<tr><td>Bozkurtlu</td><td>678,4</td><td>694,6</td><td>629,6</td><td>-9,4</td></tr>
|
| 15 |
+
<tr><td>Ilıcaköy</td><td>880,0</td><td>832,7</td><td>753,4</td><td>-9,5</td></tr>
|
| 16 |
+
<tr><td>Akpınar</td><td>285,1</td><td>294,4</td><td>275,6</td><td>-6,4</td></tr>
|
| 17 |
+
</tbody>
|
| 18 |
+
<tfoot><tr><td colspan='5'>Kaynak: Dağıtım şirketi verileri (kurgusal).</td></tr></tfoot>
|
| 19 |
+
</table>
|
| 20 |
+
</body></html>
|
agir_kume/belgeler/il_37_ardicli_2024_havalimani.pdf
ADDED
|
Binary file (46.5 kB). View file
|
|
|
agir_kume/belgeler/il_38_aksungur_kaza.pdf
ADDED
|
Binary file (46.4 kB). View file
|
|
|
agir_kume/belgeler/il_42_ardicli_2025_turizm.pdf
ADDED
|
Binary file (46.7 kB). View file
|
|
|