Skip to content

abdullahokyay/chatbot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🗺️ Ülke–Başkent Asistanı (CapitalFinder AI)

Ülke–Başkent Asistanı Ana Sayfa

📖 Genel Bakış

Ü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.


🧠 Proje Özellikleri

  • 🧩 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

🧩 Kullanılan Teknolojiler

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

📂 Proje Yapısı

📦 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ıklar

⚙️ .env Dosyasını Oluşturma

Proje kök dizininde bir .env dosyası oluşturun ve aşağıdaki satırı ekleyin:

GEMINI_API_KEY=YOUR_API_KEY_HERE

🗺️ Örnek Veri Seti (veriseti.txt)

Birleş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.


🧠 Çalışma Mantığı

  1. Kullanıcıdan gelen metin normalize edilir (büyük/küçük harf, noktalama temizliği vs.).
  2. Sistem önce veriseti.txt içinde doğrudan eşleşme arar.
  3. Eşleşme bulunamazsa, yakın eşleşme (fuzzy matching) yöntemi devreye girer.
  4. Eğer hâlâ sonuç yoksa, sorgu Gemini modeline iletilir.
  5. Yanıt Gradio arayüzünde kullanıcıya gösterilir.

Eğer ülke bulunamazsa:

Ülkeyi bulamadım. Şunları mı demek istediniz: ...

💬 Gradio Arayüzü

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.


📦 Gerekli Kütüphaneler (requirements.txt)

google-generativeai>=0.8.3
gradio==5.9.1
python-dotenv==1.0.1
numpy

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors