Web uygulamasında niyet asistanı için bir sohbet ekranı ve aynı sohbeti paylaşan bir ana ekran bileşeni vardır. İstemci yalnız çizer: her ileti POST /api/v1/chat/message ucuna gider ve yanıta sunucu karar verir. Bu sayfa istemcinin ne gönderdiğini, her yanıt parçasını nasıl çizdiğini ve görev kartlarının bir kaydı adım adım nasıl topladığını listeler. Motor niyet asistanı sayfasında anlatılır.
Kapsam ve kaynak¶
- Tanımlandığı yer:
webapp/js/assistant.js(renderAssistant,ensureAssistant,askAssistant,getConversation,subscribeConversation,resetAssistant),webapp/js/chat-task.js(ChatTask,createTaskCard),webapp/js/widget-ai.js(renderAiWidget) - Sayı:
renderReplytarafından işlenen 4 yanıt parçası (webapp/js/assistant.js:194-199)
Asistanı açma¶
| Giriş | Kaynak |
|---|---|
screen: "assistant" taşıyan, manifesto kimliği ai-assistant olan asistan uygulaması |
src/cluster_erp/modules/app_store/catalog.json:131-139, webapp/js/home.js:2425-2426 |
Ana ekran durum satırındaki asistan düğmesi (chat.title) |
webapp/js/home.js:152-155 |
ai anahtarlı ana ekran bileşeni |
webapp/js/home.js:292-302 |
İstek¶
sendToEngine(payload) /chat/message ucuna {text, allowed_modules, ...payload} gönderir. allowed_modules, app-scope.js içindeki kurulu uygulama kapsamıdır; yorum, motorun yalnız bu modüller ve çağıranın izinleri içinde yanıt verdiğini belirtir (webapp/js/assistant.js:201-217). Bkz. modül uygulamaları ve uygulama kapsamı.
Bir görev kartı etkinken yazılan metin motora gitmez. Bir iptal sözcüğü kartı iptal eder; başka her şey chat.task.use_card ile yanıtlanır (webapp/js/assistant.js:252-264).
Yanıt parçaları¶
| Parça | Çizim | Kaynak |
|---|---|---|
content |
Bir asistan baloncuğu | webapp/js/assistant.js:195 |
navigate_to |
chat.cannot_navigate içeren bir baloncuk |
webapp/js/assistant.js:196 |
actions |
Bir düğme satırı; bir navigate aksiyonu da chat.cannot_navigate ile yanıtlanır |
webapp/js/assistant.js:139-166, webapp/js/assistant.js:197 |
task_card |
Sohbette bir görev kartı | webapp/js/assistant.js:167-192, webapp/js/assistant.js:198 |
Bir hata yanıtı çevrilmiş hata metniyle bir asistan baloncuğu olarak gösterilir (webapp/js/assistant.js:211-215).
Sohbet¶
Sohbet oturum boyunca bellekte yaşar ve en çok 200 ileti tutar (webapp/js/assistant.js:17, webapp/js/assistant.js:84-90). Sohbet ekranı ve bileşen onu getConversation ve subscribeConversation ile paylaşır (webapp/js/assistant.js:420-437). Bileşen son 40 girdiyi gösterir ve kurulu her modülün assistant_starters metadata'sından başlangıç önerileri sunar (webapp/js/widget-ai.js:18-28). tests/test_metadata_driven_rules.py:77 başlangıç önerilerinin iki dilde modül metadata'sı olduğunu denetler.
Ekran ayrıca eklenen dosyalar için dosya çipleri ve sayaçlı bir ses kaydedici gösterir (webapp/js/assistant.js:275-320). Başlık yorumu kaydediciyi görünüş amaçlı olarak adlandırır (webapp/js/assistant.js:1-6); yalnız dosya içeren bir ileti çipleri gösterir ve motora hiçbir şey göndermez (webapp/js/assistant.js:262).
resetAssistant() çıkışta ve uygulama açık uygulamalar ekranından kapatıldığında sohbeti, etkin kartı ve bekleyen dosyaları atar (webapp/js/assistant.js:457-467, webapp/js/main.js:167, webapp/js/home.js:2545).
Görev kartları¶
Bir görev kartı, sunucudaki bir TaskCardOut nesnesinin istemci tarafıdır: bir varlık türü ve etiketi, bir modül, bir API yolu ve bir alan listesi (webapp/js/chat-task.js:1-5, webapp/js/chat-task.js:13-38).
| Adım | Davranış | Kaynak |
|---|---|---|
| Adım başına bir alan | Geri, atla (isteğe bağlı alanlar için) ve ileri | webapp/js/chat-task.js:47-80 |
| Koşullar | Koşulu sağlanmayan bir alan atlanır | webapp/js/chat-task.js:99-103 |
| Yabancı anahtar araması | Seçenekler alanın kaynağının GET /<module><endpoint> ucundan gelir |
webapp/js/chat-task.js:300-315 |
| Özet | Her yanıtın düzenlenebilir özeti | webapp/js/chat-task.js:81-87, webapp/js/chat-task.js:122-135 |
| Gönderme | Toplanan verinin kartın API yoluna POST ile gönderilmesi |
webapp/js/chat-task.js:466-480 |
Etkin bir kartın modülü kurulu uygulama kapsamından çıktığında kart iptal edilir (webapp/js/assistant.js:220-230).
Kısıtlar ve doğrulama¶
- Sunucu her ileti ve her gönderim için izinleri uygular; istemcinin kapsamı yalnız neyi sorduğunu daraltır.
- Tarayıcı testleri:
web-client/_e2e_assistant.mjs,web-client/_e2e_widgets_ai_sched.mjs.
Tanıtılan terimler¶
| Terim | Kod tanımlayıcısı | Tanım | Türkçe terim | Kaynak |
|---|---|---|---|---|
| task card | createTaskCard |
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ı | webapp/js/chat-task.js:149 |
| starter chip | assistant_starters |
Bir modülün asistan bileşeninde sunduğu tek dokunuşluk soru. | başlangıç önerisi | webapp/js/widget-ai.js:22-28 |
| allowed modules | allowed_modules |
Her sohbet iletisiyle gönderilen kurulu uygulama kapsamı. | izinli modüller | webapp/js/assistant.js:209 |
İlgili sayfalar¶
- Web uygulaması platformu
- Niyet asistanı
- Ana ekran bileşenleri
- Modül uygulamaları ve uygulama kapsamı
- Ortak sunucu rotaları
92f8051 numaralı commit ile 2026-11-13 tarihinde doğrulandı.