Factorizer/Cluster ERP WikiCluster ERP English
Ana sayfa / Masaüstü istemci

Referans

Sohbet bileşeni

widgets/chat içindeki masaüstü sohbet panelinin başvurusu; yerel niyet tanıma, liste ve sayı yanıtları, gezinme ve adım adım kayıt oluşturma.

Masaüstü ana penceresinin sağ tarafında bir sohbet paneli vardır. Bu başvuru src/cluster_erp/desktop/widgets/chat/ içindeki ChatWidget, TaskCard ve görev modelini açıklar: yazılan bir iletinin nasıl bir yanıta, bir gezinmeye ya da yönlendirmeli bir kayıt oluşturmaya dönüştüğünü. Panelin kullandığı niyet motoru niyet asistanı sayfasında belgelenir. Web istemcisinin sohbet ekranları asistan ve sohbet ekranları sayfasındadır.

Kapsam ve kaynak

  • Tanım yeri: ChatWidget (src/cluster_erp/desktop/widgets/chat/chat_widget.py:795), TaskCard (src/cluster_erp/desktop/widgets/chat/task_card.py:33), ChatTask, TaskField ve build_task_fields (src/cluster_erp/desktop/widgets/chat/chat_task.py:12-316).
  • Sayı: kod içeren üç Python dosyası (2.827, 1.040 ve 316 satır) ve assets/ içinde iki arka plan görseli; klasör listelenerek sayıldı.

Yerleşim ve sinyaller

MainWindow paneli ayırıcısının üçüncü sütunu olarak yerleştirir. Kenar çubuğunun sohbet düğmesi (anahtar sidebar.chat) ve panelin kendi kapatma düğmesi genişliğini sıfır ile son genişlik, varsayılan olarak 380 piksel, arasında değiştirir (src/cluster_erp/desktop/widgets/main_window.py:103-122, src/cluster_erp/desktop/widgets/main_window.py:217-229).

Sinyal Bağımsız değişkenler Alan Kaynak
close_requested yok MainWindow._toggle_chat src/cluster_erp/desktop/widgets/chat/chat_widget.py:796, src/cluster_erp/desktop/widgets/main_window.py:111
navigation_requested modül, bölüm MainWindow._on_navigate src/cluster_erp/desktop/widgets/chat/chat_widget.py:797, src/cluster_erp/desktop/widgets/main_window.py:112

Niyet motoru

Panel cluster_erp.ai.intent_engine içinden bir IntentEngine oluşturur ve onu oluşturmadan 100 ms sonra yükler (src/cluster_erp/desktop/widgets/chat/chat_widget.py:47, src/cluster_erp/desktop/widgets/chat/chat_widget.py:818-819). IntentEngine.load, en ve tr niyet derlemlerini dosyalardan okur ve her dil için bir vektörleştirici eğitir (src/cluster_erp/ai/intent_engine.py:364-394). Bu yüzden tanıma masaüstü sürecinin içinde çalışır. Panel sunucunun sohbet rotalarını çağırmaz; klasörde /chat yolları arandığında eşleşme çıkmaz.

İleti akışı

_on_send kullanıcının iletisini ve seçilen dosyaları konuşmaya ekler, ardından şu sırayla karar verir (src/cluster_erp/desktop/widgets/chat/chat_widget.py:1379-1493):

  1. Bir görev kartı etkinken bir iptal sözcüğü onu iptal eder; başka her metin kullanıcıdan kartı kullanmasını ister (src/cluster_erp/desktop/widgets/chat/chat_widget.py:1393-1418).
  2. Gündelik konuşma on kategorideki sabit ifade listelerinden yanıtlanır: yardım, ad, şirket, kimlik, izinler, saat, ruh hali, teşekkür, vedalaşma ve selamlaşma (src/cluster_erp/desktop/widgets/chat/chat_widget.py:1115-1135, src/cluster_erp/desktop/widgets/chat/chat_widget.py:1472-1476).
  3. Birden çok istek içeren bir ileti bölünür ve parçalar art arda işlenir (src/cluster_erp/desktop/widgets/chat/chat_widget.py:1238-1300, src/cluster_erp/desktop/widgets/chat/chat_widget.py:1479-1493).
  4. _process_intent bir yazıyor göstergesi gösterir ve tanımayı başlatır (src/cluster_erp/desktop/widgets/chat/chat_widget.py:1495-1499).

_do_recognize_inner motordan en iyi beş eşleşmeyi ister (src/cluster_erp/desktop/widgets/chat/chat_widget.py:1534-1535). Eşleşme yoksa chat.no_intent_found metniyle yanıt verir. En iyi güven 0,60'ın altındaysa en iyi üç adayı listeler ve kullanıcıdan yeniden ifade etmesini ister (src/cluster_erp/desktop/widgets/chat/chat_widget.py:1552-1576). Aksi halde en iyi eşleşmeyi yönlendirir:

Eşleşme Yanıt Kaynak
count aksiyon ipucu limit 1 ile liste yoluna GET, ardından total src/cluster_erp/desktop/widgets/chat/chat_widget.py:1590-1592, src/cluster_erp/desktop/widgets/chat/chat_widget.py:1637-1683
GET liste yolu ve metinde bir gezinme sözcüğü varlığın bölümüne gezinme src/cluster_erp/desktop/widgets/chat/chat_widget.py:1594-1598, src/cluster_erp/desktop/widgets/chat/chat_widget.py:2222-2244
GET liste yolu limit 10, çıkarılan süzgeçler ve arama terimiyle GET, ardından satırlar src/cluster_erp/desktop/widgets/chat/chat_widget.py:1600-1602, src/cluster_erp/desktop/widgets/chat/chat_widget.py:1739-1760
niyet kimliğinde create olan POST varlık için bir görev kartı src/cluster_erp/desktop/widgets/chat/chat_widget.py:1604-1606, src/cluster_erp/desktop/widgets/chat/chat_widget.py:2363-2418
DELETE, PUT, PATCH ya da niyet kimliğinde delete veya update bir kayıt gerektiğini söyleyen ileti ve bölümü açma önerisi src/cluster_erp/desktop/widgets/chat/chat_widget.py:1608-1633
diğer her şey aksiyon ipucundan bir yanıt src/cluster_erp/desktop/widgets/chat/chat_widget.py:1635, src/cluster_erp/desktop/widgets/chat/chat_widget.py:2246-2266

Zaman ifadesi içeren bir soru, aynı varlığın liste eşleşmesini tek kayıt eşleşmesine tercih eder (src/cluster_erp/desktop/widgets/chat/chat_widget.py:1583-1588). Varlıktan kenar çubuğu bölümüne eşlem metadata'dan kurulur (src/cluster_erp/desktop/widgets/chat/chat_widget.py:2189-2220).

Görev kartları

build_task_fields, varlığın form metadata'sını bir adım listesine dönüştürür. Salt okunur alanları, gizli kapsam alanlarını ve otomatik üretilen alanları atlar; seçenekleri, yabancı anahtar kaynaklarını, varsayılanları, sınırları, koşulları ve iç içe anahtarları tutar (src/cluster_erp/desktop/widgets/chat/chat_task.py:190-316, src/cluster_erp/desktop/widgets/chat/chat_task.py:12-30).

ChatTask adımları yürütür:

Üye Davranış Kaynak
validate_value Zorunluluğu, en büyük uzunluğu ve en küçük ve en büyük değeri çevrilmiş iletilerle denetler src/cluster_erp/desktop/widgets/chat/chat_task.py:72-89
can_skip, skip_current Yalnızca zorunlu olmayan alanlar atlanabilir src/cluster_erp/desktop/widgets/chat/chat_task.py:99-108
advance, go_back, go_to, enter_summary Adımlar ve özet arasında hareket eder src/cluster_erp/desktop/widgets/chat/chat_task.py:110-134
collect_data İstek gövdesini kurar, koşulu sağlanmayan alanları atar, atlanan alanlar için varsayılanları kullanır ve alanları nested_key değerine göre iç içe koyar src/cluster_erp/desktop/widgets/chat/chat_task.py:139-164

TaskCard her seferinde tek bir adım gösterir. Bir yabancı anahtar adımı kaynak listesinde limit 5 ile arama yapar (src/cluster_erp/desktop/widgets/chat/task_card.py:465-480). Gönderimde gövdeyi bir EntityDescriptor ile niyetin yoluna gönderir; böylece olağan değişiklik sinyali izler (src/cluster_erp/desktop/widgets/chat/task_card.py:735-765). Başarıdan sonra panel varlığın bölümünü açar (src/cluster_erp/desktop/widgets/chat/chat_widget.py:2435-2451).

Dosyalar ve ses

Dosyalar seçilebilir ya da panele bırakılabilir ve kullanıcının iletisinde görünür (src/cluster_erp/desktop/widgets/chat/chat_widget.py:2461-2516, src/cluster_erp/desktop/widgets/chat/chat_widget.py:2600-2616). Klasördeki tek post( çağrısı görev kartı gönderimidir (src/cluster_erp/desktop/widgets/chat/task_card.py:758) ve hiçbir /attachments yolu geçmez; bu yüzden seçilen dosyalar yüklenmez. Kayıt düğmesi bir zamanlayıcı çalıştırır ve durdurulduğunda içeriği boş bir ses iletisi ekler. Klasör hiçbir ses modülünü içe aktarmaz (src/cluster_erp/desktop/widgets/chat/chat_widget.py:2519-2551).

Kısıtlar ve doğrulama

  • Liste ve sayı sorguları ve görev kartı gönderimi ApiClient nesnesini çalışan olmadan doğrudan GUI iş parçacığında çağırır (src/cluster_erp/desktop/widgets/chat/chat_widget.py:1651, src/cluster_erp/desktop/widgets/chat/chat_widget.py:1758, src/cluster_erp/desktop/widgets/chat/task_card.py:757-764).
  • Sunucu, panelin yaptığı her çağrıya kullanıcının izinlerini uygular; panel kullanıcının izin listesini yalnızca bir gündelik konuşma sorusuna yanıt olarak gösterir (src/cluster_erp/desktop/widgets/chat/chat_widget.py:1206-1207).
  • Arka plan görseli temaya göre assets/chat_bg_dark.png ya da assets/chat_bg_light.png içinden seçilir (src/cluster_erp/desktop/widgets/chat/chat_widget.py:2653-2654).

Tutarsızlıklar

Tanıtılan terimler

Terim Kod tanımlayıcısı Tanım Türkçe terim Kaynak
chat panel ChatWidget Yazılan istekleri yerel niyet motoruyla yanıtlayan sağ taraftaki masaüstü paneli. sohbet paneli src/cluster_erp/desktop/widgets/chat/chat_widget.py:795
task card TaskCard Bir oluşturma niyeti için metadata'dan kurulan ve bir kayıt oluşturan, konuşmadaki adım adım form. görev kartı src/cluster_erp/desktop/widgets/chat/task_card.py:33
chat task ChatTask Bir yönlendirmeli kayıt oluşturmanın durumu: adımlar, değerler ve durum. sohbet görevi src/cluster_erp/desktop/widgets/chat/chat_task.py:33

İlgili sayfalar


92f8051 numaralı commit ile 2026-11-13 tarihinde doğrulandı.

Doğrulanan commit 92f8051 · 2026-11-13