Easy Dataset, Büyük Dil Modeli (LLM) ince ayar veri seti oluşturmak için özel olarak tasarlanmış bir uygulamadır. Belge işlemeden veri seti dışa aktarımına kadar eksiksiz bir iş akışı sunar ve birden fazla dosya formatı ile AI modelini destekler.
- Ön Uç: Next.js 14 (App Router), React 18, Material-UI v5
- Arka Uç: Node.js, Prisma ORM, SQLite
- AI Entegrasyonu: OpenAI API, Ollama, Zhipu AI, OpenRouter
- Masaüstü Uygulaması: Electron
- Uluslararasılaştırma: i18next
- Derleme Araçları: npm/pnpm, Electron Builder
Belge Yükleme → Metin Bölme → Soru Üretimi → Cevap Üretimi → Veri Seti Dışa Aktarımı
↓ ↓ ↓ ↓ ↓
Dosya İşleme Akıllı Parçalama LLM Üretimi LLM Üretimi Format Dönüşümü
lib/
├── api/ # API arayüz katmanı
├── db/ # Veri erişim katmanı
├── file/ # Dosya işleme modülü
├── llm/ # AI model entegrasyonu
├── services/ # İş mantığı katmanı
└── util/ # Yardımcı fonksiyonlar
# Bağımlılıkları yükle
npm install
# Veritabanı başlatma
npm run db:push
# Geliştirme modu
npm run dev
# Derleme
npm run build- ES6+ sözdizimi kullanımı
- Modüler geliştirme
- Asenkron işlemler için async/await kullanımı
- Hata yönetimi için try/catch kullanımı
- JSDoc formatında açıklamalar
- Ana Giriş:
app/page.js - Proje Yönlendirmesi:
app/projects/[projectId]/ - API Yönlendirmesi:
app/api/ - LLM Çekirdeği:
lib/llm/core/index.js - Görev İşleme:
lib/services/tasks/
- Desteklenen Formatlar: PDF, Markdown, DOCX, EPUB, TXT
- Temel İşlevler:
- Akıllı metin bölme
- İçindekiler yapısı çıkarma
- Özel ayırıcılarla parçalama
- Çoklu dil desteği
- Desteklenen Sağlayıcılar:
- OpenAI (GPT serisi)
- Ollama (Yerel modeller)
- Zhipu AI (GLM serisi)
- OpenRouter (Çoklu model birleştirme)
- Özellikler:
- Birleşik API arayüzü
- Akış (stream) çıktı desteği
- Çoklu dil istem desteği
- Hata yeniden deneme mekanizması
- Görev Türleri:
- Dosya işleme görevi
- Soru üretim görevi
- Cevap üretim görevi
- Veri temizleme görevi
- Durum Yönetimi: Beklemede, İşleniyor, Tamamlandı, Başarısız
- Veri Modelleri:
- Project (Proje)
- Text/Chunk (Metin Parçası)
- Question (Soru)
- Dataset (Veri Seti)
- Tag (Etiket)
lib/llm/core/providers/içinde yeni bir provider dosyası oluşturun- Temel arayüzleri uygulayın (generate, streamGenerate)
lib/llm/core/index.jsiçinde provider'ı kaydedin- Yapılandırma dosyalarını ve UI arayüzünü güncelleyin
lib/file/file-process/içinde format işleyici oluşturun- İçerik çıkarma ve metin dönüştürme mantığını uygulayın
- Dosya türü algılama ve doğrulamayı güncelleyin
- İlgili UI bileşenlerini ekleyin
lib/llm/prompts/içinde yeni istem dosyası oluşturun- Çoklu dil desteği için i18n kullanın
- Ayarlar arayüzüne yapılandırma seçenekleri ekleyin
- Farklı modellerde etkilerini test edin
components/export/içinde yeni dışa aktarma bileşeni oluşturun- Veri formatı dönüştürme mantığını uygulayın
- Dışa aktarma diyalog arayüzünü güncelleyin
- Format doğrulama ve hata yönetimi ekleyin
# Prisma Studio'yu açın
npm run db:studio
# Veritabanı dosyasını görüntüleyin
sqlite3 prisma/db.sqlite// lib/llm/core/index.js içinde günlük ekleyin
console.log('LLM Request:', { provider, model, prompt });
console.log('LLM Response:', response);// lib/file/ içinde hata ayıklama bilgisi ekleyin
console.log('File processing:', fileName, fileType);
console.log('Text chunks:', chunks.length, chunks[0]);- Büyük dosyaları parçalara ayırma
- Asenkron eşzamanlı işleme
- Bellek kullanımı izleme
- İlerleme çubuğu gösterimi
- İstek önbellekleme mekanizması
- Toplu istek işleme
- Yeniden deneme stratejisi optimizasyonu
- Eşzamanlılık sayısı kontrolü
- Bileşen tembel yükleme
- Sanal kaydırma listesi
- Görsel tembel yükleme
- Kod bölme
- Sorun: Veritabanı bağlantı hatası
- Çözüm: Prisma yapılandırmasını kontrol edin, veritabanı dosyasının var olduğundan emin olun
- Sorun: API çağrısı zaman aşımı
- Çözüm: Zaman aşımı süresini ayarlayın, ağ bağlantısını kontrol edin, yeniden deneme mekanizması ekleyin
- Sorun: Büyük dosya işlemede bellek taşması
- Çözüm: Akış işleme kullanın, parçalı okuma yapın, bellek sınırını artırın
- Sorun: Paketleme sonrasında uygulama başlatılamıyor
- Çözüm: Bağımlılık yapılandırmasını kontrol edin, yerel modüllerin doğru paketlendiğinden emin olun
# İmaj oluşturma
docker build -t easy-dataset .
# Konteyner çalıştırma
docker run -d -p 1717:1717 -v ./local-db:/app/local-db easy-dataset# Her platform için kurulum paketi derleme
npm run electron-build-mac # macOS
npm run electron-build-win # Windows
npm run electron-build-linux # Linux- Conventional commits formatı kullanımı
- Commit öncesi lint kontrolü çalıştırma
- İlgili belgeleri güncelleme
- Test senaryoları ekleme
main: Ana dal, kararlı sürümdev: Geliştirme dalı, yeni özelliklerin entegrasyonufeature/*: Özellik dallarıfix/*: Düzeltme dalları