Skip to content

bismih-org/katip

Repository files navigation

Katip - Yapay Zeka Sohbet Asistanı

Katip, hem Gemini API hem de yerel AI modelleri destekleyen, PyQt6 tabanlı modern bir yapay zeka sohbet uygulamasıdır.

🌟 Özellikler

  • Çoklu Model Desteği: Gemini AI ve yerel LLaMA modelleri
  • Gerçek Zamanlı Streaming: Anlık yanıt akışı
  • Sohbet Geçmişi: Konuşmaları kaydetme ve yükleme
  • Modern UI: Koyu/açık tema desteği
  • Markdown Desteği: Zengin metin formatları
  • Model Yönetimi: Otomatik model indirme ve yönetimi
  • Durdurma Özelliği: Yanıt üretimini istediğiniz anda durdurun

📋 Gereksinimler

Sistem Gereksinimleri

  • Python 3.11+
  • En az 4GB RAM (yerel modeller için 8GB+ önerilen)

Python Bağımlılıkları

pip install PyQt6 openai requests

🚀 Kurulum

  1. Projeyi klonlayın:
git clonehttps://github.com/bismih-org/katip
cd katip
  1. Bağımlılıkları yükleyin:
pip install -r requirements.txt
  1. Yapılandırma klasörünü oluşturun:
mkdir -p ~/.config/katip/model
  1. API anahtarınızı ekleyin:
echo "YOUR_GEMINI_API_KEY" > ~/.config/katip/api_key.txt
  1. Yerel modeller için JSON dosyasını oluşturun:
cp models.json ~/.config/katip/

⚙️ Yapılandırma

API Anahtarı

Gemini AI kullanmak için Google AI Studio'dan API anahtarı alın:

  1. Google AI Studio'ya gidin
  2. API anahtarı oluşturun
  3. Anahtarı ~/.config/katip/api_key.txt dosyasına kaydedin

Yerel Modeller

Yerel modeller ~/.config/katip/models.json dosyasında tanımlanır:

{
  "models": [
    {
      "name": "LLaMA-7B",
      "size": 4000,
      "download_url": "https://example.com/model.bin",
      "filename": "llama-7b.bin",
      "parameters": "7B"
    }
  ]
}

🎯 Kullanım

Uygulamayı Başlatma

python main.py

Temel Kullanım

  1. Model Seçimi: Üst kısımdan Gemini veya yerel model seçin
  2. Mesaj Yazma: Alt kısımdaki metin alanına mesajınızı yazın
  3. Gönderme: "Gönder" butonuna tıklayın veya Ctrl+Enter kullanın
  4. Durdurma: Yanıt sırasında "Durdur" butonunu kullanın

Klavye Kısayolları

  • Ctrl + Enter: Mesaj gönder
  • Esc: Yanıt üretimini durdur

📁 Proje Yapısı

katip/
├── src/
│   ├── common/
│   │   ├── api_client.py       # API bağlantı yönetimi
│   │   ├── chat_manager.py     # Sohbet akış yönetimi
│   │   └── model_loader.py     # Model yükleme ve yönetimi
│   ├── ui/
│   │   ├── main_window.py      # Ana uygulama penceresi
│   │   └── theme/
│   │       └── theme_manager.py # Tema yönetimi
│   └── static/
│       └── config.py           # Yapılandırma ayarları
├── data/
│   └── theme.qss              # CSS stil dosyası
├── models.json                # Model tanımları
├── main.py                    # Uygulama giriş noktası
└── requirements.txt           # Python bağımlılıkları

🔧 Geliştirme

Kod Yapısı

  • APIClient: OpenAI uyumlu API bağlantıları
  • ChatManager: Asenkron mesaj işleme ve streaming
  • ModelLoader: Yerel model indirme ve sunucu yönetimi
  • MainWindow: PyQt6 tabanlı kullanıcı arayüzü
  • ThemeManager: Dinamik tema değiştirme

Yeni Model Ekleme

  1. models.json dosyasını düzenleyin
  2. Model bilgilerini ekleyin
  3. Uygulamayı yeniden başlatın

Tema Özelleştirme

src/ui/theme/theme_manager.py dosyasını düzenleyerek yeni renkler ekleyebilirsiniz.

🐛 Sorun Giderme

Yaygın Sorunlar

API Anahtarı Hatası:

# API anahtarını kontrol edin
cat ~/.config/katip/api_key.txt

Model Yükleme Hatası:

# Model dizinini kontrol edin
ls -la ~/.config/katip/model/

Port Çakışması:

  • Yerel model sunucusu için 8080 portunu kullanır

Hata Ayıklama

# Ayrıntılı hata çıktısı için
python main.py --debug

🤝 Katkıda Bulunma

  1. Projeyi fork edin
  2. Feature branch oluşturun (git checkout -b feature/amazing-feature)
  3. Değişikliklerinizi commit edin (git commit -m 'Add amazing feature')
  4. Branch'inizi push edin (git push origin feature/amazing-feature)
  5. Pull Request oluşturun

📄 Lisans

Bu proje MIT lisansı altında dağıtılmaktadır. Detaylar için LICENSE dosyasına bakın.


Not: Bu uygulama eğitim ve araştırma amaçlıdır. Ticari kullanım için ilgili API sağlayıcılarının kullanım koşullarını kontrol edin.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published