Ugrás a fő tartalomra

Automatizálások

Az automatizálások ütemezés szerint hajtanak végre egy utasítást, az eredményt pedig normál beszélgetésként adják át. A napi hírösszefoglaló, a heti áttekintés vagy a havi jelentés felület nélkül fut a szerveren, megjelenik a beszélgetéslistában, és ugyanúgy nyitható meg, mint bármely más beszélgetés.

Felépítés

Egy automatizálásnak neve, szabad szöveges utasítása, egy vagy több eseményindítója, opcionális modellje (az üres érték Auto: a futáskor érvényes alapértelmezett Chat-modell), célja és értesítési beállítása van. A cél határozza meg az eredményt: a Chat session (alapértelmezett) beszélgetésként állítja sorba az utasítást, míg a Work task egy elszigetelt Work környezetet indít, első üzenetként az utasítással és opcionálisan egy elnevezett házirenddel. Bekapcsolt értesítéseknél a sikertelen futások az értesítési postaládában is megjelennek. A név és az utasítás nyugalmi állapotban titkosított, az automatizálás pedig a létrehozójához tartozik.

Az eseményindítók a naptármodellt használják — once, hourly, daily, weekly, monthly, yearly —, és legfeljebb öten lehetnek. A következő futás a szerver időzónájában számított legközelebbi jövőbeli előfordulás.

Végrehajtás

Az ütemező percenként ellenőriz egy koordinációs lease mögött, hogy csak egy replika léptesse előre az ütemezéseket. Az időpont elérésekor rögzíti a futást, sorba állítja az automation.run.v1 tartós feladatot, és compare-and-set művelettel előrelépteti a next_run_at értéket, így minden előfordulás legfeljebb egyszer indul el. A feladat az automatizálás nevével létrehoz egy Chat-munkamenetet, majd ugyanazon a tartós folyamaton vezeti át az utasítást, mint a többi beszélgetést, beleértve a szolgáltatói útvonalválasztást, a persona alapértékeit és a tárolást.

Ha a szerver leállt, a következő ellenőrzés egyszer futtatja a legutóbbi előfordulást, a régebbieket pedig kihagyja. A szüneteltetés törli az ütemezést; a folytatás vagy szerkesztés újraszámítja. A törlés foreign-key cascade segítségével eltávolítja az előzményeket.

Az állapot a tartós naplóból származik: siker a beszélgetés létrejötte után, hiba, ha a feladat dead-lettered állapotba kerül, és stalled, ha egy futás 30 percen belül nem indul el.

A Work-célok a Work életciklusát használják a Chat-feladat helyett. A futás a feladathoz kapcsolódik, sikeres, ha az ügynök befejezi vagy beavatkozást kér, és hiba vagy megszakítás esetén sikertelen. A Work-hozzáférést indításkor ellenőrzi; a visszavonás eredménye work-access-denied. A kiválasztott házirendet mentéskor ellenőrzi, korlátai minden feladatra vonatkoznak. A Work csak közvetlen szolgáltatókat futtat, a modellnek pedig támogatnia kell az eszközöket.

Ügynökrutinok

Egy Work-automatizálás a workTaskId segítségével meglévő feladathoz köthető, ahogy az ügynökpanel Routines szakaszában is. Minden előfordulás a meglévő munkatérben és beszélgetésben indít futást a feladat modelljével, szolgáltatójával és futtatási házirendjével; az automatizálás megfelelő mezői ilyenkor nem érvényesek. A kapcsolatot mentéskor ellenőrzi. Törölt feladatnál work-task-missing, már futó feladatnál vagy élő előnézetnél pedig várakozás helyett work-task-busy keletkezik.

Webhook-eseményindítók

Az ütemezésen túl egy automatizálást külső rendszer is elindíthat — CI-folyamat, cron-szolgáltatás, otthoni automatizálás. Az automatizálás szerkesztőablakában a Webhook trigger → Enable automatizálásonkénti titkot generál; ebből csak a SHA-256 lenyomat tárolódik, így a nyílt szöveg pontosan egyszer jelenik meg. A titok cseréje azonnal érvényteleníti a korábbit, a webhook kikapcsolása pedig ismét lezárja a végpontot.

A külső rendszer így indítja el az automatizálást:

curl -X POST https://your-host/api/automations/<automationId>/webhook \
-H "Authorization: Bearer lwh_..."

(Alternatív fejlécként az X-Libre-Webhook-Secret: lwh_... is működik.) A válasz 202 a sorba állított futás azonosítójával — ugyanaz a kézi indítási útvonal, mint a Run now, így a futások ugyanúgy zárulnak le, értesítenek és jelennek meg az előzményekben. A titok összehasonlítása állandó idejű, a nem létező automatizálás és a hibás titok azonos választ ad (nincs automatizálás-azonosító orákulum), a szüneteltetett automatizálás pedig 409 választ ad: a tulajdonos Run now gombjától eltérően külső hívó nem indíthat futást a szüneten át.

API

A webhookos indítás kivételével minden végpont hitelesítést igényel, és csak a hívó automatizálásain működik; a webhookos indítás ehelyett az automatizálás titkával hitelesít.

MetódusÚtvonalCél
GET/api/automationsAutomatizálások listázása
POST/api/automationsAutomatizálás létrehozása
GET/api/automations/occurrences?from=&to=Jövőbeli előfordulások
GET/api/automations/runsFutási előzmények
GET/api/automations/runs/summaryNem látott + 30 napos csoportok
POST/api/automations/runs/seenBefejezett futások megjelölése látottként
GET/api/automations/:automationIdAutomatizálás beolvasása
PUT/api/automations/:automationIdAutomatizálás frissítése
DELETE/api/automations/:automationIdAutomatizálás törlése
POST/api/automations/:automationId/pauseÜtemezés szüneteltetése
POST/api/automations/:automationId/resumeÜtemezés folytatása
POST/api/automations/:automationId/runAzonnali futtatás (202 és id)
POST/api/automations/:automationId/webhookIndítás titokkal (202)
POST/api/automations/:automationId/webhook-secretTitok létrehozása/cseréje
DELETE/api/automations/:automationId/webhook-secretWebhook kikapcsolása

Egy felhasználó legfeljebb 50 automatizálást tarthat meg. A nevek legfeljebb 200, az utasítások 20 000 karakteresek lehetnek.