OpenAI API ve FastAPI ile geliştirilmiş, çok dilli, akıllı ve marka odaklı profesyonel chatbot sistemi.
- ✅ OpenAI GPT-4 Entegrasyonu: En güncel GPT modelleri ile doğal dil işleme
- ✅ Akıllı Arama (Embeddings): Veritabanındaki soruları semantik benzerlikle bulma
- ✅ Sohbet Geçmişi: Her kullanıcı için context-aware konuşma hafızası
- ✅ Oturum Yönetimi: Email ve kullanıcı adı ile benzersiz chat ID'leri
- ✅ MongoDB Integration: Embedded documents pattern ile optimize edilmiş veri yapısı
- ✅ Modern UI: Kullanıcı dostu, responsive web arayüzü
- ✅ 3 Dil Desteği: Türkçe, İngilizce, Arapça
- ✅ Otomatik Çeviri: Gelen soruları Türkçe'ye çevir → Ara → Cevabı kullanıcı diline çevir
- ✅ Tek Veritabanı: questions.json sadece Türkçe (kolay bakım)
- ✅ Düşük Maliyet: ~$0.005/mesaj çeviri maliyeti
- ✅ Marka Odaklı Sistem Prompt: GPT her cevabı 242 Dijital hizmetlerine bağlıyor
- ✅ Off-Topic Detection: İlgisiz soruları (hava durumu, yemek tarifi vb.) tespit eder
- ✅ Akıllı Yönlendirme: Genel soruları (ör: "AI nedir?") 242 Dijital çözümlerine bağlar
- ✅ Nazik Reddetme: İlgisiz konularda profesyonel yönlendirme mesajı
- ✅ Küfür Filtresi: Otomatik içerik moderasyonu (karaliste.txt)
- ✅ Veda Tespiti: Hoşçakal mesajları özel işleme
- ✅ Custom Mesajlar: 242 Dijital'e özel hoş geldin ve veda mesajları
- Python 3.10+
- MongoDB (Yerel veya MongoDB Atlas)
- OpenAI API Key
pip install -r requirements.txtYerel MongoDB:
# Windows için MongoDB'yi başlatın (MongoDB kurulu olmalı)
mongod
# Linux/Mac için
sudo systemctl start mongodMongoDB Atlas (Cloud):
- MongoDB Atlas üzerinden ücretsiz cluster oluşturun
- Connection string'i alın
env_template.txt dosyasını .env olarak kopyalayın:
Windows:
copy env_template.txt .envLinux/Mac:
cp env_template.txt .env.env dosyasını düzenleyip şu bilgileri girin:
# OpenAI API Key (https://platform.openai.com/api-keys)
OPENAI_API_KEY=sk-your-actual-api-key
# MongoDB Bağlantı Bilgileri
# Yerel MongoDB için:
MONGODB_URL=mongodb://localhost:27017
MONGODB_DB_NAME=chatbot_db
# VEYA MongoDB Atlas için:
# MONGODB_URL=mongodb+srv://username:[email protected]/?retryWrites=true&w=majority
# MONGODB_DB_NAME=chatbot_dbBu adım embeddings'leri oluşturup MongoDB'ye yükler:
python init_db.py
⚠️ Not: Bu işlem questions.json'daki tüm sorular için OpenAI API'yi kullanarak embedding oluşturur. İlk çalıştırmada biraz zaman alabilir ve OpenAI API kullanımı olacaktır.
python run.pyVEYA
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000- Web Arayüzü: http://localhost:8000/static/index.html
- API Dokumentasyonu: http://localhost:8000/docs
- Health Check: http://localhost:8000/health
POST /api/session/start
Content-Type: application/json
{
"email": "[email protected]",
"username": "Ahmet",
"language": "tr" // "tr", "en", veya "ar"
}Yanıt:
{
"chat_id": "abc-123-def-456",
"email": "[email protected]",
"username": "Ahmet",
"language": "tr",
"message": "Merhaba, ben 242 Dijital Sanal Asistan 👋..."
}POST /api/chat
Content-Type: application/json
{
"chat_id": "your-chat-id",
"message": "Proje ödemesi nasıl yapılıyor?"
}GET /api/chat/history/{chat_id}newCht/
├── app/
│ ├── __init__.py
│ ├── main.py # FastAPI uygulaması
│ ├── config.py # Konfigürasyon
│ ├── database.py # Veritabanı bağlantısı
│ ├── models.py # SQLAlchemy modelleri
│ ├── schemas.py # Pydantic şemaları
│ ├── services/
│ │ ├── __init__.py
│ │ ├── openai_service.py # OpenAI entegrasyonu
│ │ ├── embedding_service.py # Embedding ve arama
│ │ ├── chat_service.py # Chat logic
│ │ └── profanity_filter.py # Küfür filtresi
│ └── utils/
│ ├── __init__.py
│ └── helpers.py
├── frontend/
│ ├── index.html
│ ├── styles.css
│ └── app.js
├── questions.json
├── karaliste.txt
├── requirements.txt
├── .env.example
├── .gitignore
└── README.md
- Backend: FastAPI, Python 3.10+
- AI: OpenAI GPT-4, Text Embeddings (text-embedding-3-small)
- Database: MongoDB, Motor (Async Driver), Beanie ODM
- Frontend: HTML5, CSS3, Vanilla JavaScript
- Vector Search: NumPy, Scikit-learn (Cosine Similarity)
- Translation: GPT-4 (TR ↔ EN ↔ AR)
- Content Filtering: Custom profanity filter, Scope filter
python test_multilingual.pypython test_scope_filter.pyhttp://localhost:8000/static/index.html
- SCOPE_KONTROLU.md - 242 Dijital odaklı sistem detayları
- COK_DILLI_SISTEM.md - 3 dil desteği ve çeviri pattern
- 242_DIJITAL_OZEL_AYARLAR.md - Özel mesajlar ve customization
- VERITABANI_OPTIMIZASYON.md - MongoDB embedded documents pattern
- API_ORNEKLER.md - API kullanım örnekleri
- KURULUM_REHBERI.md - Detaylı kurulum adımları
1. Kullanıcı Girişi
├─ Email + Username + Language seçimi
└─ Hoş geldin mesajı (seçilen dilde)
2. Mesaj Gelir (herhangi bir dilde)
↓
3. Çeviri (eğer Türkçe değilse)
├─ EN/AR → TR (GPT Translation)
└─ Türkçe mesaj elde et
↓
4. Veda Tespiti
├─ "hoşçakal", "bye" vb. → Veda mesajı (kullanıcı dilinde)
└─ Değilse devam
↓
5. Küfür Filtresi
├─ Küfür var mı? → Uyarı mesajı (kullanıcı dilinde)
└─ Temiz ise devam
↓
6. Scope Kontrolü (Off-Topic Detection)
├─ İlgisiz mi? (hava, yemek vb.)
│ └─ Redirect mesajı (kullanıcı dilinde)
└─ 242 Dijital ile ilgili → Devam
↓
7. Akıllı Arama (Embedding)
├─ Türkçe mesajla questions.json'da ara
├─ Benzerlik > %75 → DB'den cevap (Türkçe)
└─ Benzerlik < %75 → GPT ile üret (Türkçe, 242 Dijital odaklı)
↓
8. Çeviri (cevabı kullanıcı diline)
├─ TR → EN/AR (GPT Translation)
└─ Kullanıcıya döndür
↓
9. Session'a Kaydet
└─ messages array içinde (embedded document pattern)
GPT System Prompt:
Sen 242 Dijital şirketinin profesyonel müşteri hizmetleri asistanısın.
⚠️ KURALLAR:
1. SADECE 242 Dijital'in hizmetleri hakkında konuş
2. Genel sorulara 242 Dijital hizmetlerine bağlayarak cevap ver
3. İlgisiz konularda nazikçe reddet
Örnek:
- Soru: "Yapay zeka nedir?"
- Öncesi: "Yapay zeka, bilgisayarların düşünmesini sağlayan..."
- ✅ Şimdi: "Yapay zeka... 242 Dijital olarak AI chatbot, otomasyon ve özel modeller geliştiriyoruz..."
242 Dijital - Yapay zeka çözümleri, yazılım geliştirme, SEO ve otomasyon hizmetleri sunan teknoloji şirketi.
Hizmetlerimiz:
- 🤖 Yapay Zeka Çözümleri (AI chatbot, otomasyon, özel modeller)
- 💻 Yazılım Geliştirme (web, mobil, e-ticaret)
- 📈 SEO ve Dijital Pazarlama
- 📱 Sosyal Medya Yönetimi
- ⚙️ Otomasyon Sistemleri
İletişim: [email protected]
- v3.0.0 - Scope Control (242 Dijital odaklı sistem)
- v2.5.0 - Multilingual Support (TR, EN, AR)
- v2.0.0 - Database Optimization (Embedded documents)
- v1.0.0 - Initial Release
Profesyonel ve üretim ortamına hazır bir chatbot sistemi.
Özellikler:
- ✅ Production-ready kod
- ✅ Type hints ve docstrings
- ✅ Error handling
- ✅ Logging
- ✅ Test scriptleri
- ✅ Detaylı dokümantasyon
Bu proje 242 Dijital için özel olarak geliştirilmiştir.