Skip to content

enelpi-teknofest/chatbot-app

Repository files navigation

🏛️ ENELPI - Hukuk Chatbot Sistemi

Teknofest 2025 Türkçe Doğal Dil İşleme Serbest Kategorisi

Python Flask Qdrant Neo4j Cosmos

ENELPI, Türkiye'nin kapsamlı hukuki veritabanını kullanan, kendi geliştirdiğimiz yapay zeka modelleri ile desteklenen gelişmiş hukuk danışmanlığı chatbot sistemidir. Bu proje, Yargıtay, Danıştay ve Mevzuat verilerini entegre ederek, hukuk profesyonelleri ve vatandaşlar için güvenilir ve hızlı hukuki bilgi erişimi sağlar.


🎯 Proje Özeti

ENELPI, modern NLP teknolojileri ve hibrit veritabanı mimarisi kullanarak Türk hukuk sistemindeki karmaşık bilgileri anlaşılır şekilde sunan kapsamlı bir sistemdir. RAG (Retrieval-Augmented Generation) teknolojisi ile donatılan sistem, binlerce hukuki dökümanı analiz ederek kullanıcılara kişiselleştirilmiş ve doğru yanıtlar vermektedir.

🏆 Ana Değer Önerisi

  • Kapsamlı Veri Kaynağı: Yargıtay, Danıştay ve mevzuat verilerinin tek platformda toplanması
  • Yerli AI Teknolojisi: Cosmos Gemma tabanlı LLM sistemi
  • Hibrit Veritabanı: Vector ve Graph database entegrasyonu ile yüksek performans

🚀 Temel Özellikler

💬 Akıllı Chatbot Sistemi

  • Bağlamsal Anlama: Konuşma geçmişi tabanlı akıllı yanıtlama
  • Kaynak Referansı: Her yanıt için doğrulanabilir kaynak gösterimi
  • Gerçek Zamanlı Sorgulama: Anlık hukuki bilgi erişimi
  • Türk Hukuku Üzerine Eğitilmiş Embedding Modeli

🗄️ Kapsamlı Veri Yönetimi

  • Çoklu Format Desteği: PDF, DOCX, XLSX dosya işleme
  • Otomatik Metin İşleme: Bölütleme ve indexleme
  • Metadata Yönetimi: Detaylı döküman etiketleme ve kategorilendirme
  • Bulk Import: Toplu veri yükleme ve işleme

🔍 Gelişmiş Arama Teknolojileri

  • Vector Search: Anlamsal benzerlik tabanlı arama
  • Graph Analysis: İlişkisel veri analizi ve navigasyon
  • Relevance Scoring: AI tabanlı sonuç puanlama

🛡️ Güvenlik ve Yönetim

  • Rol Tabanlı Erişim: Kullanıcı ve admin rolleri
  • Non-Legislative Content: Hukuk Dışı konulara içsel bilgiyle cevap
  • Audit Trail: Detaylı işlem kayıtları

🏗️ Sistem Mimarisi

Core Teknolojiler

Frontend: HTML5/CSS3/JavaScript + Bootstrap
Backend: Flask 3.1.1 (Python 3.12+)
AI Engine: Cosmos Gemma LLM + Custom RAG Implementation
Embedding Model: CosmosE5 (Türkçe optimizasyonlu)
Vector DB: Qdrant (Semantic Search)
Graph DB: Neo4j (Relationship Analytics)
Relational DB: SQLite/PostgreSQL (Metadata)
Infrastructure: GPU + Ngrok Tunneling

Veri İşleme Pipeline

Data Sources → Scrapers → Processing → Embedding → Storage → Retrieval → AI Response
     ↓           ↓           ↓           ↓          ↓          ↓            ↓
- Yargıtay   - Python    - LangChain  - CosmosE5   - Qdrant  - Vector    - Cosmos Gemma
- Danıştay   - Scrapers   - Chunking   - Embeddings - Neo4j  - Graph     - Source Referance
- Mevzuat    - Crawlers   - Cleaning   - Indexing   - SQLite             

📚 Veri Setlerimiz

Tüm veri setlerimize buradan erişebilirsiniz:

➡️ Hugging Face Datasets: https://huggingface.co/fikriokan/datasets?p=0

🤖 Yerli AI Modelleri ve GPU Altyapısı

Cosmos Gemma LLM

CosmosE5-Yargıtay Embedding Model

📊 Veri Kaynakları ve İçerik

🏛️ Yargıtay Veritabanı

  • İçerik: Yargıtay kararları ve içtihatları
  • Kapsamı: 220000+ karar dokumanı
  • Format: HuggingFace veri formatında hukuki metinler
  • Özellikler:
    • Hukuk dairelerine göre kategorilendirme
    • Tarih bazlı filtreleme
    • Karar numarası ve tarih metadata'sı
    • Otomatik metin temizleme ve normalizasyon

⚖️ Danıştay Veritabanı

  • İçerik: İdari yargı kararları ve görüşleri
  • Kapsamı: 60000+ idari karar
  • Format: HuggingFace veri formatında hukuki metinler
  • Özellikler:
    • İdari hukuk dallarına göre sınıflandırma
    • Başvuru türlerine göre kategorilendirme
    • Detaylı case law analizi
    • Cross-reference bağlantıları

📜 Mevzuat Koleksiyonu

  • İçerik: Kanunlar, yönetmelikler, tebliğler
  • Kapsamı: 50,00+ mevzuat metni
  • Format: HuggingFace veri formatında hukuki metinler
  • Özellikler:
    • Mevzuat türlerine göre kategorilendirme
    • Yürürlük durumu takibi
    • Madde bazlı indexleme

✍️Blog Koleksiyonu

  • İçerik: Web Sitesi Blogları
  • Kapsamı: 1000-2000 blog metni
  • Format: Strukturlu JSON metadata
  • Özellikler:
    • Sık sorulan sorular için uygun

🔧 Kurulum ve Konfigürasyon

Ön Gereksinimler

- Python 3.12+
- Docker & Docker Compose
- Git

Hızlı Başlangıç

  1. Repository'yi klonlayın:
git clone <repository-url>
cd chatbot-app
  1. Docker servisleri başlatın:
cd database
docker-compose up -d
  1. Python environment kurulumu:
python -m venv venv
source venv/bin/activate  # Linux/Mac
pip install -r requirements.txt
  1. Environment değişkenleri:
cp .env.example .env
# .env dosyasını düzenleyin:
OPENAI_MODEL=ytu-ce-cosmos/Turkish-Gemma-9b-v0.1
OPENAI_API_BASE_URL=https://*********.ngrok-free.app
EMBEDDING_BASE_URL=https://**********.ngrok-free.app
EMBEDDING_MODEL=Qwen/Qwen3-Embedding-0.6B
OPENAI_API_KEY = Your_API_Key  # Eğer gerçek OpenAI API’sini kullanıyorsanız buraya kendi OpenAI API anahtarınızı girin.
QDRANT_STORAGE_PATH = database/your_qdrant_folder
SECRET_KEY = Your_Secret_Key
PORT=5005
> Not: Ortam değişkenlerinde OpenAI ismi geçse de bu, gerçek OpenAI servisini kullandığımız anlamına gelmez.  
> Değişken adları, API’nin OpenAI formatıyla uyumlu olması için bu şekilde bırakılmıştır;  
> model ve sunucu tamamen yerel veya farklı bir sağlayıcıya aittir.
  1. Veritabanı initialization:
python -c "from lib.database import init_database; init_database()"
  1. Uygulamayı başlatın:
python app.py

Docker Compose Servisleri

services:
  qdrant:        # Vector database (port 6333)
  neo4j:         # Graph database (port 7474, 7687)
  cosmos-gemma:  # LLM model server (GPU)
  cosmos5:       # Embedding model server (GPU)
  chatbot-app:   # Main application (port 5005)

📡 API Endpoints

Chat API

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

{
  "message": "Kullanıcı sorusu",
  "conversation_id": "optional-uuid",
  "rag_enabled": true,
  "chunk_count": 3
}

Document Management

POST /panel/documents/upload    # Döküman yükleme
GET  /panel/documents          # Döküman listesi
DELETE /panel/documents/{id}   # Döküman silme
POST /panel/documents/bulk     # Toplu yükleme

🛠️ Veri Toplama Araçları

Yargıtay Crawler

cd yargitay_crawler
python yargitay_crawler.py

Özellikler:

  • Çoklu thread destekli hızlı crawling
  • Automatic retry ve error handling
  • Hugging Face dataset entegrasyonu
  • Progress tracking ve logging

Danıştay Scraper

cd danistay
python getdoc.py

Özellikler:

  • ID tabanlı döküman çekme
  • Exponential backoff ile rate limiting
  • Bulk processing desteği
  • JSON export functionality

Mevzuat Scraper

cd mevzuat-scraper
python main.py

Özellikler:

  • mevzuat.gov.tr entegrasyonu
  • Çoklu mevzuat türü desteği
  • Hugging Face automatic upload
  • Data validation ve cleaning

🔍 RAG (Retrieval-Augmented Generation) Sistemi

Vector Search Pipeline

  1. Embedding Generation: Cosmos5 Türkçe optimize embedding model
  2. Vector Storage: Qdrant collection management
  3. Similarity Search: Cosine similarity ile relevance scoring

🎛️ Admin Panel Özellikleri

Dashboard

  • Sistem Metrikleri: CPU, Memory, Database kullanımı
  • Usage Analytics: API çağrı istatistikleri
  • Performance Monitoring: Response time metrics
  • Health Checks: Servis durumu kontrolleri

Döküman Yönetimi

  • Upload Interface: Drag-drop dosya yükleme
  • Bulk Operations: Toplu işlem desteği
  • Metadata Editing: Döküman bilgilerini düzenleme
  • Vector Reindexing: Yeniden indexleme araçları

Kullanıcı Yönetimi

  • Role Assignment: Admin/User rol atama
  • Permission Control: Granular yetki yönetimi
  • Session Monitoring: Aktif oturum takibi
  • Audit Logs: Detaylı işlem kayıtları

🚀 Deployment ve Scaling

Production Deployment

# Docker production build
docker-compose -f docker-compose.prod.yml up -d

# Kubernetes deployment
kubectl apply -f k8s/

Monitoring

  • Prometheus: Metrics collection
  • Grafana: Dashboard ve alerting
  • ELK Stack: Log aggregation
  • Health Checks: Automated monitoring

Scaling Options

  • Horizontal Scaling: Multi-instance deployment
  • Database Clustering: Qdrant ve Neo4j cluster
  • Load Balancing: NGINX/HAProxy integration
  • CDN Integration: Static asset optimization

Veri Kaynakları Atıfı

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •