BotreamDokümanlar Web sitesi English v0.1.1

Gelen kutusu ve insan görevleri {#inbox-and-human-tasks}

Bazı adımlar bir insana ihtiyaç duyar: ai komutunun okuduğu bir faturayı kontrol etmek, limitin üzerindeki bir siparişi onaylamak, hiçbir sistemde olmayan bir değeri doldurmak. Bir görev bunu humantask komutuyla ister: web uygulamasının Inbox sayfasında bir form belirir, istenirse bir dosyanın (fatura PDF'i, taranmış bir resim) yanında. Kişi değerleri kontrol eder veya düzeltir ve Approve ya da Reject gibi bir düğmeye basar; görev, girilen değerlerle ve basılan düğmeyle devam eder.

Gelen kutusu

Inbox her rol için kenar çubuğundadır. Rozeti, tamamlayabileceğiniz açık görevleri sayar.

  • Open, sizi bekleyen görevleri en eskiden başlayarak listeler: başlık, isteyen görev, kimin için olduğu, ne zamandan beri beklediği ve ne zaman süresinin dolacağı (bir saatten az kaldıysa kırmızı).
  • Done, son tamamlanan, iptal edilen ve süresi dolan görevleri; basılan düğme, kimin bastığı ve ne zaman olduğuyla listeler.

Açmak için bir göreve tıklayın. Form solda, dosya sağdadır: PDF'ler ve resimler gösterilir, metin dosyaları metin olarak, diğer dosyalar indirilebilir. * ile işaretli alanlar zorunludur; gri alanları görev doldurmuştur ve değiştirilemez. Alttaki düğmeler görevi tamamlar; ilk düğme vurgulanır, Reject gibi düğmeler kırmızıdır.

Bir görev bir kez tamamlanır: iki kişi aynı anda açarsa ikincisi Someone else completed this task a moment ago mesajını alır.

Görevi kimler görür

Görev, kimin tamamlayabileceğini --assignee ile belirtir: kullanıcı adları ve rol adları, virgülle ayrılmış. Kimseyi belirtmeyen bir görev herkes içindir; bir rolü belirten görev, rolleri arasında o rol bulunan herkes içindir. Admin rolünün üyeleri her görevi görür. Başkaları için olan bir görev Inbox'ınızda görünmez; adresiyle açmaya çalışırsanız not found yanıtı alırsınız.

Görevde kullanım

ai --action:extract --file:$pdf$ --fields:"InvoiceNo, Supplier, Total:number, Date:date" --output:invoice
humantask --action:ask --title:"Check invoice $invoice.InvoiceNo$" --fields:"InvoiceNo, Supplier, Total:number, Date:date, Category:choice(Office|Travel|IT), Note:multiline" --values:$invoice$ --readonly:"InvoiceNo, Supplier" --required:"Total, Category" --outcomes:"Approve, Reject" --assignee:"User" --file:$pdf$ --timeout:1440 --output:review
if --condition:"$review.Outcome$ = `"Approve`""
    log --message:"Approved by $review.CompletedBy$: $review.Total$ ($review.Category$)"
endif

Form

Düzenleyicide Fields bir listedir: bir alan ekleyin, ona bir ad ve tür verin (seçim listesi seçeneklerini etiket olarak alır), Zorunlu veya Salt okunur kutusunu işaretleyin; her satır, değerin daha sonra nasıl okunacağını gösterir ($review.Total$). Düğmeler ve Kimler tamamlayabilir de aynı şekilde seçilir (roller, yöneticiler için kullanıcılar). Liste --fields, --required ve --readonly parametrelerini yazar; Metin olarak düzenle bunları yazıldığı haliyle gösterir.

--fields, alanları Ad[:tür] biçiminde, virgülle ayrılmış olarak listeler:

Tür Gösterim Sonuçta
text (varsayılan) tek satır metin metin
multiline çok satırlı metin alanı metin
number sayı alanı sayı
date tarih seçici tarih
boolean anahtar true / false
choice(A|B|C) bu seçeneklerle bir liste seçilen seçenek

Alan adları harf, rakam ve _ içerir; böylece $review.Ad$ olarak okunabilirler. Outcome, CompletedBy, CompletedAt, TaskId ve TaskStatus sonuca aittir ve alan adı olamaz.

Parametre Anlamı
--title Kişiden ne istendiği; listede ve formun üstünde gösterilir.
--description Formun üstündeki açıklama.
--values Başlangıç değerleri: $invoice$ gibi bir kayıt (alan adları büyük/küçük harf duyarsız eşleşir; diğer anahtarlar yok sayılır).
--required Herhangi bir düğme çalışmadan önce doldurulması gereken alanlar.
--readonly Gösterilen ama değiştirilemeyen alanlar; görevin değerlerini korurlar.
--outcomes Düğmeler, varsayılan Done.
--assignee Tamamlayabilecek kullanıcı adları ve roller; boşsa herkes.
--file Formun yanında gösterilen, ajan makinesindeki bir dosya (10 MB'a kadar).
--timeout Dakika. ask: çalıştırmanın ne kadar bekleyeceği; sonra görevin süresi dolar ve komut hata verir. create: görevin süresinin ne zaman dolacağı. 0 (varsayılan): sınır yok.

Beklemek ya da beklememek

Eylem Ne yapar
ask Görevi oluşturur ve biri tamamlayana kadar bekler; --output sonucu alır. Çalıştırma önce biterse (iptal, hata) görev Inbox'tan kalkar.
create Görevi oluşturur ve devam eder; --output kimliğini alır. Görev, çalıştırma bittikten sonra da Inbox'ta kalır.
wait --id create ile oluşturulan bir görevi bekler.
get --id Görevi hemen okur: $state.TaskStatus$ Open, Completed, Cancelled veya Expired'dır.
cancel --id Açık bir görevi Inbox'tan kaldırır.

create ile bir görev Inbox'a aynı anda birçok form koyabilir (örneğin bir kuyruğun her faturası için bir form) ve yanıtları daha sonra wait ile toplayabilir; ya da başka bir çalıştırma onları get ile okuyabilir.

Bir çalıştırma beklerken ajanı meşguldür: başka görev çalıştırmaz. Saatler sürebilecek kararlar için create ve daha sonraki bir çalıştırmayı tercih edin.

Sonuç

Sonuç kaydı her alanı (kişinin bıraktığı haliyle) ve ayrıca şunları içerir:

Alan Anlamı
Outcome Basılan düğme.
CompletedBy Düğmeye basan kullanıcı.
CompletedAt Ne zaman.
TaskId, TaskStatus Görevin kimliği ve durumu.

Biri tamamlamadan iptal edilen veya süresi dolan bir görev, ask ve wait komutlarının, görevin yakalayabileceği bir hatayla başarısız olmasına yol açar.

Güvenlik

Bir görevin tamamlanması, basılan düğme ve alan adlarıyla (değerler hiçbir zaman değil) denetim kaydına (HUMAN_TASK_COMPLETE) işlenir. Dosyalar korumalı bir alanda gösterilir: bir dosya web uygulamasında betik çalıştıramaz.

Botream 0.1.1 · Oluşturulma 2026-10-14