Bootcamp katılımcıları için 7/24 akıllı soru-cevap asistanı
MentorMate, Akbank GenAI Bootcamp katılımcılarının sıkça sorduğu sorulara anında, doğru ve güvenilir cevaplar veren RAG (Retrieval Augmented Generation) tabanlı bir chatbot'tur.
- Projenin Amacı
- Veri Seti Hakkında
- Kullanılan Yöntemler
- Çözüm Mimarisi
- Kurulum Kılavuzu
- Kullanım Kılavuzu
- Elde Edilen Sonuçlar
- Canlı Demo
Bootcamp sürecinde katılımcılar:
- Sertifika koşulları
- Mentor toplantı saatleri
- GitHub kullanımı
- Grup proje kuralları
- Canlı yayın arşivleri
gibi tekrar eden sorularla karşılaşıyor. MentorMate bu soruları 7/24 anında ve tutarlı şekilde yanıtlayarak:
Mentor yükünü azaltır
Katılımcı deneyimini iyileştirir
Bilgi erişimini hızlandırır
- Kaynak: Bootcamp Zulip kanalındaki gerçek katılımcı soruları
- Format: JSON/JSONL (satır-satır JSON)
- Dil: Türkçe
- Toplam: 3,232 soru-cevap çifti
| Dosya | Boyut | Açıklama |
|---|---|---|
zulip_data.txt |
6 KB | Ham Zulip mesajları |
sss_dataset_augmented.json |
17 KB | İlk temizleme |
sss_dataset_heavily_augmented.json |
144 KB | Keyword zenginleştirme |
sss_dataset_heavily_augmented_v2.json |
96 KB | Optimizasyon v2 |
enriched_dataset.jsonl |
1.4 MB | Final işlenmiş veri |
generated_data_google.jsonl |
819 KB | Gemini varyasyonları |
zulip_data.txt (Ham Veri)
↓
sss_dataset_augmented.json (İlk Temizleme)
↓
sss_dataset_heavily_augmented.json (Keyword Enrichment)
↓
sss_dataset_heavily_augmented_v2.json (Optimizasyon)
↓
enriched_dataset.jsonl (Final İşlenmiş Veri)
↓
generated_data_google.jsonl (Gemini ile Varyasyon Üretimi)
↓
ChromaDB (Vector Database)
Adımlar:
-
Ham Veri Toplama (
zulip_data.txt)- Zulip kanalından SSS metinleri çıkarıldı
-
Veri Temizleme (
sss_dataset_augmented.json)- Gereksiz karakterler temizlendi
- Soru-cevap formatına dönüştürüldü
-
Keyword Zenginleştirme (
enriched_dataset.jsonl)- 40+ eş anlamlı kelime haritası oluşturuldu
- Türkçe spesifik normalizasyon uygulandı
- Case-insensitive arama için optimizasyon
-
Varyasyon Üretimi (
generated_data_google.jsonl)- Gemini 2.0 Flash ile 2x varyasyon üretildi
- Anlamsal çeşitlilik sağlandı
-
Vektör Dönüşümü (
chroma_db/)- Sentence Transformers ile embedding
- ChromaDB'de depolandı
{
"question": "Bootcamp sertifikası nasıl alınır?",
"answer": "Sertifika için projenizi başarıyla tamamlamanız gerekir.",
"keywords": ["sertifika", "bootcamp", "proje", "tamamlama"]
}Tekrar Eden Sorular: Temizlendi
Türkçe Karakter Sorunları: Düzeltildi
Büyük/Küçük Harf Tutarsızlığı: Normalize edildi
Eksik Cevaplar: Tamamlandı
Keyword Mapping: 40+ eş anlamlı eklendi
| Metrik | Değer |
|---|---|
| Benzersiz Sorular | 1,077 |
| Gemini Varyasyonları | 2,154 |
| Toplam Eğitim Verisi | 3,231 |
| Ortalama Cevap Uzunluğu | ~120 karakter |
| Keyword Çeşitliliği | 40+ eş anlamlı |
- Retriever: MultiQueryRetriever + MMR (Maximum Marginal Relevance)
- Generator: Google Gemini 2.0 Flash
- Vector Store: ChromaDB
Model: sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2
Dimension: 384
Language: Multilingual (Türkçe optimize)- Keyword Enrichment: 40+ eş anlamlı kelime haritası
- Query Preprocessing: Türkçe karakter normalizasyonu
- Short Query Handling: 1-2 kelimelik sorular özel işleme
✓ Kaynak doküman kontrolü
✓ %20 örtüşme threshold'u
✓ "Bilgi yok" cevapları için özel handling┌─────────────┐
│ Kullanıcı │
│ Sorusu │
└──────┬──────┘
│
▼
┌──────────────────┐
│ Query Processing │ ← Normalization + Keyword Enrichment
└──────┬───────────┘
│
▼
┌──────────────────┐
│ MultiQuery │ ← 3-5 farklı sorgu varyantı üret
│ Retriever │
└──────┬───────────┘
│
▼
┌──────────────────┐
│ ChromaDB │ ← MMR ile 5 en alakalı doküman
│ Vector Search │
└──────┬───────────┘
│
▼
┌──────────────────┐
│ Gemini 2.0 Flash│ ← Context + Prompt → Cevap üret
└──────┬───────────┘
│
▼
┌──────────────────┐
│ Hallucination │ ← Kaynak kontrolü
│ Validator │
└──────┬───────────┘
│
▼
┌──────────────────┐
│ Final Answer │
└──────────────────┘
| Katman | Teknoloji | Amaç |
|---|---|---|
| Frontend | Streamlit | Web arayüzü |
| LLM | Google Gemini 2.0 Flash | Cevap üretimi |
| Embedding | Sentence Transformers | Vektör dönüşümü |
| Vector DB | ChromaDB | Semantik arama |
| Framework | LangChain | RAG pipeline |
| Memory | ConversationBufferWindowMemory | Sohbet geçmişi |
✓ Sadece veritabanındaki bilgileri verir
✓ Bilmediği konularda açıkça belirtir
✓ Halüsinasyon kontrolü aktif
✓ Tutarlı cevaplar (temperature=0.01)- Python 3.9+
- Google API Key (Gemini)
git clone https://github.com/4F71/MentorMate-SSS.git
cd MentorMate-SSS# Windows
python -m venv .venv
.venv\Scripts\activate
# Linux/Mac
python3 -m venv .venv
source .venv/bin/activatepip install -r requirements.txt.env dosyası oluşturun:
GOOGLE_API_KEY=your_gemini_api_key_herepython setup_database.pyBu script data/ klasöründeki dosyalardan otomatik olarak vektör veritabanını oluşturur.
Not: Bu adım ilk kurulumda zorunludur. İşlem 2-5 dakika sürebilir.
streamlit run app.pyTarayıcınızda http://localhost:8501 açılacaktır.
- Soru yazın ve Enter'a basın
- Gerçek zamanlı cevap alın
- Sohbet geçmişi otomatik saklanır
- Toplam soru/cevap sayısı
- Sohbeti temizleme butonu
- Veritabanı bilgileri
| Kategori | Örnek Soru | Beklenen Sonuç |
|---|---|---|
| Sertifika | "Bootcamp sertifikası nasıl alınır?" | Proje tamamlama koşulları |
| Grup | "Projeyi kaç kişi yapabiliriz?" | 1-2 kişi bilgisi |
| Canlı Yayın | "YouTube kayıtları var mı?" | Arşiv linki |
| Mentor | "Mentor toplantıları ne zaman?" | Zulip duyuru bilgisi |
| GitHub | "Git bilmiyorum, nasıl yüklerim?" | Video rehber linki |
Senaryo 1: Hızlı Bilgi
Kullanıcı: "Bootcamp kaç gün?"
MentorMate: "Bootcamp eğitimi 28 günlük bir süreyi kapsar."
Senaryo 2: Detaylı Soru
Kullanıcı: "Sertifikadaki isimler hatalı çıkıyor"
MentorMate: "Sertifika platformunda isminizi İngilizce karakterlerle
yeniden kaydedin. Bu hatalı karakterlerin düzelmesine
yardımcı olur."
Senaryo 3: Bilinmeyen Soru
Kullanıcı: "Bootcamp ne kadar maaş veriyor?"
MentorMate: "Bu konuda veri setimde bilgi bulunmuyor."
| Metrik | Değer | Açıklama |
|---|---|---|
| Doğruluk | ~95% | Veritabanındaki sorularda doğru cevap |
| Yanıt Süresi | <3 sn | Ortalama cevap süresi |
| Halüsinasyon Oranı | <5% | Yanlış/uydurma cevap oranı |
| Büyük/Küçük Harf | %100 | Case-insensitive arama |
| Keyword Matching | %90+ | Eş anlamlı kelime tanıma |
Tutarlılık: Aynı soruya her zaman aynı cevap
Hız: Anında yanıt (<3 saniye)
Güvenilirlik: Sadece doğrulanmış bilgiler
Şeffaflık: Bilmediğinde açıkça söyler
Başarılı Test Vakaları:
- Sertifika soruları (10/10)
- Grup/proje soruları (8/8)
- Mentor toplantı soruları (5/5)
- GitHub/teknik sorular (7/7)
- Canlı yayın soruları (6/6)
Zorluk Çekilen Durumlar:
- Çok genel sorular ("Bootcamp nedir?")
- Veritabanı dışı konular (beklenen davranış)
Not: Demo linki Streamlit Cloud üzerinde deploy edildikten sonra güncellenecektir.
MentorMate-SSS/
├── app.py # Ana Streamlit uygulaması
├── requirements.txt # Python bağımlılıkları
├── .env.example # API anahtarı şablonu
├── .gitignore # Güvenlik dosyası
├── setup_database.py # Database yükleme
│
├── core/ # RAG Pipeline modülü
│ ├── __init__.py
│ └── rag_pipeline.py # RAG sistemi temel bileşenleri
│
├── chroma_db/ # Vektör veritabanı (gitignore)
│ └── [ChromaDB dosyaları]
│
├── data/
| # Veri seti pipeline
| ├── zulip_data.txt # Ham veri
| ├── sss_dataset_augmented.json # Ham veri üzerinden zenginleştirilen veri
│ ├── sss_dataset_heavily_augmented.json # Ham veri üzerinden zenginleştirilen veri v2.
│ ├── enriched_dataset.jsonl # İşlenmiş veri
│ └── generated_data_google.jsonl # Gemini varyasyonları
│
├── notebooks/ # Jupyter notebooks (geliştirme)
│ └── [Veri hazırlama notebookları]
│
└── screenshots/ # README görselleri
├── main_screen.png
├── qa_example.png
└── sidebar.png
KRİTİK KURALLAR:
1. SADECE verilen dokümanlardan cevap ver
2. Bilmediğinde: "Bu konuda veri setimde bilgi bulunmuyor"
3. Kendi bilgini ASLA kullanma
4. Tutarlı ol (aynı soruya aynı cevap)Neden paraphrase-multilingual-MiniLM-L12-v2?
- 384 boyut (hafif ve hızlı)
- Türkçe desteği
- hromaDB uyumluluğu
- Düşük kaynak tüketimi
search_type="mmr" # Maximum Marginal Relevance
k=5 # En iyi 5 doküman
fetch_k=25 # 25 adaydan seç
lambda_mult=0.6 # %60 relevance + %40 diversityBu proje Akbank GenAI Bootcamp kapsamında geliştirilmiştir. Önerileriniz için issue açabilirsiniz.
Onur Tilki
- LinkedIn: https://www.linkedin.com/in/onurtilki
- Email: mehmetonurt@gmail.com
- GitHub: https://github.com/4F71
- Akbank & Global AI Hub: Bootcamp organizasyonu
- Turkish AI Hub: Mentor desteği ve veri kaynağı
- LangChain & Google: Açık kaynak araçlar
Projeyi beğendiyseniz yıldız vermeyi unutmayın!


