Temiz Dil API, Türkçe metinlerdeki saldırgan içerikleri tespit etmek için geliştirilmiş bir hizmettir. Bu API, makine öğrenimi tabanlı bir model kullanarak metinleri analiz eder ve içerik türünü kategorize eder.
- Saldırgan İçerik Tespiti: Metinlerin saldırgan olup olmadığını algılar
- Hedef Analizi: Saldırgan içeriğin hedefini tespit eder (grup, birey, diğer)
- Kategorizasyon: Metinleri farklı saldırganlık kategorilerine ayırır
- API Anahtarı Yönetimi: Erişim kontrolü ve kullanım limitleri için API anahtarları
- IP Tabanlı Kısıtlamalar: IP bazlı rate limiting ve kullanım takibi
- Admin Paneli: Sistem yönetimi için kapsamlı bir yönetici arayüzü
- Kullanım İstatistikleri: API kullanımını takip etmek için detaylı raporlar
- Python 3.7 veya üstü
- MySQL / MariaDB veritabanı
- PyTorch
- Flask
- Projeyi klonlayın:
git clone https://github.com/kullaniciadi/temizdil.git
cd temizdil
- Gerekli paketleri yükleyin:
pip install -r requirements.txt
.env
dosyasını oluşturun:
DB_HOST=localhost
DB_USER=kullaniciadi
DB_PASSWORD=sifre
DB_NAME=temizdil_api
SECRET_KEY=gizli_anahtar
ADMIN_PASSWORD=admin_sifresi
- Veritabanını oluşturun:
mysql -u root -p
CREATE DATABASE temizdil_api;
- API'yi başlatın:
python api_service.py --host 0.0.0.0 --port 5000
POST /predict
İstek Örneği:
{
"text": "Analiz edilecek Türkçe metin"
}
Yanıt Örneği:
{
"is_offensive": true,
"predicted_labels": ["prof"],
"label_probabilities": {
"non": 0.05,
"prof": 0.85,
"grp": 0.03,
"ind": 0.04,
"oth": 0.03
},
"is_difficult": false,
"is_targeted": true,
"target_type": "birey",
"text": "Analiz edilecek Türkçe metin",
"usage_info": {
"tokens_used": 5,
"tokens_remaining": 9995,
"unlimited": false,
"using_api_key": true
}
}
POST /batch_predict
İstek Örneği:
{
"texts": ["Birinci metin", "İkinci metin", "Üçüncü metin"]
}
GET /usage_info
API'yi çağırırken, isteğinizde bir API anahtarı sağlayabilirsiniz:
curl -X POST "http://api.example.com/predict" \
-H "Content-Type: application/json" \
-H "X-API-Key: sizin_api_anahtariniz" \
-d '{"text": "Analiz edilecek metin"}'
- IP başına dakikada 10 istek
- API anahtarları için aylık token limiti (varsayılan: 100,000)
- IP adresleri için aylık token limiti (varsayılan: 10,000)
Admin paneline erişmek için:
/admin
adresine gidin- Admin şifresini girin (
.env
dosyasında ayarlanmış)
- API Anahtarı Yönetimi: Yeni anahtarlar oluşturma, mevcut anahtarları düzenleme ve silme
- IP Kullanımı: IP bazlı kullanım istatistiklerini görüntüleme ve limitleri sıfırlama
- Kullanım Özeti: Genel API kullanımı hakkında istatistikler
- Admin API: Programlama yoluyla admin işlemlerini gerçekleştirme
- non: Saldırgan olmayan içerik
- prof: Müstehcen/küfürlü içerik
- grp: Grup bazlı saldırganlık (ırk, cinsiyet, din vb.)
- ind: Bireysel saldırganlık
- oth: Diğer saldırganlık türleri
- API Servisi: Flask kullanılarak geliştirilmiş RESTful API
- Model: PyTorch ile eğitilmiş saldırgan içerik tespit modeli
- Veritabanı: MySQL/MariaDB ile kullanıcı ve kullanım verileri yönetimi
- Frontend: HTML, CSS (Tailwind) ve JavaScript ile geliştirilen yönetici arayüzü
- API anahtarları ile erişim kontrolü
- IP bazlı rate limiting
- Admin arayüzü için şifre koruması
- Token tabanlı yetkilendirme
Bu proje MIT Lisansı altında lisanslanmıştır.
Sorularınız veya önerileriniz için [email protected] adresine e-posta gönderebilirsiniz.