flare / flare-ui-tasarim.md
ciyidogan's picture
Update flare-ui-tasarim.md
0fb448a verified
|
raw
history blame
25.2 kB

Flare Administration UI - Tasarım Dokümanı

📌 Amaç

Flare Administration UI (Flare Admin), kullanıcıların Flare platformunda proje tanımlayıp yönetebileceği bir web arayüzüdür. Angular ile geliştirilir, backend olarak Python ile geliştirilmiş olan Flare backend'i kullanır.

Flare Admin ekranlarında; proje tanımlama, mevcut projeyi düzenleme, projeye versiyon çıkarma, versiyonu publish etme, projeyi enable-disable etme, proje tanımını silme gibi işlemler yapılabilir.

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.

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.

Genel Kurallar

Flare Admin, login ekranıyla başlar. Kullanıcı login olduktan sonra tanım ekranları görüntülenir.

Tanım ekranları, tab window'lar şeklinde gruplandırılmıştır. Her tab'da birbiriyle alakalı işlemler yapılır.

Tüm hatalı işlemler, işlemin yapıldığı ekranın alt kısmında kırmızı font ile uyarı şeklinde görüntülenir ve uyarı 5 sn sonra kaybolur.

Boolean alanlar ekranda (hem input olarak, hem de tablo üzerinde) checkbox olarak görüntülenir.

Silme işlemleri öncesinde, silinecek nesnenin diğer nesneler altında kullanımda olup olmadığı kontrol edilir. Eğer kullanımdaysa, silinmesine izin verilmez ve hangi nesneler tarafından kullanıldığını içeren bir mesaj ve hata kodu ile döndürülür. Kullanımda olmayan nesneyi silme öncesinde açılacak bir dialog'da kullanıcıdan onay alınır. Onayın ardından silme işlemi yapılır.

Nesnenin deleted alanı varsa silme işlemi fiziksel olarak yapılmaz, deleted=true olarak değiştirilir.

Ortam çok kullanıcılı olduğundan kayıt düzenleme işlemlerinde race condition kontrolü yapılır. Bunun için service_config.jsonc içinde config, project, version ve api nesnelerine last_update_date alanı eklenir.

Kullanıcı, düzenlemek için nesneyi ekrana yüklediğinde nesne içindeki bu değeri de yükler. Save butonuna bastığında backend'e bu değeri de gönderir ve backend kayıt öncesi bu değerin service_config.jsonc'deki ilgili nesnedeki değerle aynı olup olmadığını kontrol eder, aynı ise kaydı yapar ve kaydederken bu değeri o andaki tarih-saat-dakika-saniye-milisaniye değeri ile günceller.

Eğer bir başka kullanıcı aynı kaydı düzenliyorsa ve ilk kullanıcıdan sonra save'e bastıysa dosyadaki bu değer değişmiş olacağından backend kayda izin vermez ve "Kayıt başka kullanıcı tarafından düzenlendi. Lütfen tekrar yükleyin." tarzı bir uyarı ile birlikte bir hata kodu döndürür.

Bir diğer durum da, kullanıcı tarafından düzenlenen kaydın, bu kullanıcı kaydetmeden önce başka bir kullanıcı tarafından silinmiş olması durumudur. Backend kayıt öncesi dosyada bu nesneyi bulamazsa "Kayıt başka kullanıcı tarafından silindi." gibi bir uyarı ve bir hata kodu döndürür, kayda izin vermez.

Auto-save ve Undo/Redo Mekanizması

  • Published olmayan version'lar üzerinde çalışırken her 30 saniyede bir otomatik draft kayıt yapılır
  • Son 10 işlem için undo/redo desteği (Ctrl+Z / Ctrl+Y)
  • Draft kayıtlar drafts/ klasöründe tutulur ve UI açıldığında "Recover unsaved changes?" dialog'u gösterilir

Klavye Kısayolları

  • Ctrl+S: Save
  • Ctrl+N: New (context'e göre project/version/intent)
  • Ctrl+F: Search/Filter
  • Ctrl+D: Duplicate
  • Esc: Cancel/Close dialog

Flare Backend Düzenlemeleri

Flare backend'de Flare Admin UI işleyişi için bazı eklemeler yapılması gerekiyor.

Eklenecek endpoint'ler:

Temel CRUD Endpoint'leri

  • POST /api/login - Kullanıcı girişi ve token üretimi
  • GET /api/environment - Environment bilgileri alma
  • PUT /api/environment - Environment bilgilerini kaydetme
  • GET /api/projects - Proje listeleme (pagination, filter, sort destekli)
  • POST /api/projects - Yeni proje oluşturma: Yeni proje oluşturulduğunda backend, version_id_counter alanını 1'e ayarlar ve otomatik Version 1 kaydını ekler. Frontend ekstra çağrı yapmaz.
  • PUT /api/projects/{id} - Mevcut projeyi düzenleme
  • DELETE /api/projects/{id} - Mevcut projeyi silme
  • PATCH /api/projects/{id}/toggle - Proje enable/disable
  • POST /api/projects/{id}/versions - Proje versiyonu oluşturma
  • DELETE /api/projects/{id}/versions/{version_id} - Versiyon silme
  • PUT /api/projects/{id}/versions/{version_id} - Versiyon düzenleme
  • POST /api/projects/{id}/versions/{version_id}/publish - Versiyon yayınlama
  • GET /api/apis - API listeleme
  • POST /api/apis - Yeni API ekleme
  • PUT /api/apis/{name} - Mevcut API'yi düzenleme
  • DELETE /api/apis/{name} - Mevcut API'yi silme

Spark Integration Endpoint'leri

  • POST /api/spark/startup - Projeyi Spark'a yükle
  • GET /api/spark/projects - Spark proje listesi
  • POST /api/spark/project/enable - Projeyi aktifleştir
  • POST /api/spark/project/disable - Projeyi devre dışı bırak
  • DELETE /api/spark/project/{name} - Projeyi Spark'tan sil

Chat Endpoint'leri

  • GET /api/projects/names - Chat için enabled proje listesi
  • POST /api/start_session - Chat session başlat
  • POST /api/chat - Mesaj gönder/al (Header: X-Session-ID)

TTS/STT Endpoint'leri

  • POST /api/tts/generate - Text'ten ses üret
  • GET /api/tts/voices - Desteklenen ses listesi
  • POST /api/stt/transcribe - Sesten text'e dönüştür (gelecek özellik)

Ek Yardımcı Endpoint'ler

  • POST /api/validate/regex - Regex pattern validasyonu
  • POST /api/apis/test - API endpoint test etme
  • GET /api/projects/{id}/versions/diff - Version karşılaştırma
  • POST /api/projects/{id}/intents/bulk-delete - Toplu intent silme
  • GET /api/activity-log - Aktivite logları
  • POST /api/projects/import - Proje import
  • GET /api/projects/{id}/export - Proje export
  • POST /api/test/run-all - Tüm testleri çalıştır
  • GET /api/test/status - Test durumu sorgula

Service_config.jsonc düzenlemeleri:

{
  "config": {
    // Mevcut alanlar...
    "work_mode": "hfcloud", // "hfcloud" | "cloud" | "on-premise" | "gpt4o" | "gpt4o-mini" - Yeni: gpt4o desteği
    "cloud_token": "", // work_mode'a göre Spark token veya OpenAI API key (şifrelenmiş)
    "internal_prompt": "⚠️ **NEVER output \"#DETECTED_INTENT:\"...", // Yeni
    "project_id_counter": 1, // Yeni
    "last_update_date": "2025-06-08T12:00:00.000Z", // Yeni
    "last_update_user": "admin", // Yeni
    
    // TTS/STT Configuration - Yeni
    "tts_engine": "no_tts", // "no_tts" | "elevenlabs" | "blaze"
    "tts_engine_api_key": "enc:...", // Şifrelenmiş TTS API key
    "stt_engine": "no_stt", // "no_stt" | "elevenlabs" | "flicker"
    "stt_engine_api_key": "enc:..." // Şifrelenmiş STT API key
  },
  
  "projects": [{
    // Mevcut alanlar...
    "icon": "folder", // Yeni
    "description": "", // Yeni
    "default_language": "tr", // Yeni
    "supported_languages": ["tr"], // Yeni
    "timezone": "Europe/Istanbul", // Yeni
    "region": "tr-TR", // Yeni
    "version_id_counter": 1, // Yeni
    "last_update_date": "2025-06-08T12:00:00.000Z", // Yeni
    "last_update_user": "admin", // Yeni
    "deleted": false, // Yeni
    "created_date": "2025-06-08T12:00:00.000Z", // Yeni
    "created_by": "admin", // Yeni
    
    "versions": [{
      // Mevcut alanlar...
      "llm": {
        // Spark mode için:
        "repo_id": "model-repo/id",
        "generation_config": {},
        "use_fine_tune": false,
        "fine_tune_zip": "",
        
        // GPT-4o mode için (work_mode = "gpt4o" veya "gpt4o-mini" olduğunda kullanılır):
        "gpt_model": "gpt-4o", // "gpt-4o" | "gpt-4o-mini"
        "gpt_temperature": 0.3, // 0-2 arası
        "gpt_max_tokens": 512 // Maximum response token sayısı
      },
      "last_update_date": "2025-06-08T12:00:00.000Z", // Yeni
      "last_update_user": "admin", // Yeni
      "deleted": false, // Yeni
      "created_date": "2025-06-08T12:00:00.000Z", // Yeni
      "created_by": "admin", // Yeni
      "publish_date": null, // Yeni
      "published_by": null // Yeni
    }]
  }],
  
  "apis": [{
    // Mevcut alanlar...
    "response_mappings": [ // Yeni
      {
        "variable_name": "booking_id",
        "type": "str",
        "json_path": "confirmation.id"
      }
    ],
    "last_update_date": "2025-06-08T12:00:00.000Z", // Yeni
    "last_update_user": "admin", // Yeni
    "deleted": false, // Yeni
    "created_date": "2025-06-08T12:00:00.000Z", // Yeni
    "created_by": "admin" // Yeni
  }],
  
  // Yeni: Activity log
  "activity_log": [{
    "id": 1,
    "timestamp": "2025-06-08T12:00:00.000Z",
    "user": "admin",
    "action": "CREATE_PROJECT",
    "entity_type": "project",
    "entity_id": 1,
    "entity_name": "airline_agent",
    "details": "Created new project"
  }]
}

Tab Ekranları

1. User Info Tab'ı

Bu tab penceresinde login olan kullanıcı mevcut şifresini değiştirebilir. Ekrandaki alanlar:

  • Current Password (maskeli)
  • New Password (maskeli)
  • New Password (tekrar, maskeli)
  • Password Strength Indicator: Şifre girilirken güvenlik seviyesini gösterir (Weak/Medium/Strong)
  • Save butonu

Şifre değiştirebilmek için kullanıcı, maskeli alanlardan mevcut şifresini, yeni şifresini ve ikinci bir alanda teyit amaçlı olarak tekrar yeni şifresini girer ve kaydet butonuna basar. Şifre en az 8 karakter, büyük/küçük harf ve rakam içermelidir.

2. Environment Tab'ı

Bu tab'da aşağıdaki alanlar bulunur:

  • Work Mode: Seçenekleri hfcloud, cloud, on-premise, gpt4o ve gpt4o-mini olan bir combo. Zorunlu.
  • Cloud Token / OpenAI API Key (maskeli):
    • Work Mode on-premise seçildiğinde disable olur.
    • Work Mode gpt4o veya gpt4o-mini seçildiğinde label "OpenAI API Key" olarak değişir
    • Diğer modlarda "Cloud Token" olarak görünür
  • Spark Endpoint: URL formatında. GPT-4o mode hariç zorunlu. Yanında "Test Connection" butonu. GPT-4o seçildiğinde disable olur.
  • TTS Engine: Seçenekleri no_tts, elevenlabs, blaze olan combo.
  • TTS API Key (maskeli): TTS Engine no_tts dışında bir değer seçildiğinde zorunlu olur.
  • STT Engine: Seçenekleri no_stt, elevenlabs, flicker olan combo.
  • STT API Key (maskeli): STT Engine no_stt dışında bir değer seçildiğinde zorunlu olur.
  • Internal System Prompt: Expansion panel içinde multi-line textarea. LLM'in tüm projeler için kullanacağı temel kuralları içerir. Placeholder'lar:
    • : Runtime'da intent listesiyle değiştirilir
    • : Intent caption'larıyla değiştirilir
    • : Proje diline göre değiştirilir
  • Save butonu
  • Reload from Spark butonu: Spark'tan güncel config'i çeker (GPT mode'da disable)

GPT-4o Mode Uyarısı: Work mode GPT-4o veya GPT-4o-mini seçildiğinde bir info alert gösterilir:

ℹ️ GPT-4o mode uses OpenAI's API which has usage-based pricing. 
   Please ensure you have sufficient credits in your OpenAI account.
   Approximate cost: $0.01-0.03 per conversation turn for GPT-4o.
   Approximate cost: $0.001-0.003 per conversation turn for GPT-4o-mini.

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.

3. APIs Tab'ı

Tab açıldığında, üstte bir toolbar bulunur:

Toolbar:

  • New API butonu
  • Import butonu: JSON dosyasından API tanımları yükler
  • Export butonu: Seçili API'leri JSON olarak export eder
  • Search alanı: API adı veya URL'de arama
  • Display Deleted checkbox

API Listesi Tablosu:

Name URL Method Timeout Auth Deleted Actions
book_flight_api https://api.example.com/book POST 10s 🖊️ 🧪 📋 🗑️

Action İkonları:

  • 🖊️ Edit: Edit API dialog'unu açar
  • 🧪 Test: API'yi test eder
  • 📋 Duplicate: API'nin kopyasını oluşturur
  • 🗑️ Delete: API'yi siler (kullanımda değilse)

4. Projects Tab'ı

Tab ekranına girildiğinde üstte toolbar bulunur:

Toolbar:

  • New Project butonu
  • Import Project butonu
  • Search alanı
  • Display Deleted checkbox
  • View: List/Card view toggle

Proje Listesi: Kart görünümünde her proje için:

┌─────────────────────────────────────┐
│ 🛩️ airline_agent                │
│ Havayolu Müşteri Temsilcisi     │
│ Language: Turkish (tr)          │
│ Versions: 3 (1 published)       │
│ Status: ✓ Enabled               │
│ Last update: 2 hours ago        │
│ [Edit] [Versions] [Export] [⚙️] │
└────────────────────────────────────┘

5. Chat Tab'ı

Flare chat sistemini test etmek için kullanılır.

İşleyiş:

  1. Project Selection: Enabled ve published version'u olan projeler listelenir
  2. TTS Option: "Use TTS" checkbox'ı ile sesli yanıt özelliği aktifleştirilebilir (TTS konfigüre edilmişse)
  3. Start Chat: Session başlatır, session_id alır
  4. Chat Interface:
    • Mesaj history'si
    • Input alanı
    • Send butonu
    • Session bilgileri (ID, project)
    • TTS enabled ise her bot mesajı için play butonu
    • Ses oynatılırken waveform visualizasyon
  5. End Session: Chat'i sonlandırır

Özellikler:

  • Real-time mesajlaşma
  • Session takibi
  • Auto-scroll
  • Error handling
  • Loading states
  • TTS desteği (konfigüre edilmişse)
  • Audio waveform visualization
  • Otomatik ses oynatma (opsiyonel)

6. Spark Integration Tab'ı

Bu tab'da Spark servisi ile doğrudan etkileşim sağlanır. GPT-4o mode'da bu tab disable olur ve bir bilgi mesajı gösterilir.

GPT-4o Mode'da Görünüm:

┌─────────────────────────────────────────────┐
│ ℹ️ Spark Integration Unavailable        │
│                                         │
│ Spark integration is not available when │
│ using GPT-4o as the LLM provider.       │
│                                         │
│ GPT-4o handles all language model       │
│ operations directly through OpenAI API. │
└─────────────────────────────────────────────┘

Normal Mode'da (Spark):

Üst Bölüm:

  • Project Selection: Dropdown ile proje seçimi
  • Proje seçildiğinde butonlar aktif olur

Butonlar ve İşlevleri:

Project Startup

  • Seçili projeyi Spark'a yükler
  • Backend üzerinden /spark/startup endpoint'ine istek atar
  • Response'u detaylı olarak gösterir

Get Project Status

  • Spark'taki tüm projelerin durumunu listeler
  • Tablo formatında: project_name, version, status, enabled, last_accessed
  • Status badge'leri: ready (yeşil), loading (turuncu), error (kırmızı), unloaded (gri)

Enable Project

  • Seçili projeyi Spark'ta aktif hale getirir

Disable Project

  • Seçili projeyi Spark'ta devre dışı bırakır

Delete Project

  • Seçili projeyi Spark'tan tamamen siler
  • Onay dialog'u gösterir

Response Panel:

  • Her işlemden sonra açılan expansion panel
  • Request ve response JSON'larını gösterir
  • Timestamp bilgisi
  • Success/error durumu
  • Son 10 işlem history'si

7. Test Tab'ı

Bu tab'da sistemin end-to-end testi yapılabilir:

Test Kategorileri:

  • UI Tests: Component render, navigation, form validation
  • Backend Tests: API endpoint'leri, data integrity
  • Integration Tests: UI-Backend entegrasyonu
  • Spark Tests: LLM bağlantısı ve response kalitesi (GPT mode'da "GPT-4o Tests" olarak görünür)
  • TTS Tests: TTS motor bağlantısı ve ses üretimi (TTS konfigüre edilmişse)

Ekran Düzeni:

┌─────────────────────────────────────────────┐
│ [Run All Tests] [Run Selected] [Stop]   │
├─────────────────────────────────────────────┤
│ □ All Tests                             │
│   □ UI Tests (15 tests)                 │
│     □ Login Flow                        │
│     □ Project CRUD                      │
│     □ Version Management                │
│   □ Backend Tests (22 tests)            │
│     □ Authentication                    │
│     □ API Endpoints                     │
│     □ Race Conditions                   │
│   □ Integration Tests (18 tests)        │
│   □ LLM Tests (8 tests)                 │
│   □ TTS Tests (5 tests)                 │
├─────────────────────────────────────────────┤
│ Test Results:                           │
│ ✓ Login with valid credentials - 120ms  │
│ ✓ Create new project - 340ms            │
│ ✗ Delete API in use - Expected behavior │
│ ⏳ Testing LLM connection...            │
│                                         │
│ Progress: ████████░░ 80% (48/60)         │
│ Passed: 45 | Failed: 3 | Running: 5     │
└─────────────────────────────────────────────┤

Test Detayları: Her test için:

  • Test adı ve açıklaması
  • Çalışma süresi
  • Hata durumunda detaylı log
  • "Re-run" butonu

8. Activity Log (Sağ üst notification icon'a tıklandığında açılır)

┌─────────────────────────────────────┐
│ 🔔 Recent Activities             │
├─────────────────────────────────────┤
│ 2 min ago                        │
│ 👤 admin published version 2     │
│ of airline_agent                 │
├─────────────────────────────────────┤
│ 15 min ago                       │
│ 👤 user1 updated flight_info_api │
├─────────────────────────────────────┤
│ 1 hour ago                       │
│ 👤 admin created new project     │
│ hotel_booking                    │
├─────────────────────────────────────┤
│ [View All Activities]            │
└─────────────────────────────────────┘

Dialog Ekranları

Edit API Dialog (Güncelleme)

General Tab'a eklenenler:

Response Mappings Bölümü:

  • Variable Name: snake_case zorunlu
  • Type: str, int, float, bool, date seçenekleri
  • JSON Path: Dot notation ile path (örn: data.result.value)
  • Add/Remove mapping butonları
  • Validation: Variable name uniqueness

Template Variables (Geliştirilmiş):

  • Tüm intent parametrelerinden otomatik liste
  • Response mapping değişkenleri
  • Auth token değişkenleri
  • Config değişkenleri (work_mode, vb.)
  • Tıklanabilir chip'ler ile kolay ekleme

JSON Validation (Geliştirilmiş):

  • Numeric değişkenler için akıllı validation
  • Template variable type checking
  • Syntax highlighting

Test Tab (Geliştirilmiş):

  • Editable test request JSON
  • Placeholder değerlerle doldurma
  • Reset to template butonu
  • Response preview

Edit Project Dialog (Güncelleme)

Yeni alanlar eklendi:

  • Icon: Material icon seçimi (folder, work, shopping_cart, vb.)
  • Description: Proje açıklaması
  • Default Language: Varsayılan dil (tr, en, de, fr, es)
  • Supported Languages: Desteklenen diller (çoklu seçim)
  • Timezone: Saat dilimi (Europe/Istanbul, vb.)
  • Region: Bölge kodu (tr-TR, vb.)

Edit Version Dialog

LLM Configuration Tab'a GPT-4o Desteği:

Work mode'a göre conditional rendering:

GPT-4o Mode'da:

┌─────────────────────────────────────┐
│ GPT-4o Configuration             │
├─────────────────────────────────────┤
│ Model:                           │
│ [▼ GPT-4o             ]          │
│                                  │
│ Temperature: (0 = Deterministic) │
│ [====|==============] 0.3        │
│                                  │
│ Max Tokens:                      │
│ [512                 ]           │
│                                  │
│ ℹ️ Cost estimate: ~$0.02/request │
└─────────────────────────────────────┘

Spark Mode'da (mevcut):

  • Model Repository
  • Generation Config (detaylı parametreler)
  • Fine-tune options

Edit Intent Dialog

[Mevcut içerik korunacak, değişiklik yok]

Edit Parameter Dialog

Date type desteği eklendi:

  • Type combo'suna "date" seçeneği
  • Date formatı: YYYY-MM-DD (ISO format)
  • Türkçe tarih ifadeleri için özel extraction prompt'lar

Version Comparison Dialog

[Mevcut içerik korunacak, değişiklik yok]

Flare Admin Test Planı

[Mevcut test planına ek olarak:]

GPT-4o Integration Test Senaryoları:

1. Environment Configuration:

  • Work mode'u GPT-4o'ya değiştir
  • OpenAI API key gir
  • Save et
  • Spark endpoint'in disable olduğunu kontrol et

2. Version Management:

  • GPT-4o mode'da yeni version oluştur
  • LLM tab'ında sadece GPT config'lerinin göründüğünü doğrula
  • Model, temperature, max_tokens ayarla
  • Publish et

3. Spark Tab Behavior:

  • GPT-4o mode'da Spark tab'ın disable olduğunu kontrol et
  • Bilgi mesajının göründüğünü doğrula

4. Chat Testing:

  • GPT-4o kullanan proje ile chat başlat
  • Intent detection test et
  • Parameter extraction test et
  • Response kalitesini değerlendir

5. Cost Tracking:

  • Chat sonrası tahmini maliyet gösterimini kontrol et
  • Token kullanım bilgilerini doğrula

TTS/STT Test Senaryoları:

1. TTS Configuration:

  • TTS Engine'i ElevenLabs'e ayarla
  • API key gir ve save et
  • Chat'te TTS özelliğini aktifle

2. Audio Generation:

  • Bot yanıtlarının seslendirildiğini kontrol et
  • Play butonu işlevselliği
  • Waveform visualization
  • Ses kalitesi kontrolü

3. Multi-Engine Support:

  • Farklı TTS motorları arasında geçiş
  • API key güvenliği
  • Hata durumlarının ele alınması

Multi-Provider Switching:

1. Mode Değişimi:

  • Spark → GPT-4o → Spark geçişleri yap
  • Her geçişte config'lerin korunduğunu kontrol et
  • Token/key bilgilerinin şifreli kaldığını doğrula

2. Project Compatibility:

  • Aynı projeyi farklı modlarda test et
  • Intent ve parameter mantığının tutarlı çalıştığını doğrula

Güvenlik ve Performans

Token Yönetimi:

  • SPARK_TOKEN environment variable'dan alınır
  • OPENAI_API_KEY cloud_token alanında şifrelenmiş saklanır
  • TTS/STT API key'ler şifrelenmiş saklanır
  • Tüm LLM/TTS/STT isteklerinde uygun Authorization header
  • Token rotation desteği

GPT-4o Özel Güvenlik:

  • API key asla plain text olarak loglanmaz
  • Rate limit handling
  • Cost monitoring ve alerting
  • Quota management

TTS Güvenlik:

  • API key şifreleme
  • Rate limiting
  • Concurrent request kontrolü
  • Audio dosya boyutu limitleri

Race Condition Handling:

  • last_update_date kontrolü tüm CRUD işlemlerinde
  • Concurrent edit detection
  • Optimistic locking pattern

Session Management:

  • 30 dakika inactivity timeout
  • Session cleanup thread
  • Memory-efficient storage
  • GPT-4o için token count tracking
  • TTS için audio cache yönetimi

Teknoloji Stack

  • Frontend: Angular 17+ (standalone components)
  • UI Framework: Angular Material
  • State Management: RxJS
  • Backend: Python FastAPI
  • Authentication: JWT
  • Database: service_config.jsonc (document database pattern)
  • LLM Integration:
    • Spark servisi (HuggingFace)
    • OpenAI API (GPT-4o, GPT-4o-mini)
  • TTS Integration:
    • ElevenLabs API
    • Blaze (planned)
  • STT Integration:
    • ElevenLabs (planned)
    • Flicker (planned)
  • Encryption: Fernet (cloud_token/API key şifreleme)
  • Audio Processing: Web Audio API (waveform visualization)

Bu güncellemelerle Flare Administration UI, hem Spark hem de GPT-4o desteği, TTS/STT entegrasyonu ile çok daha esnek ve güçlü bir orchestration platform yönetim arayüzü haline gelmiştir.