Skip to content

emregurs3s/242dijital-chatbot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🤖 242 Dijital Sanal Asistan - Profesyonel AI Chatbot

OpenAI API ve FastAPI ile geliştirilmiş, çok dilli, akıllı ve marka odaklı profesyonel chatbot sistemi.

🌟 Özellikler

🎯 Temel Özellikler

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

🌍 Çok Dilli Destek (GPT Translation Pattern)

  • 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

🎯 242 Dijital Odaklı (Scope Control)

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

🛡️ Güvenlik ve Kalite

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

🚀 Kurulum

1. Gereksinimler

  • Python 3.10+
  • MongoDB (Yerel veya MongoDB Atlas)
  • OpenAI API Key

2. Bağımlılıkları Yükleyin

pip install -r requirements.txt

3. MongoDB'yi Başlatın

Yerel MongoDB:

# Windows için MongoDB'yi başlatın (MongoDB kurulu olmalı)
mongod

# Linux/Mac için
sudo systemctl start mongod

MongoDB Atlas (Cloud):

  • MongoDB Atlas üzerinden ücretsiz cluster oluşturun
  • Connection string'i alın

4. Ortam Değişkenlerini Ayarlayın

env_template.txt dosyasını .env olarak kopyalayın:

Windows:

copy env_template.txt .env

Linux/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_db

5. Veritabanını Başlatın

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

6. Sunucuyu Başlatın

python run.py

VEYA

uvicorn app.main:app --reload --host 0.0.0.0 --port 8000

7. Tarayıcıda Açın

📚 API Kullanımı

Yeni Oturum Başlatma (Çok Dilli)

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 👋..."
}

Mesaj Gönderme

POST /api/chat
Content-Type: application/json

{
  "chat_id": "your-chat-id",
  "message": "Proje ödemesi nasıl yapılıyor?"
}

Sohbet Geçmişini Görüntüleme

GET /api/chat/history/{chat_id}

🏗️ Proje Yapısı

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

🔧 Teknolojiler

  • 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

🧪 Test Etme

Çok Dilli Test

python test_multilingual.py

Scope Filter Test

python test_scope_filter.py

Manuel Test

http://localhost:8000/static/index.html

📚 Dokümantasyon

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

📖 Nasıl Çalışır?

Akış Diyagramı (Çok Dilli + Scope Control)

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)

242 Dijital Odaklı Sistem

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 Hakkında

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]

📊 Versiyon Geçmişi

  • 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

👨‍💻 Geliştirme

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

📄 Lisans

Bu proje 242 Dijital için özel olarak geliştirilmiştir.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published