Spaces:
Paused
Paused
Upload 2 files
Browse files- flare-tasarim.md +56 -4
- flare-ui-tasarim.md +39 -140
flare-tasarim.md
CHANGED
|
@@ -8,6 +8,8 @@ Flare, Spark LLM motorunun üstünde çalışan, çok adımlı ve akıllı bir o
|
|
| 8 |
✅ Doğru parameter değerleri ile API çağrıları yapmak,
|
| 9 |
✅ API cevabını Spark üzerinden insanileştirilmiş metne dönüştürmek ve kullanıcıya iletmek,
|
| 10 |
✅ Her şeyi session bazında, state machine mantığında takip etmek.
|
|
|
|
|
|
|
| 11 |
|
| 12 |
Bu yapı Parloa gibi sistemlerde kullanılan "flow engine + LLM + tool orchestration" yaklaşımına dayanır.
|
| 13 |
|
|
@@ -17,8 +19,9 @@ Flare, farklı LLM provider'larını desteklemek için abstraction layer kullan
|
|
| 17 |
|
| 18 |
- **Spark (HuggingFace)**: On-premise ve HuggingFace cloud deployment'lar için
|
| 19 |
- **GPT-4o (OpenAI)**: OpenAI API üzerinden GPT-4o modeli kullanımı için
|
|
|
|
| 20 |
|
| 21 |
-
Work mode'a göre (`hfcloud`, `cloud`, `on-premise`, `gpt4o`) uygun LLM provider seçilir ve tüm LLM çağrıları bu abstraction üzerinden yapılır. Bu sayede farklı LLM'ler aynı intent detection, parameter extraction ve response generation mantığıyla çalışabilir.
|
| 22 |
|
| 23 |
# Spark Entegrasyonu
|
| 24 |
|
|
@@ -28,7 +31,7 @@ Spark'a gönderilecek tüm request'lerde header'a Authorization: Bearer <SPARK_T
|
|
| 28 |
|
| 29 |
# GPT-4o Entegrasyonu
|
| 30 |
|
| 31 |
-
Work mode `gpt4o` seçildiğinde, Spark yerine OpenAI API kullanılır. OpenAI API key, config.cloud_token alanında şifrelenmiş olarak saklanır (mevcut encryption_utils kullanılarak).
|
| 32 |
|
| 33 |
GPT-4o için özel konfigürasyonlar:
|
| 34 |
- Model seçimi: gpt-4o veya gpt-4o-mini
|
|
@@ -36,6 +39,40 @@ GPT-4o için özel konfigürasyonlar:
|
|
| 36 |
- Max tokens: Response uzunluğu limiti
|
| 37 |
- System prompt ve conversation history OpenAI format'ına dönüştürülür
|
| 38 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 39 |
# Internal Prompt Mekanizması
|
| 40 |
|
| 41 |
Flare servisi, tüm LLM isteklerinde kullanılmak üzere merkezi bir internal_prompt tanımına sahiptir. Bu prompt, service_config.jsonc dosyasında config.internal_prompt olarak saklanır ve her intent detection işleminde project version'daki general_prompt'un başına otomatik olarak eklenir.
|
|
@@ -211,6 +248,8 @@ Parametre tanımlarında "date" type'ı desteklenmektedir. Date parametreleri:
|
|
| 211 |
| LLM Interface | Farklı LLM provider'larını abstract eden katman |
|
| 212 |
| Spark LLM | HuggingFace Spark servisi ile iletişim |
|
| 213 |
| GPT-4o LLM | OpenAI API ile iletişim |
|
|
|
|
|
|
|
| 214 |
| Flare Session Manager | Her kullanıcı için session ve state takibi |
|
| 215 |
| Flare Prompt Engine | Her aşamada LLM'e gönderilecek uygun system prompt'u dinamik hazırlayan yapı |
|
| 216 |
| API Connector | Tanımlı API'lere parametrelerle çağrı yapan, auth/refresh yöneten katman |
|
|
@@ -232,6 +271,11 @@ Parametre tanımlarında "date" type'ı desteklenmektedir. Date parametreleri:
|
|
| 232 |
✅ Internal prompt sistemi
|
| 233 |
✅ Date type desteği
|
| 234 |
✅ Multi-provider support
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 235 |
|
| 236 |
# 🔑 Önemli Notlar (Unutulmaması Gerekenler)
|
| 237 |
|
|
@@ -243,6 +287,8 @@ Parametre tanımlarında "date" type'ı desteklenmektedir. Date parametreleri:
|
|
| 243 |
6. API token yönetimi ve refresh mekanizması, Flare içinde güvenli ve izlenebilir şekilde tutulmalı.
|
| 244 |
7. GPT-4o kullanımında token maliyetleri göz önünde bulundurulmalı, conversation history sınırlandırılmalı.
|
| 245 |
8. Farklı LLM'lerin response formatları normalize edilmeli (#DETECTED_INTENT ve #PARAMETERS formatları korunmalı).
|
|
|
|
|
|
|
| 246 |
|
| 247 |
# Servis Konfigürasyonu
|
| 248 |
|
|
@@ -254,7 +300,7 @@ Flare'in tanımlarını tutan bir document database gibi kullanacağımız servi
|
|
| 254 |
// FLARE GLOBAL CONFIGURATION
|
| 255 |
// =====================================================
|
| 256 |
"config": {
|
| 257 |
-
"work_mode": "hfcloud", // "hfcloud" | "cloud" | "on-premise" | "gpt4o"
|
| 258 |
"cloud_token": "<your cloud token or OpenAI API key>", // work_mode'a göre Spark token veya OpenAI API key (şifrelenmiş)
|
| 259 |
"spark_endpoint": "https://ucsturkey-spark.hf.space", // Spark servisi URL (GPT mode'da kullanılmaz)
|
| 260 |
"internal_prompt": "⚠️ **NEVER output \"#DETECTED_INTENT:\"...", // Merkezi LLM kuralları
|
|
@@ -262,6 +308,12 @@ Flare'in tanımlarını tutan bir document database gibi kullanacağımız servi
|
|
| 262 |
"last_update_date": "2025-06-08T12:00:00.000Z", // Race condition kontrolü için
|
| 263 |
"last_update_user": "admin",
|
| 264 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 265 |
// === Login Users (bcrypt hash + salt): Flare UI kullanılabilecek user'lar ==============
|
| 266 |
"users": [
|
| 267 |
{
|
|
@@ -321,7 +373,7 @@ Flare'in tanımlarını tutan bir document database gibi kullanacağımız servi
|
|
| 321 |
"use_fine_tune": false, // LoRA fine-tune model kullanılma durumu
|
| 322 |
"fine_tune_zip": "", // use_fine_tune: true ise, kullanılacak LoRA adapter zip'in URL'i
|
| 323 |
|
| 324 |
-
// GPT-4o mode için (work_mode = "gpt4o" olduğunda kullanılır):
|
| 325 |
"gpt_model": "gpt-4o", // "gpt-4o" | "gpt-4o-mini"
|
| 326 |
"gpt_temperature": 0.3, // 0-2 arası
|
| 327 |
"gpt_max_tokens": 512 // Maximum response token sayısı
|
|
|
|
| 8 |
✅ Doğru parameter değerleri ile API çağrıları yapmak,
|
| 9 |
✅ API cevabını Spark üzerinden insanileştirilmiş metne dönüştürmek ve kullanıcıya iletmek,
|
| 10 |
✅ Her şeyi session bazında, state machine mantığında takip etmek.
|
| 11 |
+
✅ TTS (Text-to-Speech) desteği ile bot yanıtlarını sesli olarak sunmak.
|
| 12 |
+
✅ STT (Speech-to-Text) desteği ile kullanıcıdan sesli girdi almak (gelecek özellik).
|
| 13 |
|
| 14 |
Bu yapı Parloa gibi sistemlerde kullanılan "flow engine + LLM + tool orchestration" yaklaşımına dayanır.
|
| 15 |
|
|
|
|
| 19 |
|
| 20 |
- **Spark (HuggingFace)**: On-premise ve HuggingFace cloud deployment'lar için
|
| 21 |
- **GPT-4o (OpenAI)**: OpenAI API üzerinden GPT-4o modeli kullanımı için
|
| 22 |
+
- **GPT-4o-mini (OpenAI)**: Düşük maliyetli alternatif için GPT-4o-mini modeli
|
| 23 |
|
| 24 |
+
Work mode'a göre (`hfcloud`, `cloud`, `on-premise`, `gpt4o`, `gpt4o-mini`) uygun LLM provider seçilir ve tüm LLM çağrıları bu abstraction üzerinden yapılır. Bu sayede farklı LLM'ler aynı intent detection, parameter extraction ve response generation mantığıyla çalışabilir.
|
| 25 |
|
| 26 |
# Spark Entegrasyonu
|
| 27 |
|
|
|
|
| 31 |
|
| 32 |
# GPT-4o Entegrasyonu
|
| 33 |
|
| 34 |
+
Work mode `gpt4o` veya `gpt4o-mini` seçildiğinde, Spark yerine OpenAI API kullanılır. OpenAI API key, config.cloud_token alanında şifrelenmiş olarak saklanır (mevcut encryption_utils kullanılarak).
|
| 35 |
|
| 36 |
GPT-4o için özel konfigürasyonlar:
|
| 37 |
- Model seçimi: gpt-4o veya gpt-4o-mini
|
|
|
|
| 39 |
- Max tokens: Response uzunluğu limiti
|
| 40 |
- System prompt ve conversation history OpenAI format'ına dönüştürülür
|
| 41 |
|
| 42 |
+
**Maliyet Optimizasyonu**:
|
| 43 |
+
- gpt-4o: ~$0.01-0.03 per konuşma
|
| 44 |
+
- gpt-4o-mini: ~$0.001-0.003 per konuşma (10x daha ucuz)
|
| 45 |
+
|
| 46 |
+
# TTS/STT Entegrasyonu
|
| 47 |
+
|
| 48 |
+
Flare, sesli etkileşim için TTS (Text-to-Speech) ve STT (Speech-to-Text) motorlarını destekler:
|
| 49 |
+
|
| 50 |
+
## TTS (Text-to-Speech)
|
| 51 |
+
Desteklenen motorlar:
|
| 52 |
+
- **ElevenLabs**: Yüksek kaliteli, çok dilli TTS desteği
|
| 53 |
+
- **Blaze**: Alternatif TTS motoru (yakında)
|
| 54 |
+
- **No TTS**: TTS devre dışı
|
| 55 |
+
|
| 56 |
+
TTS Konfigürasyonu service_config.jsonc içinde:
|
| 57 |
+
- `tts_engine`: Kullanılacak motor ("no_tts", "elevenlabs", "blaze")
|
| 58 |
+
- `tts_engine_api_key`: Motor API anahtarı (şifrelenmiş)
|
| 59 |
+
|
| 60 |
+
## STT (Speech-to-Text)
|
| 61 |
+
Desteklenen motorlar:
|
| 62 |
+
- **ElevenLabs**: Sesli girdi desteği
|
| 63 |
+
- **Flicker**: Alternatif STT motoru (yakında)
|
| 64 |
+
- **No STT**: STT devre dışı
|
| 65 |
+
|
| 66 |
+
STT Konfigürasyonu:
|
| 67 |
+
- `stt_engine`: Kullanılacak motor
|
| 68 |
+
- `stt_engine_api_key`: Motor API anahtarı (şifrelenmiş)
|
| 69 |
+
|
| 70 |
+
## Chat'te TTS Kullanımı
|
| 71 |
+
1. Chat başlatılırken "Use TTS" seçeneği işaretlenebilir
|
| 72 |
+
2. Bot yanıtları otomatik olarak TTS ile seslendirilebilir
|
| 73 |
+
3. Her mesaj için ayrı ses dosyası üretilir ve oynatılabilir
|
| 74 |
+
4. Ses oynatma sırasında waveform visualizasyon gösterilir
|
| 75 |
+
|
| 76 |
# Internal Prompt Mekanizması
|
| 77 |
|
| 78 |
Flare servisi, tüm LLM isteklerinde kullanılmak üzere merkezi bir internal_prompt tanımına sahiptir. Bu prompt, service_config.jsonc dosyasında config.internal_prompt olarak saklanır ve her intent detection işleminde project version'daki general_prompt'un başına otomatik olarak eklenir.
|
|
|
|
| 248 |
| LLM Interface | Farklı LLM provider'larını abstract eden katman |
|
| 249 |
| Spark LLM | HuggingFace Spark servisi ile iletişim |
|
| 250 |
| GPT-4o LLM | OpenAI API ile iletişim |
|
| 251 |
+
| TTS Interface | Farklı TTS provider'larını abstract eden katman |
|
| 252 |
+
| ElevenLabs TTS | ElevenLabs TTS servisi ile iletişim |
|
| 253 |
| Flare Session Manager | Her kullanıcı için session ve state takibi |
|
| 254 |
| Flare Prompt Engine | Her aşamada LLM'e gönderilecek uygun system prompt'u dinamik hazırlayan yapı |
|
| 255 |
| API Connector | Tanımlı API'lere parametrelerle çağrı yapan, auth/refresh yöneten katman |
|
|
|
|
| 271 |
✅ Internal prompt sistemi
|
| 272 |
✅ Date type desteği
|
| 273 |
✅ Multi-provider support
|
| 274 |
+
✅ TTS (Text-to-Speech) entegrasyonu
|
| 275 |
+
✅ ElevenLabs TTS provider
|
| 276 |
+
⏳ STT (Speech-to-Text) entegrasyonu
|
| 277 |
+
⏳ Blaze TTS provider
|
| 278 |
+
⏳ Flicker STT provider
|
| 279 |
|
| 280 |
# 🔑 Önemli Notlar (Unutulmaması Gerekenler)
|
| 281 |
|
|
|
|
| 287 |
6. API token yönetimi ve refresh mekanizması, Flare içinde güvenli ve izlenebilir şekilde tutulmalı.
|
| 288 |
7. GPT-4o kullanımında token maliyetleri göz önünde bulundurulmalı, conversation history sınırlandırılmalı.
|
| 289 |
8. Farklı LLM'lerin response formatları normalize edilmeli (#DETECTED_INTENT ve #PARAMETERS formatları korunmalı).
|
| 290 |
+
9. TTS kullanımında API key güvenliği ve maliyet kontrolü sağlanmalı.
|
| 291 |
+
10. Tüm API key'ler (OpenAI, ElevenLabs, vb.) şifrelenmiş olarak saklanmalı.
|
| 292 |
|
| 293 |
# Servis Konfigürasyonu
|
| 294 |
|
|
|
|
| 300 |
// FLARE GLOBAL CONFIGURATION
|
| 301 |
// =====================================================
|
| 302 |
"config": {
|
| 303 |
+
"work_mode": "hfcloud", // "hfcloud" | "cloud" | "on-premise" | "gpt4o" | "gpt4o-mini"
|
| 304 |
"cloud_token": "<your cloud token or OpenAI API key>", // work_mode'a göre Spark token veya OpenAI API key (şifrelenmiş)
|
| 305 |
"spark_endpoint": "https://ucsturkey-spark.hf.space", // Spark servisi URL (GPT mode'da kullanılmaz)
|
| 306 |
"internal_prompt": "⚠️ **NEVER output \"#DETECTED_INTENT:\"...", // Merkezi LLM kuralları
|
|
|
|
| 308 |
"last_update_date": "2025-06-08T12:00:00.000Z", // Race condition kontrolü için
|
| 309 |
"last_update_user": "admin",
|
| 310 |
|
| 311 |
+
// === TTS/STT Configuration ==============
|
| 312 |
+
"tts_engine": "no_tts", // "no_tts" | "elevenlabs" | "blaze"
|
| 313 |
+
"tts_engine_api_key": "enc:...", // Şifrelenmiş TTS API key
|
| 314 |
+
"stt_engine": "no_stt", // "no_stt" | "elevenlabs" | "flicker"
|
| 315 |
+
"stt_engine_api_key": "enc:...", // Şifrelenmiş STT API key
|
| 316 |
+
|
| 317 |
// === Login Users (bcrypt hash + salt): Flare UI kullanılabilecek user'lar ==============
|
| 318 |
"users": [
|
| 319 |
{
|
|
|
|
| 373 |
"use_fine_tune": false, // LoRA fine-tune model kullanılma durumu
|
| 374 |
"fine_tune_zip": "", // use_fine_tune: true ise, kullanılacak LoRA adapter zip'in URL'i
|
| 375 |
|
| 376 |
+
// GPT-4o mode için (work_mode = "gpt4o" veya "gpt4o-mini" olduğunda kullanılır):
|
| 377 |
"gpt_model": "gpt-4o", // "gpt-4o" | "gpt-4o-mini"
|
| 378 |
"gpt_temperature": 0.3, // 0-2 arası
|
| 379 |
"gpt_max_tokens": 512 // Maximum response token sayısı
|
flare-ui-tasarim.md
CHANGED
|
@@ -8,7 +8,7 @@ Flare Admin ekranlarında; proje tanımlama, mevcut projeyi düzenleme, projeye
|
|
| 8 |
|
| 9 |
Document database olarak Flare'in service_config.jsonc dosyasını kullanır. Tüm tanım, düzenleme, silme ve listeleme işlemlerini bu dosya üzerinde yapar.
|
| 10 |
|
| 11 |
-
Flare Admin, Flare backend servisi üzerinden Spark veya GPT-4o ile entegre çalışır.
|
| 12 |
|
| 13 |
## Genel Kurallar
|
| 14 |
|
|
@@ -85,6 +85,12 @@ Flare backend'de Flare Admin UI işleyişi için bazı eklemeler yapılması ger
|
|
| 85 |
- POST /api/start_session - Chat session başlat
|
| 86 |
- POST /api/chat - Mesaj gönder/al (Header: X-Session-ID)
|
| 87 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 88 |
#### Ek Yardımcı Endpoint'ler
|
| 89 |
|
| 90 |
- POST /api/validate/regex - Regex pattern validasyonu
|
|
@@ -103,12 +109,18 @@ Flare backend'de Flare Admin UI işleyişi için bazı eklemeler yapılması ger
|
|
| 103 |
{
|
| 104 |
"config": {
|
| 105 |
// Mevcut alanlar...
|
| 106 |
-
"work_mode": "hfcloud", // "hfcloud" | "cloud" | "on-premise" | "gpt4o" - Yeni: gpt4o desteği
|
| 107 |
"cloud_token": "", // work_mode'a göre Spark token veya OpenAI API key (şifrelenmiş)
|
| 108 |
"internal_prompt": "⚠️ **NEVER output \"#DETECTED_INTENT:\"...", // Yeni
|
| 109 |
"project_id_counter": 1, // Yeni
|
| 110 |
"last_update_date": "2025-06-08T12:00:00.000Z", // Yeni
|
| 111 |
-
"last_update_user": "admin" // Yeni
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 112 |
},
|
| 113 |
|
| 114 |
"projects": [{
|
|
@@ -135,7 +147,7 @@ Flare backend'de Flare Admin UI işleyişi için bazı eklemeler yapılması ger
|
|
| 135 |
"use_fine_tune": false,
|
| 136 |
"fine_tune_zip": "",
|
| 137 |
|
| 138 |
-
// GPT-4o mode için (work_mode = "gpt4o" olduğunda kullanılır):
|
| 139 |
"gpt_model": "gpt-4o", // "gpt-4o" | "gpt-4o-mini"
|
| 140 |
"gpt_temperature": 0.3, // 0-2 arası
|
| 141 |
"gpt_max_tokens": 512 // Maximum response token sayısı
|
|
@@ -198,12 +210,16 @@ Bu tab penceresinde login olan kullanıcı mevcut şifresini değiştirebilir. E
|
|
| 198 |
|
| 199 |
Bu tab'da aşağıdaki alanlar bulunur:
|
| 200 |
|
| 201 |
-
- **Work Mode**: Seçenekleri **hfcloud**, **cloud**, **on-premise** ve **gpt4o** olan bir combo. Zorunlu.
|
| 202 |
- **Cloud Token / OpenAI API Key** (maskeli):
|
| 203 |
- Work Mode **on-premise** seçildiğinde disable olur.
|
| 204 |
-
- Work Mode **gpt4o** seçildiğinde label "OpenAI API Key" olarak değişir
|
| 205 |
- Diğer modlarda "Cloud Token" olarak görünür
|
| 206 |
- **Spark Endpoint**: URL formatında. GPT-4o mode hariç zorunlu. Yanında "Test Connection" butonu. GPT-4o seçildiğinde disable olur.
|
|
|
|
|
|
|
|
|
|
|
|
|
| 207 |
- **Internal System Prompt**: Expansion panel içinde multi-line textarea. LLM'in tüm projeler için kullanacağı temel kuralları içerir. Placeholder'lar:
|
| 208 |
- <intent names>: Runtime'da intent listesiyle değiştirilir
|
| 209 |
- <intent captions>: Intent caption'larıyla değiştirilir
|
|
@@ -211,13 +227,16 @@ Bu tab'da aşağıdaki alanlar bulunur:
|
|
| 211 |
- Save butonu
|
| 212 |
- Reload from Spark butonu: Spark'tan güncel config'i çeker (GPT mode'da disable)
|
| 213 |
|
| 214 |
-
**GPT-4o Mode Uyarısı**: Work mode GPT-4o seçildiğinde bir info alert gösterilir:
|
| 215 |
```
|
| 216 |
ℹ️ GPT-4o mode uses OpenAI's API which has usage-based pricing.
|
| 217 |
Please ensure you have sufficient credits in your OpenAI account.
|
| 218 |
-
Approximate cost: $0.01-0.03 per conversation turn.
|
|
|
|
| 219 |
```
|
| 220 |
|
|
|
|
|
|
|
| 221 |
### 3. APIs Tab'ı
|
| 222 |
|
| 223 |
Tab açıldığında, üstte bir toolbar bulunur:
|
|
@@ -271,13 +290,16 @@ Flare chat sistemini test etmek için kullanılır.
|
|
| 271 |
|
| 272 |
**İşleyiş:**
|
| 273 |
1. **Project Selection**: Enabled ve published version'u olan projeler listelenir
|
| 274 |
-
2. **
|
| 275 |
-
3. **Chat
|
|
|
|
| 276 |
- Mesaj history'si
|
| 277 |
- Input alanı
|
| 278 |
- Send butonu
|
| 279 |
- Session bilgileri (ID, project)
|
| 280 |
-
|
|
|
|
|
|
|
| 281 |
|
| 282 |
**Özellikler:**
|
| 283 |
- Real-time mesajlaşma
|
|
@@ -285,6 +307,9 @@ Flare chat sistemini test etmek için kullanılır.
|
|
| 285 |
- Auto-scroll
|
| 286 |
- Error handling
|
| 287 |
- Loading states
|
|
|
|
|
|
|
|
|
|
| 288 |
|
| 289 |
### 6. Spark Integration Tab'ı
|
| 290 |
|
|
@@ -347,6 +372,7 @@ Bu tab'da sistemin end-to-end testi yapılabilir:
|
|
| 347 |
- Backend Tests: API endpoint'leri, data integrity
|
| 348 |
- Integration Tests: UI-Backend entegrasyonu
|
| 349 |
- Spark Tests: LLM bağlantısı ve response kalitesi (GPT mode'da "GPT-4o Tests" olarak görünür)
|
|
|
|
| 350 |
|
| 351 |
**Ekran Düzeni:**
|
| 352 |
```
|
|
@@ -364,6 +390,7 @@ Bu tab'da sistemin end-to-end testi yapılabilir:
|
|
| 364 |
│ □ Race Conditions │
|
| 365 |
│ □ Integration Tests (18 tests) │
|
| 366 |
│ □ LLM Tests (8 tests) │
|
|
|
|
| 367 |
├─────────────────────────────────────────────┤
|
| 368 |
│ Test Results: │
|
| 369 |
│ ✓ Login with valid credentials - 120ms │
|
|
@@ -441,132 +468,4 @@ Yeni alanlar eklendi:
|
|
| 441 |
- Description: Proje açıklaması
|
| 442 |
- Default Language: Varsayılan dil (tr, en, de, fr, es)
|
| 443 |
- Supported Languages: Desteklenen diller (çoklu seçim)
|
| 444 |
-
-
|
| 445 |
-
- Region: Bölge kodu (tr-TR, vb.)
|
| 446 |
-
|
| 447 |
-
### Edit Version Dialog
|
| 448 |
-
|
| 449 |
-
**LLM Configuration Tab'a GPT-4o Desteği:**
|
| 450 |
-
|
| 451 |
-
Work mode'a göre conditional rendering:
|
| 452 |
-
|
| 453 |
-
**GPT-4o Mode'da:**
|
| 454 |
-
```
|
| 455 |
-
┌─────────────────────────────────────┐
|
| 456 |
-
│ GPT-4o Configuration │
|
| 457 |
-
├─────────────────────────────────────┤
|
| 458 |
-
│ Model: │
|
| 459 |
-
│ [▼ GPT-4o ] │
|
| 460 |
-
│ │
|
| 461 |
-
│ Temperature: (0 = Deterministic) │
|
| 462 |
-
│ [====|==============] 0.3 │
|
| 463 |
-
│ │
|
| 464 |
-
│ Max Tokens: │
|
| 465 |
-
│ [512 ] │
|
| 466 |
-
│ │
|
| 467 |
-
│ ℹ️ Cost estimate: ~$0.02/request │
|
| 468 |
-
└─────────────────────────────────────┘
|
| 469 |
-
```
|
| 470 |
-
|
| 471 |
-
**Spark Mode'da (mevcut):**
|
| 472 |
-
- Model Repository
|
| 473 |
-
- Generation Config (detaylı parametreler)
|
| 474 |
-
- Fine-tune options
|
| 475 |
-
|
| 476 |
-
### Edit Intent Dialog
|
| 477 |
-
|
| 478 |
-
[Mevcut içerik korunacak, değişiklik yok]
|
| 479 |
-
|
| 480 |
-
### Edit Parameter Dialog
|
| 481 |
-
|
| 482 |
-
Date type desteği eklendi:
|
| 483 |
-
- Type combo'suna "date" seçeneği
|
| 484 |
-
- Date formatı: YYYY-MM-DD (ISO format)
|
| 485 |
-
- Türkçe tarih ifadeleri için özel extraction prompt'lar
|
| 486 |
-
|
| 487 |
-
### Version Comparison Dialog
|
| 488 |
-
|
| 489 |
-
[Mevcut içerik korunacak, değişiklik yok]
|
| 490 |
-
|
| 491 |
-
## Flare Admin Test Planı
|
| 492 |
-
|
| 493 |
-
[Mevcut test planına ek olarak:]
|
| 494 |
-
|
| 495 |
-
### GPT-4o Integration Test Senaryoları:
|
| 496 |
-
|
| 497 |
-
**1. Environment Configuration:**
|
| 498 |
-
- Work mode'u GPT-4o'ya değiştir
|
| 499 |
-
- OpenAI API key gir
|
| 500 |
-
- Save et
|
| 501 |
-
- Spark endpoint'in disable olduğunu kontrol et
|
| 502 |
-
|
| 503 |
-
**2. Version Management:**
|
| 504 |
-
- GPT-4o mode'da yeni version oluştur
|
| 505 |
-
- LLM tab'ında sadece GPT config'lerinin göründüğünü doğrula
|
| 506 |
-
- Model, temperature, max_tokens ayarla
|
| 507 |
-
- Publish et
|
| 508 |
-
|
| 509 |
-
**3. Spark Tab Behavior:**
|
| 510 |
-
- GPT-4o mode'da Spark tab'ın disable olduğunu kontrol et
|
| 511 |
-
- Bilgi mesajının göründüğünü doğrula
|
| 512 |
-
|
| 513 |
-
**4. Chat Testing:**
|
| 514 |
-
- GPT-4o kullanan proje ile chat başlat
|
| 515 |
-
- Intent detection test et
|
| 516 |
-
- Parameter extraction test et
|
| 517 |
-
- Response kalitesini değerlendir
|
| 518 |
-
|
| 519 |
-
**5. Cost Tracking:**
|
| 520 |
-
- Chat sonrası tahmini maliyet gösterimini kontrol et
|
| 521 |
-
- Token kullanım bilgilerini doğrula
|
| 522 |
-
|
| 523 |
-
### Multi-Provider Switching:
|
| 524 |
-
|
| 525 |
-
**1. Mode Değişimi:**
|
| 526 |
-
- Spark → GPT-4o → Spark geçişleri yap
|
| 527 |
-
- Her geçişte config'lerin korunduğunu kontrol et
|
| 528 |
-
- Token/key bilgilerinin şifreli kaldığını doğrula
|
| 529 |
-
|
| 530 |
-
**2. Project Compatibility:**
|
| 531 |
-
- Aynı projeyi farklı modlarda test et
|
| 532 |
-
- Intent ve parameter mantığının tutarlı çalıştığını doğrula
|
| 533 |
-
|
| 534 |
-
## Güvenlik ve Performans
|
| 535 |
-
|
| 536 |
-
### Token Yönetimi:
|
| 537 |
-
- SPARK_TOKEN environment variable'dan alınır
|
| 538 |
-
- OPENAI_API_KEY cloud_token alanında şifrelenmiş saklanır
|
| 539 |
-
- Tüm LLM isteklerinde uygun Authorization header
|
| 540 |
-
- Token rotation desteği
|
| 541 |
-
|
| 542 |
-
### GPT-4o Özel Güvenlik:
|
| 543 |
-
- API key asla plain text olarak loglanmaz
|
| 544 |
-
- Rate limit handling
|
| 545 |
-
- Cost monitoring ve alerting
|
| 546 |
-
- Quota management
|
| 547 |
-
|
| 548 |
-
### Race Condition Handling:
|
| 549 |
-
- last_update_date kontrolü tüm CRUD işlemlerinde
|
| 550 |
-
- Concurrent edit detection
|
| 551 |
-
- Optimistic locking pattern
|
| 552 |
-
|
| 553 |
-
### Session Management:
|
| 554 |
-
- 30 dakika inactivity timeout
|
| 555 |
-
- Session cleanup thread
|
| 556 |
-
- Memory-efficient storage
|
| 557 |
-
- GPT-4o için token count tracking
|
| 558 |
-
|
| 559 |
-
## Teknoloji Stack
|
| 560 |
-
|
| 561 |
-
- **Frontend**: Angular 17+ (standalone components)
|
| 562 |
-
- **UI Framework**: Angular Material
|
| 563 |
-
- **State Management**: RxJS
|
| 564 |
-
- **Backend**: Python FastAPI
|
| 565 |
-
- **Authentication**: JWT
|
| 566 |
-
- **Database**: service_config.jsonc (document database pattern)
|
| 567 |
-
- **LLM Integration**:
|
| 568 |
-
- Spark servisi (HuggingFace)
|
| 569 |
-
- OpenAI API (GPT-4o)
|
| 570 |
-
- **Encryption**: Fernet (cloud_token/API key şifreleme)
|
| 571 |
-
|
| 572 |
-
Bu güncellemelerle Flare Administration UI, hem Spark hem de GPT-4o desteği ile çok daha esnek bir orchestration platform yönetim arayüzü haline gelmiştir.
|
|
|
|
| 8 |
|
| 9 |
Document database olarak Flare'in service_config.jsonc dosyasını kullanır. Tüm tanım, düzenleme, silme ve listeleme işlemlerini bu dosya üzerinde yapar.
|
| 10 |
|
| 11 |
+
Flare Admin, Flare backend servisi üzerinden Spark veya GPT-4o ile entegre çalışır. Ayrıca TTS (Text-to-Speech) ve STT (Speech-to-Text) motorları ile sesli etkileşim desteği sunar.
|
| 12 |
|
| 13 |
## Genel Kurallar
|
| 14 |
|
|
|
|
| 85 |
- POST /api/start_session - Chat session başlat
|
| 86 |
- POST /api/chat - Mesaj gönder/al (Header: X-Session-ID)
|
| 87 |
|
| 88 |
+
#### TTS/STT Endpoint'leri
|
| 89 |
+
|
| 90 |
+
- POST /api/tts/generate - Text'ten ses üret
|
| 91 |
+
- GET /api/tts/voices - Desteklenen ses listesi
|
| 92 |
+
- POST /api/stt/transcribe - Sesten text'e dönüştür (gelecek özellik)
|
| 93 |
+
|
| 94 |
#### Ek Yardımcı Endpoint'ler
|
| 95 |
|
| 96 |
- POST /api/validate/regex - Regex pattern validasyonu
|
|
|
|
| 109 |
{
|
| 110 |
"config": {
|
| 111 |
// Mevcut alanlar...
|
| 112 |
+
"work_mode": "hfcloud", // "hfcloud" | "cloud" | "on-premise" | "gpt4o" | "gpt4o-mini" - Yeni: gpt4o desteği
|
| 113 |
"cloud_token": "", // work_mode'a göre Spark token veya OpenAI API key (şifrelenmiş)
|
| 114 |
"internal_prompt": "⚠️ **NEVER output \"#DETECTED_INTENT:\"...", // Yeni
|
| 115 |
"project_id_counter": 1, // Yeni
|
| 116 |
"last_update_date": "2025-06-08T12:00:00.000Z", // Yeni
|
| 117 |
+
"last_update_user": "admin", // Yeni
|
| 118 |
+
|
| 119 |
+
// TTS/STT Configuration - Yeni
|
| 120 |
+
"tts_engine": "no_tts", // "no_tts" | "elevenlabs" | "blaze"
|
| 121 |
+
"tts_engine_api_key": "enc:...", // Şifrelenmiş TTS API key
|
| 122 |
+
"stt_engine": "no_stt", // "no_stt" | "elevenlabs" | "flicker"
|
| 123 |
+
"stt_engine_api_key": "enc:..." // Şifrelenmiş STT API key
|
| 124 |
},
|
| 125 |
|
| 126 |
"projects": [{
|
|
|
|
| 147 |
"use_fine_tune": false,
|
| 148 |
"fine_tune_zip": "",
|
| 149 |
|
| 150 |
+
// GPT-4o mode için (work_mode = "gpt4o" veya "gpt4o-mini" olduğunda kullanılır):
|
| 151 |
"gpt_model": "gpt-4o", // "gpt-4o" | "gpt-4o-mini"
|
| 152 |
"gpt_temperature": 0.3, // 0-2 arası
|
| 153 |
"gpt_max_tokens": 512 // Maximum response token sayısı
|
|
|
|
| 210 |
|
| 211 |
Bu tab'da aşağıdaki alanlar bulunur:
|
| 212 |
|
| 213 |
+
- **Work Mode**: Seçenekleri **hfcloud**, **cloud**, **on-premise**, **gpt4o** ve **gpt4o-mini** olan bir combo. Zorunlu.
|
| 214 |
- **Cloud Token / OpenAI API Key** (maskeli):
|
| 215 |
- Work Mode **on-premise** seçildiğinde disable olur.
|
| 216 |
+
- Work Mode **gpt4o** veya **gpt4o-mini** seçildiğinde label "OpenAI API Key" olarak değişir
|
| 217 |
- Diğer modlarda "Cloud Token" olarak görünür
|
| 218 |
- **Spark Endpoint**: URL formatında. GPT-4o mode hariç zorunlu. Yanında "Test Connection" butonu. GPT-4o seçildiğinde disable olur.
|
| 219 |
+
- **TTS Engine**: Seçenekleri **no_tts**, **elevenlabs**, **blaze** olan combo.
|
| 220 |
+
- **TTS API Key** (maskeli): TTS Engine **no_tts** dışında bir değer seçildiğinde zorunlu olur.
|
| 221 |
+
- **STT Engine**: Seçenekleri **no_stt**, **elevenlabs**, **flicker** olan combo.
|
| 222 |
+
- **STT API Key** (maskeli): STT Engine **no_stt** dışında bir değer seçildiğinde zorunlu olur.
|
| 223 |
- **Internal System Prompt**: Expansion panel içinde multi-line textarea. LLM'in tüm projeler için kullanacağı temel kuralları içerir. Placeholder'lar:
|
| 224 |
- <intent names>: Runtime'da intent listesiyle değiştirilir
|
| 225 |
- <intent captions>: Intent caption'larıyla değiştirilir
|
|
|
|
| 227 |
- Save butonu
|
| 228 |
- Reload from Spark butonu: Spark'tan güncel config'i çeker (GPT mode'da disable)
|
| 229 |
|
| 230 |
+
**GPT-4o Mode Uyarısı**: Work mode GPT-4o veya GPT-4o-mini seçildiğinde bir info alert gösterilir:
|
| 231 |
```
|
| 232 |
ℹ️ GPT-4o mode uses OpenAI's API which has usage-based pricing.
|
| 233 |
Please ensure you have sufficient credits in your OpenAI account.
|
| 234 |
+
Approximate cost: $0.01-0.03 per conversation turn for GPT-4o.
|
| 235 |
+
Approximate cost: $0.001-0.003 per conversation turn for GPT-4o-mini.
|
| 236 |
```
|
| 237 |
|
| 238 |
+
**TTS/STT Configuration**: Work mode ne olursa olsun TTS ve STT motorları konfigüre edilebilir. TTS motorları bot yanıtlarını seslendirmek, STT motorları ise kullanıcıdan sesli girdi almak için kullanılır.
|
| 239 |
+
|
| 240 |
### 3. APIs Tab'ı
|
| 241 |
|
| 242 |
Tab açıldığında, üstte bir toolbar bulunur:
|
|
|
|
| 290 |
|
| 291 |
**İşleyiş:**
|
| 292 |
1. **Project Selection**: Enabled ve published version'u olan projeler listelenir
|
| 293 |
+
2. **TTS Option**: "Use TTS" checkbox'ı ile sesli yanıt özelliği aktifleştirilebilir (TTS konfigüre edilmişse)
|
| 294 |
+
3. **Start Chat**: Session başlatır, session_id alır
|
| 295 |
+
4. **Chat Interface**:
|
| 296 |
- Mesaj history'si
|
| 297 |
- Input alanı
|
| 298 |
- Send butonu
|
| 299 |
- Session bilgileri (ID, project)
|
| 300 |
+
- TTS enabled ise her bot mesajı için play butonu
|
| 301 |
+
- Ses oynatılırken waveform visualizasyon
|
| 302 |
+
5. **End Session**: Chat'i sonlandırır
|
| 303 |
|
| 304 |
**Özellikler:**
|
| 305 |
- Real-time mesajlaşma
|
|
|
|
| 307 |
- Auto-scroll
|
| 308 |
- Error handling
|
| 309 |
- Loading states
|
| 310 |
+
- TTS desteği (konfigüre edilmişse)
|
| 311 |
+
- Audio waveform visualization
|
| 312 |
+
- Otomatik ses oynatma (opsiyonel)
|
| 313 |
|
| 314 |
### 6. Spark Integration Tab'ı
|
| 315 |
|
|
|
|
| 372 |
- Backend Tests: API endpoint'leri, data integrity
|
| 373 |
- Integration Tests: UI-Backend entegrasyonu
|
| 374 |
- Spark Tests: LLM bağlantısı ve response kalitesi (GPT mode'da "GPT-4o Tests" olarak görünür)
|
| 375 |
+
- TTS Tests: TTS motor bağlantısı ve ses üretimi (TTS konfigüre edilmişse)
|
| 376 |
|
| 377 |
**Ekran Düzeni:**
|
| 378 |
```
|
|
|
|
| 390 |
│ □ Race Conditions │
|
| 391 |
│ □ Integration Tests (18 tests) │
|
| 392 |
│ □ LLM Tests (8 tests) │
|
| 393 |
+
│ □ TTS Tests (5 tests) │
|
| 394 |
├─────────────────────────────────────────────┤
|
| 395 |
│ Test Results: │
|
| 396 |
│ ✓ Login with valid credentials - 120ms │
|
|
|
|
| 468 |
- Description: Proje açıklaması
|
| 469 |
- Default Language: Varsayılan dil (tr, en, de, fr, es)
|
| 470 |
- Supported Languages: Desteklenen diller (çoklu seçim)
|
| 471 |
+
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|