Skip to content

mstkyvz/E-Ticaret-DreamTeam

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

E-Ticaret-DreamTeam

DreamTeam

Ekip Üyeleri

Ömer Yentür | https://www.linkedin.com/in/yentur/

Alper Balbay | https://www.linkedin.com/in/alperiox/

Mustafa Yavuz | https://www.linkedin.com/in/mstkyvz/

Teknik Genel Bakış

  • AI Modeli: AIDC-AI/Ovis1.6-Gemma2-9B
  • Frontend: Streamlit
  • Backend API: FastAPI
  • Görüntü İşleme: Pillow
  • Dil Algılama: papluca/xlm-roberta-base-language-detection

Screenshots

App Screenshot

Sistem Gereksinimleri

  • Python 3.8+
  • CUDA uyumlu GPU (en az 12GB VRAM önerilir)
  • 16GB+ RAM
  • 50GB+ boş disk alanı

Bağımlılıklar

Ana bağımlılıklar:

  • torch==2.0.0
  • transformers==4.30.2
  • fastapi==0.95.2
  • streamlit==1.22.0
  • pillow==9.5.0
  • optimum==1.16.0
  • uvicorn==0.22.0

Tam bağımlılık listesi için requirements.txt dosyasına bakın.

Kurulum

  1. Projeyi klonlayın:

    git clone https://github.com/your-username/your-repo-name.git
    cd your-repo-name
    
  2. Sanal bir ortam oluşturun ve etkinleştirin:

    python -m venv venv
    source venv/bin/activate  # Linux/Mac
    venv\Scripts\activate  # Windows
    
  3. Gerekli paketleri yükleyin:

    pip install -r requirements.txt
    
  4. CUDA ve cuDNN'in doğru sürümlerinin yüklü olduğundan emin olun.

  5. config.json dosyasını projenizin kök dizinine yerleştirin ve gerekirse yapılandırmayı düzenleyin.

Konfigürasyon

config.json dosyası aşağıdaki ana bölümleri içerir:

  • api: API sunucu ayarları
  • model: AI model parametreleri
  • quantization: Model kuantizasyon ayarları
  • generation: Metin üretim parametreleri
  • paths: Dosya yolları
  • supported_languages: Desteklenen diller
  • language_map: Dil eşleştirmeleri

Örnek:

{
  "api": {
    "host": "0.0.0.0",
    "port": 8000
  },
  "model": {
    "checkpoint": "AIDC-AI/Ovis1.6-Gemma2-9B",
    "dtype": "bfloat16",
    "max_length": 2048
  },
  "quantization": {
    "method": "qfloat8"
  },
  ...
}

API Endpoints

POST /process/

Görüntü ve metin işleme için kullanılır.

Parametreler:

  • image: UploadFile - İşlenecek görüntü dosyası
  • text: str - Görüntüyle ilgili açıklama
  • lang: str - İstenilen çıktı dili

Yanıt:

{
  "output": "Generated text based on the image and input"
}

Model Optimizasyonu

Proje, model performansını artırmak için çeşitli optimizasyon teknikleri kullanır:

  1. Kuantizasyon: qfloat8 yöntemi kullanılarak model ağırlıkları kuantize edilir.
  2. CUDA Optimizasyonu: Model, CUDA-uyumlu GPU'larda çalışacak şekilde optimize edilmiştir.
  3. Bellek Yönetimi: Gereksiz tensörler temizlenir ve CUDA önbelleği boşaltılır.

Hata Ayıklama

Yaygın hatalar ve çözümleri:

  1. CUDA hatası: CUDA sürümünüzün PyTorch sürümüyle uyumlu olduğundan emin olun.
  2. Bellek yetersizliği: Daha büyük VRAM'e sahip bir GPU kullanın veya batch size'ı azaltın.
  3. Model yükleme hatası: İnternet bağlantınızı kontrol edin ve model dosyalarının doğru konumda olduğundan emin olun.

Performans Optimizasyonu

  • Büyük dosyalar için önbellek kullanın.
  • API isteklerini asenkron olarak işleyin.
  • Görüntü ön işleme adımlarını optimize edin.

Güvenlik Notları

  • API'yi public internete açmadan önce uygun kimlik doğrulama ve yetkilendirme mekanizmalarını ekleyin.
  • Kullanıcı girdilerini her zaman doğrulayın ve sterilize edin.
  • Hassas bilgileri (API anahtarları, veritabanı kimlik bilgileri vb.) çevresel değişkenlerde veya güvenli bir yapılandırma yönetimi sisteminde saklayın.

Lisans

Bu proje MIT lisansı altında lisanslanmıştır.

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •