Bu proje, kullanıcının doğal dilde yazdığı cümle veya paragrafların anlamsal bütünlüğünü anlayarak kitap önerileri sunan bir yapay zeka uygulamasıdır. Geleneksel anahtar kelime tabanlı arama motorlarının aksine, bu sistem metnin arkasındaki "anlamı" kavrayarak daha isabetli ve sezgisel sonuçlar üretir.
Proje, Türk Edebiyatı'nın temelini oluşturan 100 Temel Eser veri seti üzerinde geliştirilmiş ve bu eserler arasından öneriler yapmaktadır.
Anlamsal Arama: "İmkansız bir aşk ve savaşın gölgesinde kalan iki insan" gibi karmaşık ve soyut sorguları anlayarak en alakalı kitapları önerir.
Kategoriye Göre Filtreleme: Arama sonuçlarını "Roman", "Tarih" gibi belirli kategorilere göre daraltma imkanı sunar.
Duygu Tonuna Göre Filtreleme: Kullanıcının aradığı duygu durumuna ("hüzün", "neşe", "macera" vb.) göre kitapları sıralar.
Etkileşimli Arayüz: Gradio ile geliştirilmiş, kullanıcı dostu ve modern bir web arayüzüne sahiptir. Kitap kapak görselleri ile zenginleştirilmiş bir sonuç ekranı sunar.
Bu projenin geliştirilmesinde aşağıdaki teknolojiler ve modeller kullanılmıştır:
Backend ve Arayüz: Python, Gradio
Pandas
ChromaDB - Oluşturulan anlamsal vektörlerin verimli bir şekilde saklanması ve hızlı benzerlik aramaları yapılması için kullanılmıştır.
Embedding Modeli: BAAI/bge-m3 - Metinlerin anlamsal vektörlere dönüştürülmesi için kullanılmıştır.
facebook/bart-large-mnli - "Zero-Shot Classification" yeteneği sayesinde, önceden belirlenmiş Türkçe duygu etiketlerine göre metinleri sınıflandırmak için kullanılmıştır.
Veri Kaynağı: Google Books API - Kitap kapak görsellerini dinamik olarak çekmek için kullanılmıştır.
Projeyi yerel makinenizde çalıştırmak için aşağıdaki adımları izleyin:
Proje reposunu klonlayın:
git clone https://github.com/kullanici-adiniz/proje-adiniz.git cd proje-adiniz
Sanal ortam (virtual environment) oluşturun ve aktif edin:
python -m venv venv .\venv\Scripts\activate
python3 -m venv venv source venv/bin/activate
Gerekli kütüphaneleri yükleyin:
pip install -r requirements.txt
Kurulum tamamlandıktan sonra, uygulamayı başlatmak için ana dizinde aşağıdaki komutu çalıştırın:
python app.py
Uygulama başlatıldığında, terminalde Running on local URL: http://127.0.0.1:7860 gibi bir adres göreceksiniz. Bu adresi kopyalayıp web tarayıcınıza yapıştırarak uygulamayı kullanmaya başlayabilirsiniz.
Zorluklar
Projenin Hugging Face Spaces üzerinde yayınlanması sırasında, chromadb ve bağımlı olduğu diğer kütüphaneler arasında versiyon çakışmaları yaşanmıştır. Bu zorluklara rağmen sonrasında başarılı bir şekilde deployment gerçekleştirilmiştir.
Docker ile Konteynerleştirme: Projeyi, tüm bağımlılıkları ile birlikte izole bir Docker konteynerine paketleyerek deployment sürecini daha kararlı hale getirmek.
Veri Setini Genişletme: Daha geniş bir Türkçe kitap veri seti oluşturarak modelin öneri kapsamını artırmak.
Model Fine-Tuning: bge-m3 modelini daha geniş bir Türkçe edebi metin korpusu üzerinde fine-tune ederek, öneri doğruluğunu daha da iyileştirmek.