Skip to content

Commit 4b90270

Browse files
authored
Merge pull request #724 from ConardLi/dev
Dev
2 parents 484a635 + 5f719c6 commit 4b90270

59 files changed

Lines changed: 3288 additions & 1153 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,5 @@ mock-login-callback.ts
1919
prisma/local-db/db.sqlite
2020
/local-db2
2121
.trae
22-
opencode.json
22+
opencode.json
23+
merge-translations.js

AGENTS.tr.md

Lines changed: 254 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,254 @@
1+
# Easy Dataset Agent Rehberi
2+
3+
## Proje Genel Bakışı
4+
5+
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.
6+
7+
## Teknoloji Yığını
8+
9+
- **Ön Uç**: Next.js 14 (App Router), React 18, Material-UI v5
10+
- **Arka Uç**: Node.js, Prisma ORM, SQLite
11+
- **AI Entegrasyonu**: OpenAI API, Ollama, Zhipu AI, OpenRouter
12+
- **Masaüstü Uygulaması**: Electron
13+
- **Uluslararasılaştırma**: i18next
14+
- **Derleme Araçları**: npm/pnpm, Electron Builder
15+
16+
## Temel Mimari
17+
18+
### 1. Veri Akış Mimarisi
19+
20+
```
21+
Belge Yükleme → Metin Bölme → Soru Üretimi → Cevap Üretimi → Veri Seti Dışa Aktarımı
22+
↓ ↓ ↓ ↓ ↓
23+
Dosya İşleme Akıllı Parçalama LLM Üretimi LLM Üretimi Format Dönüşümü
24+
```
25+
26+
### 2. Modül Yapısı
27+
28+
```
29+
lib/
30+
├── api/ # API arayüz katmanı
31+
├── db/ # Veri erişim katmanı
32+
├── file/ # Dosya işleme modülü
33+
├── llm/ # AI model entegrasyonu
34+
├── services/ # İş mantığı katmanı
35+
└── util/ # Yardımcı fonksiyonlar
36+
```
37+
38+
## Geliştirme Rehberi
39+
40+
### Ortam Kurulumu
41+
42+
```bash
43+
# Bağımlılıkları yükle
44+
npm install
45+
46+
# Veritabanı başlatma
47+
npm run db:push
48+
49+
# Geliştirme modu
50+
npm run dev
51+
52+
# Derleme
53+
npm run build
54+
```
55+
56+
### Kodlama Standartları
57+
58+
- ES6+ sözdizimi kullanımı
59+
- Modüler geliştirme
60+
- Asenkron işlemler için async/await kullanımı
61+
- Hata yönetimi için try/catch kullanımı
62+
- JSDoc formatında açıklamalar
63+
64+
### Önemli Dosya Yolları
65+
66+
- **Ana Giriş**: `app/page.js`
67+
- **Proje Yönlendirmesi**: `app/projects/[projectId]/`
68+
- **API Yönlendirmesi**: `app/api/`
69+
- **LLM Çekirdeği**: `lib/llm/core/index.js`
70+
- **Görev İşleme**: `lib/services/tasks/`
71+
72+
## Fonksiyon Modüllerinin Ayrıntıları
73+
74+
### 1. Belge İşleme Modülü (`lib/file/`)
75+
76+
- **Desteklenen Formatlar**: PDF, Markdown, DOCX, EPUB, TXT
77+
- **Temel İşlevler**:
78+
- Akıllı metin bölme
79+
- İçindekiler yapısı çıkarma
80+
- Özel ayırıcılarla parçalama
81+
- Çoklu dil desteği
82+
83+
### 2. AI Model Entegrasyonu (`lib/llm/`)
84+
85+
- **Desteklenen Sağlayıcılar**:
86+
- OpenAI (GPT serisi)
87+
- Ollama (Yerel modeller)
88+
- Zhipu AI (GLM serisi)
89+
- OpenRouter (Çoklu model birleştirme)
90+
- **Özellikler**:
91+
- Birleşik API arayüzü
92+
- Akış (stream) çıktı desteği
93+
- Çoklu dil istem desteği
94+
- Hata yeniden deneme mekanizması
95+
96+
### 3. Görev Sistemi (`lib/services/tasks/`)
97+
98+
- **Görev Türleri**:
99+
- Dosya işleme görevi
100+
- Soru üretim görevi
101+
- Cevap üretim görevi
102+
- Veri temizleme görevi
103+
- **Durum Yönetimi**: Beklemede, İşleniyor, Tamamlandı, Başarısız
104+
105+
### 4. Veri Yönetimi (`lib/db/`)
106+
107+
- **Veri Modelleri**:
108+
- Project (Proje)
109+
- Text/Chunk (Metin Parçası)
110+
- Question (Soru)
111+
- Dataset (Veri Seti)
112+
- Tag (Etiket)
113+
114+
## Yaygın Geliştirme Görevleri
115+
116+
### Yeni AI Model Sağlayıcı Ekleme
117+
118+
1. `lib/llm/core/providers/` içinde yeni bir provider dosyası oluşturun
119+
2. Temel arayüzleri uygulayın (generate, streamGenerate)
120+
3. `lib/llm/core/index.js` içinde provider'ı kaydedin
121+
4. Yapılandırma dosyalarını ve UI arayüzünü güncelleyin
122+
123+
### Yeni Dosya Formatı Desteği Ekleme
124+
125+
1. `lib/file/file-process/` içinde format işleyici oluşturun
126+
2. İçerik çıkarma ve metin dönüştürme mantığını uygulayın
127+
3. Dosya türü algılama ve doğrulamayı güncelleyin
128+
4. İlgili UI bileşenlerini ekleyin
129+
130+
### Özel İstem Şablonları
131+
132+
1. `lib/llm/prompts/` içinde yeni istem dosyası oluşturun
133+
2. Çoklu dil desteği için i18n kullanın
134+
3. Ayarlar arayüzüne yapılandırma seçenekleri ekleyin
135+
4. Farklı modellerde etkilerini test edin
136+
137+
### Yeni Dışa Aktarma Formatı Ekleme
138+
139+
1. `components/export/` içinde yeni dışa aktarma bileşeni oluşturun
140+
2. Veri formatı dönüştürme mantığını uygulayın
141+
3. Dışa aktarma diyalog arayüzünü güncelleyin
142+
4. Format doğrulama ve hata yönetimi ekleyin
143+
144+
## Hata Ayıklama İpuçları
145+
146+
### 1. Veritabanı Hata Ayıklama
147+
148+
```bash
149+
# Prisma Studio'yu açın
150+
npm run db:studio
151+
152+
# Veritabanı dosyasını görüntüleyin
153+
sqlite3 prisma/db.sqlite
154+
```
155+
156+
### 2. LLM API Hata Ayıklama
157+
158+
```javascript
159+
// lib/llm/core/index.js içinde günlük ekleyin
160+
console.log('LLM Request:', { provider, model, prompt });
161+
console.log('LLM Response:', response);
162+
```
163+
164+
### 3. Dosya İşleme Hata Ayıklama
165+
166+
```javascript
167+
// lib/file/ içinde hata ayıklama bilgisi ekleyin
168+
console.log('File processing:', fileName, fileType);
169+
console.log('Text chunks:', chunks.length, chunks[0]);
170+
```
171+
172+
## Performans Optimizasyon Önerileri
173+
174+
### 1. Dosya İşleme Optimizasyonu
175+
176+
- Büyük dosyaları parçalara ayırma
177+
- Asenkron eşzamanlı işleme
178+
- Bellek kullanımı izleme
179+
- İlerleme çubuğu gösterimi
180+
181+
### 2. LLM Çağrı Optimizasyonu
182+
183+
- İstek önbellekleme mekanizması
184+
- Toplu istek işleme
185+
- Yeniden deneme stratejisi optimizasyonu
186+
- Eşzamanlılık sayısı kontrolü
187+
188+
### 3. Ön Uç Performans Optimizasyonu
189+
190+
- Bileşen tembel yükleme
191+
- Sanal kaydırma listesi
192+
- Görsel tembel yükleme
193+
- Kod bölme
194+
195+
## Yaygın Sorun Çözümleri
196+
197+
### 1. Veritabanı İlgili Sorunlar
198+
199+
- **Sorun**: Veritabanı bağlantı hatası
200+
- **Çözüm**: Prisma yapılandırmasını kontrol edin, veritabanı dosyasının var olduğundan emin olun
201+
202+
### 2. LLM API İlgili Sorunlar
203+
204+
- **Sorun**: API çağrısı zaman aşımı
205+
- **Çözüm**: Zaman aşımı süresini ayarlayın, ağ bağlantısını kontrol edin, yeniden deneme mekanizması ekleyin
206+
207+
### 3. Dosya İşleme Sorunları
208+
209+
- **Sorun**: Büyük dosya işlemede bellek taşması
210+
- **Çözüm**: Akış işleme kullanın, parçalı okuma yapın, bellek sınırını artırın
211+
212+
### 4. Electron Paketleme Sorunları
213+
214+
- **Sorun**: Paketleme sonrasında uygulama başlatılamıyor
215+
- **Çözüm**: Bağımlılık yapılandırmasını kontrol edin, yerel modüllerin doğru paketlendiğinden emin olun
216+
217+
## Dağıtım Rehberi
218+
219+
### Docker Dağıtımı
220+
221+
```bash
222+
# İmaj oluşturma
223+
docker build -t easy-dataset .
224+
225+
# Konteyner çalıştırma
226+
docker run -d -p 1717:1717 -v ./local-db:/app/local-db easy-dataset
227+
```
228+
229+
### Masaüstü Uygulama Derleme
230+
231+
```bash
232+
# Her platform için kurulum paketi derleme
233+
npm run electron-build-mac # macOS
234+
npm run electron-build-win # Windows
235+
npm run electron-build-linux # Linux
236+
```
237+
238+
## Katkı Rehberi
239+
240+
### Commit Kuralları
241+
242+
- Conventional commits formatı kullanımı
243+
- Commit öncesi lint kontrolü çalıştırma
244+
- İlgili belgeleri güncelleme
245+
- Test senaryoları ekleme
246+
247+
### Dal Stratejisi
248+
249+
- `main`: Ana dal, kararlı sürüm
250+
- `dev`: Geliştirme dalı, yeni özelliklerin entegrasyonu
251+
- `feature/*`: Özellik dalları
252+
- `fix/*`: Düzeltme dalları
253+
254+
---

0 commit comments

Comments
 (0)