Kaptan AI
Kaptan AI, Horizon board'unun canlı görünümünü ve içerdiği widget verilerini Langflow API'ye göndererek doğal dil sohbete olanak tanıyan bir asistan modülüdür. Operatör soruları (örn. "vardiya 2'de duruşların nedeni nedir?", "son 24 saatte hangi parametre eşik aştı?") doğrudan board içinden sorulabilir.
Ön Koşul
Kaptan AI sohbeti açabilmek için bir Horizon board oluşturulmuş ve içine en az bir widget eklenmiş olmalıdır.
Backend Bağımlılığı
Kaptan AI çalışması için pirivision-langflow-api servisinin (port 7870) ayakta olması gerekir. Servis erişilemiyorsa sohbet başlamaz veya yanıt boş döner.
1. Kaptan Butonu
Horizon board'unun sağ alt köşesinde captain ikonlu yüzen yuvarlak buton görünür. Tıkladığınızda Kaptan AI sohbet diyaloğu açılır.
2. Sohbet Diyaloğu
Diyalog şu bölümlerden oluşur:
| Bölüm | Açıklama |
|---|---|
| Mesaj geçmişi | Önceki sohbet mesajları (oturum bazlı persist) |
| Input alanı | Sorgunuzu yazdığınız metin kutusu |
| Send | Mesajı gönderir; board snapshot ve XLSX otomatik eklenir |
| Yeni Oturum | Mesaj geçmişini sıfırlar |
3. Mesaj Gönderildiğinde Ne Olur?
Send butonuna bastığınızda Kaptan AI şu paketi Langflow API'ye gönderir:
| Paket Bileşeni | Açıklama |
|---|---|
| Soru metni | Yazdığınız mesaj |
| Board PNG snapshot | RepaintBoundary + toImage() ile alınmış board görüntüsü, base64 encoded |
| Board XLSX | Tüm widget'ların KpiExportable arayüzü üzerinden ürettiği veri, syncfusion_flutter_xlsio ile XLSX'e dönüştürülmüş, base64 encoded |
| Session ID | Kaptan oturumu kalıcılığı için |
flowchart LR
A[Kullanıcı sorusu] --> B[Board snapshot al]
A --> C[Widget'lardan XLSX üret]
B --> D[Langflow API]
C --> D
A --> D
D --> E[Yanıt]
E --> F[Sohbet diyaloğunda göster]
4. XLSX Export Detayı
Kaptan AI mesaj göndermeden önce her widget'tan veri toplar. Widget'ın KpiExportable arayüzünü implement etmesi gerekir; çoğu Cartography chart tipi bunu sağlar.
| Widget Tipi | XLSX'e Eklenir mi? |
|---|---|
| Cartesian (Line, Area, Column, Bar, vb.) | ✓ |
| Circular (Pie, Doughnut, Radial Bar) | ✓ |
| DataGrid (Table) | ✓ (tüm satırlar) |
| Two-Column List | ✓ |
| Gauge | ✓ (tek değer) |
| Dynamic Text | ✓ (tek değer) |
| Static Text | ✗ (veri yok) |
XLSX dosya adı: Board_<BoardName>_<yyyyMMdd_HHmmss>.xlsx
5. Oturum Kalıcılığı
Her board için ayrı KaptanSessionItem tutulur. Diyaloğu kapatıp yeniden açtığınızda son sohbet geçmişi yüklenir. Tarayıcı session'ı temizlenirse geçmiş kaybolur.
6. Doğru Soru Yazma İpuçları
| Soru Tipi | Örnek |
|---|---|
| Trend açıklama | "Üretim adedi son 4 saatte neden düştü?" |
| Anomali tespit | "Hangi parametrede son 24 saatte tepe değer var?" |
| Karşılaştırma | "Hat 1 ve Hat 3 OEE değerlerini karşılaştır" |
| Özet rapor | "Bu vardiya için kısa bir özet hazırla" |
Bağlam Veren Sorular
Kaptan board snapshot'ını gördüğü için "bu chart", "üstteki gauge" gibi referanslar verebilirsiniz. Hangi widget'tan bahsettiğinizi yorumlayabilir.
7. Sınırlamalar
- Sohbet tek board bazlıdır; başka board verilerine erişmez.
- Yanıt kalitesi Langflow flow yapılandırmasına bağlıdır.
- Yanıt süresi büyük board'larda (10+ widget) artabilir; XLSX hazırlanması zaman alır.
- Servis yanıt vermezse hata sessizce işlenir; mesaj sürekli "yükleniyor" görünebilir.
Hassas Veri
Kaptan AI, board verilerini Langflow servisine gönderir. Hassas veri içeren board'larda hangi parametrelerin dışarı gönderildiğine dikkat edin.
