Ülke–Başkent Asistanı, kullanıcıların bir ülke adı yazarak o ülkenin başkentini öğrenmesini sağlayan
yapay zekâ destekli chatbot uygulamasıdır.
Proje, Google Gemini 2.0 Flash modeliyle desteklenmiştir.
Öncelikle veriseti.txt dosyasından en uygun sonucu bulmaya çalışır; eğer veri setinde bulunmazsa
soru Gemini modeline yönlendirilir.
- 🧩 RAG tabanlı yapı: Önce yerel veri setinden yanıt, gerekirse LLM desteği
- 🤖 Google Gemini 2.0 Flash modeliyle doğal dil yanıtları
- 🧮 Fuzzy matching (yakın eşleşme) ile hatalı yazımları anlama
- 💬 Gradio tabanlı sohbet arayüzü
- 🔒 .env desteğiyle güvenli API anahtarı yönetimi
- ☁️ Yerel veya çevrimiçi (Gradio Share) çalışma desteği
| Teknoloji | Açıklama |
|---|---|
| Python 3.10+ | Geliştirme dili |
| Gradio | Web tabanlı sohbet arayüzü |
| Google Generative AI (Gemini) | Doğal dil üretimi |
| difflib | Yakın eşleşme (fuzzy search) |
| python-dotenv | Ortam değişkeni yönetimi |
📦 ulke-baskent-chatbot
│
├── images/
│ └── mainpage.png # Uygulama ana sayfa görseli
│
├── veriseti.txt # Ülke–başkent verileri
│
├── app.py # Ana uygulama (chatbot mantığı)
│
├── .env # API anahtarı (GEMINI_API_KEY)
│
└── requirements.txt # Gerekli bağımlılıklarProje kök dizininde bir .env dosyası oluşturun ve aşağıdaki satırı ekleyin:
GEMINI_API_KEY=YOUR_API_KEY_HEREBirleşik Arap Emirlikleri - Abu Dhabi
Nijerya - Abuja
Gana - Accra
Etiyopya - Addis Ababa
Cezayir - Algiers
Ürdün - Amman
Hollanda - Amsterdam
Andorra - Andorra la Vella
Türkiye - Ankara
Madagaskar - Antananarivo
Veri setinde her satır ülke – başkent biçiminde tanımlanmıştır.
İstersen yeni ülkeleri kolayca bu formata göre ekleyebilirsin.
- Kullanıcıdan gelen metin normalize edilir (büyük/küçük harf, noktalama temizliği vs.).
- Sistem önce veriseti.txt içinde doğrudan eşleşme arar.
- Eşleşme bulunamazsa, yakın eşleşme (fuzzy matching) yöntemi devreye girer.
- Eğer hâlâ sonuç yoksa, sorgu Gemini modeline iletilir.
- Yanıt Gradio arayüzünde kullanıcıya gösterilir.
Eğer ülke bulunamazsa:
Ülkeyi bulamadım. Şunları mı demek istediniz: ...
Arayüz, kullanıcıya basit ve sezgisel bir sohbet ortamı sunar.
Örnek sorgular:
- “Türkiye”
- “Fransa’nın başkenti?”
- “Almanya”
- “Çin’in başkenti”
- “Azerbaycan başkent”
- “Amerika Birleşik Devletleri”
Uygulama başlatıldığında Gradio arayüzü otomatik olarak tarayıcıda açılır.
İstersen share=True parametresi ile herkese açık bir bağlantı oluşturabilirsin.
google-generativeai>=0.8.3
gradio==5.9.1
python-dotenv==1.0.1
numpy
