| title | EchoVerse AI |
|---|---|
| emoji | 🎥 |
| colorFrom | indigo |
| colorTo | purple |
| sdk | streamlit |
| sdk_version | 1.35.0 |
| python_version | 3.11 |
| app_file | app.py |
Bu proje, kullanıcılara herhangi bir YouTube videosunun içeriği hakkında sohbet etme imkanı sunan, RAG (Retrieval-Augmented Generation) tabanlı bir chatbot uygulamasıdır.
Günümüzde video içerikleri, bilgi edinmenin en popüler yollarından biridir. Ancak, uzun videoları izlemek veya belirli bir bilgiyi bulmak için videonun tamamını taramak zaman alıcı olabilir. EchoVerse AI, bu soruna bir çözüm sunar.
Projenin temel amacı, kullanıcının sağladığı bir YouTube videosunun transkriptini temel alarak bir bilgi tabanı oluşturmak ve bu bilgi tabanı üzerinden soruları yanıtlayan akıllı bir asistan geliştirmektir. Bu sayede kullanıcılar, videoları izlemeden içerikleri hakkında hızlıca bilgi edinebilir, özetler alabilir veya spesifik sorularına anında yanıt bulabilirler.
Bu projede statik bir veri seti kullanılmamaktadır. Bunun yerine, uygulamanın bilgi tabanı dinamik olarak ve gerçek zamanlı bir şekilde oluşturulur.
- Veri Kaynağı: Kullanıcının girdiği herhangi bir herkese açık YouTube videosu.
- Veri Toplama Metodolojisi:
- Kullanıcı, arayüz üzerinden bir YouTube URL'si girer.
pytubekütüphanesi ile videonun başlığı gibi temel meta verileri alınır.youtube-transcript-apikütüphanesi kullanılarak videonun Türkçe veya İngilizce altyazı transkripti çekilir.- Elde edilen bu transkript metni, projenin o anki oturum için "veri setini" ve bilgi kaynağını oluşturur.
Bu yaklaşım, uygulamanın herhangi bir video hakkında anında uzmanlaşabilmesini sağlayarak esnek ve güçlü bir yapı sunar.
Proje, modern bir Retrieval-Augmented Generation (RAG) mimarisi üzerine kurulmuştur. Bu mimari, büyük dil modellerinin (LLM) yeteneklerini, harici ve güncel bir bilgi tabanıyla birleştirerek daha doğru ve bağlama uygun cevaplar üretmesini sağlar.
[YouTube URL] -> [Transkript Çekme] -> [Metin Parçalama (Chunking)] -> [Vektör Temsilleri (Embeddings)] -> [Vektör Veritabanı (FAISS)]
^
| (Arama ve Benzerlik Bulma)
|
[Kullanıcı Sorusu] -> [Embedding] -> [Benzerlik Araması] -> [Alakalı Parçalar] -> [LLM'e Gönderme (Gemini)] -> [Cevap]
- Generation Model (Üretici Model): Google Gemini Flash (
models/gemini-flash-latest). Hızı ve performansı sayesinde akıcı bir sohbet deneyimi sunmak için tercih edilmiştir. - Embedding Model (Vektör Temsil Modeli): Hugging Face -
sentence-transformers/all-MiniLM-L6-v2. Açık kaynaklı, hızlı ve etkili bir model olup, metin parçalarını anlamlı vektörlere dönüştürmek için kullanılmıştır. - Vektör Veritabanı: FAISS (Facebook AI Similarity Search). Metin parçalarının vektör temsillerini bellekte (in-memory) verimli bir şekilde saklamak ve anlamsal arama yapmak için kullanılmıştır.
- RAG Pipeline Framework: LangChain. Veri yükleme, parçalama, embedding oluşturma, arama ve LLM ile etkileşim gibi tüm RAG adımlarını düzenleyen ve birbirine bağlayan ana çerçevedir. Projede
ConversationalRetrievalChainkullanılarak sohbet geçmişi hafızası da sağlanmıştır. - Web Arayüzü: Streamlit. Hızlı ve kolay bir şekilde interaktif bir web uygulaması geliştirmek için kullanılmıştır.
Proje sonucunda aşağıdaki hedeflere ulaşılmıştır:
- Kullanıcı dostu ve interaktif bir web arayüzü başarıyla geliştirilmiştir.
- Herhangi bir YouTube videosu için anlık olarak RAG tabanlı bir sohbet asistanı oluşturma yeteneği kazanılmıştır.
- Sohbet geçmişini hatırlayan (
ConversationalRetrievalChainsayesinde), bağlama duyarlı ve akıcı bir diyalog akışı sağlanmıştır. - Google Gemini ve Hugging Face gibi güçlü ve modern yapay zeka modelleri başarılı bir şekilde entegre edilmiştir.
Projenin yerel makinenizde çalıştırılması için aşağıdaki adımları takip edebilirsiniz.
git clone https://github.com/evrmgzm/EchoVerseAI.git
cd EchoVerseAI# Sanal ortamı oluşturun
python -m venv venv
# Sanal ortamı aktif edin
# Windows için:
.\venv\Scripts\activate
# macOS/Linux için:
source venv/bin/activateProje için gerekli tüm kütüphaneler requirements.txt dosyasında listelenmiştir.
pip install -r requirements.txtProjenin çalışabilmesi için bir Google Gemini API anahtarına ihtiyacınız vardır.
- Projenin ana dizininde
.envadında bir dosya oluşturun. - Dosyanın içine aşağıdaki gibi API anahtarınızı ekleyin:
GEMINI_API_KEY="YOUR_GOOGLE_API_KEY"
Tüm adımlar tamamlandıktan sonra aşağıdaki komut ile Streamlit uygulamasını başlatabilirsiniz.
streamlit run app.pyUygulama, varsayılan olarak tarayıcınızda http://localhost:8501 adresinde açılacaktır.
Uygulama arayüzü basit ve kullanıcı dostu olacak şekilde tasarlanmıştır.
- URL Girişi: Sol taraftaki kenar çubuğuna, hakkında sohbet etmek istediğiniz YouTube videosunun linkini yapıştırın.
- İşlemi Başlatma: "🚀 Videoyu İşle" butonuna tıklayın. Bu aşamada uygulama, videonun transkriptini alacak ve RAG mimarisini hazırlayacaktır.
- Sohbete Başlama: Hazırlık tamamlandığında, ekranın alt kısmında yer alan sohbet kutusuna video ile ilgili sorularınızı yazarak sohbete başlayabilirsiniz.




