gora.
GoraGen — AI video generavimo platforma

Admin skydelis

Ką mato platformos administratorius: personas, job'ų eilę, GPU provisioning, LoRA lentą, events feed, Plan-100 control plane.

~4 min skaityti · 818 žodžių

TL;DR

Administravimo skydelis — atskira React 19 SPA, prieinama tik administratoriaus rolei. Valdo cross-workspace resursus: sistemines personas, prompt'ų receptus, LoRA modelius, job'ų eilę, Vast.ai instance'us, provisioning taisykles, atsiskaitymus, auditą. Pagrindinė nauja funkcija — Plan-100 Control Plane Console su koordinatoriumi/raneriu/rekonsileriu ir shadow-tables cutover'iui.

Administravimo skydelio apžvalga

GoraGen administravimo skydelis — tai operatyvinė dispečerinė. Per ją platformos komanda mato, kas vyksta visame produkte vienu metu: kiek GPU išsinuomota, kurie job'ai užstrigo, kurie naudotojai išleidžia daugiausiai, kurie modeliai veikia prastai.

Apvalkalas — AdminShell.tsx su šonine panele ir keyboard shortcuts greitai navigacijai.

Dashboard

Pagrindinis ekranas — KPI ir live metrikos:

  • Aktyvūs job'ai (pagal tipus: video, storyboard, kling, lora_training)
  • Eilės gylis ir vidutinis lead time
  • Klaidų skaitiklis per paskutines 5/15/60 minučių su filtru pagal severity
  • Esami Vast.ai instances ir jų būsena (booting / ready / running / cancelling / destroyed)

Per /admin/system/workers-health stebimas heartbeat-loop iš workers konteinerio — jei paskutinis heartbeat senesnis nei 60 sekundžių, dashboard'e užsidega įspėjimas „workers down".

Naudotojai

/admin/users — naudotojų naršyklė. Spustelėjus user_id — detalės: workspace, generavimų istorija, kreditų balansas, daily-spend profilis, plan, paskutinių prisijungimų IP adresai.

Administratorius gali:

  • Pakeisti naudotojo planą (Free → Starter → Pro)
  • Pridėti/nuskaityti kreditus rankiniu būdu
  • Imitavimas (impersonate) (cookie su žyme impersonated_by=:admin_id) — skundų „man neveikia X" analizei

Visi šie veiksmai įrašomi į domain_events ir matomi compliance audito tikslais.

Personas / Presets / Workflows

Trys atskiri CRUD skyriai platformos turinio „backbone":

  • /personas — sisteminiai personažai. Kiekvienas turi lookbook (12+ kadrų), preset'us (kamera, fonas, apšvietimas), LoRA modelių sąrašą.
  • /presets — prompt'ų šablonų ir kameros judesių biblioteka.
  • /workflows — ComfyUI grafų šablonai. Šablonas gali būti susietas su modeliu (WAN, Hunyuan, LTX) ir naudojamas renderio.

Tasks

/admin/tasks — job eilės konsolė. Keturi tab'ai: queued / live / recent / failed.

Spustelėjus konkretų job'ą — pilnos detalės: workspace, user, instance, įvesties parametrai, vykdymo log'as, progreso WS pranešimai, Gemini įvertinimas, galutinė kaina. Jei fail — stack trace su Sentry event-id.

Iš live galima atšaukti (graceful — leidžiame dabartinei iteracijai užbaigti, neleidžiame kitos). Iš failed galima paleisti iš naujo (naujas job su tais pačiais parametrais).

Instances

/admin/instances — Vast.ai instance naršyklė. Kiekvienas instance:

  • offer_id, image, region, kaina $/val.
  • būsena (booting / ready / running / cancelling / destroyed)
  • esamas job (jei yra)
  • kaina nuo paleidimo pradžios
  • mygtukai terminate / SSH-connect / re-init

Visos rankinės operacijos su instance'ais dabar vyksta per Control Plane (žr. žemiau), o ne kaip anksčiau — tiesioginiu Vast API kvietimu.

LoRA dashboard

/admin/lora — cross-workspace visų LoRA treniruočių vaizdas. Kiekvienai:

  • statusas (preparing / captioning / training / validating / done / failed)
  • progresas procentais, ETA
  • nuoroda į validation-grid (rezultato peržiūra)
  • kaina, trukmė

Administratorius gali nužudyti užstrigusią treniruotę, paleisti iš naujo failed užduotį, peržiūrėti kohya_ss log'ą.

System

/admin/system — techninė administravimo dalis, padalinta į subtab'us:

  • audit — administratoriaus veiksmų log'as
  • health — išplėstinis health puslapis (Phase 9): workers heartbeat, DB latency, disk usage, queue depth
  • provisioning — auto-provisioning taisyklės (kada platforma pati išsinuomoja naują instance, kada jį užgesina)
  • spend — finansinė suvestinė pagal GPU valandas ir Anthropic / Gemini / Kling API iškvietimus
  • events — Phase 9 domain events feed (append-only, paskutiniai 1000 įvykių) su JSON modaliniu langu kiekvienam

Plan-100 Control Plane Console

/admin/system/control-plane — atskiras puslapis koordinuotos provisioning sistemos valdymui.

Tai perėjimas nuo tiesioginio darbo su Vast API prie orkestracijos modelio, kur tarp administravimo skydelio ir Vast yra trys loop'ai:

  • Coordinator — skaito instance_requests (provisioning paraiškas), tikrina parallel-limits, velocity-guard, įterpia provision_attempts.
  • Runner — paima claimed attempts, kviečia scripts/vast_provision.ensure_instance(...), taiko terminal reducer.
  • Reconciler — kas N sekundžių skenuoja stale leases, force-terminates užstrigusius cancelling būsenoje, atlaisvina destroyed instance'us.

Visi trys — leader-elected per provision_leader lentelę. Jei konteineris su lyderiu miršta, antras (jei yra) perima lyderystę per 60 sekundžių.

Puslapyje:

  • Live trijų loop'ų statusas (running / lost / draining)
  • Observability metrikos: 7 skaičiai (active requests, queued attempts, success rate ir t. t.)
  • Mygtukas Pause — emergency vėliava, sustabdanti visus tris loop'us per 30 sekundžių
  • Mygtukas Resume — panaikina emergency-pause

Po gaubtu — 5 cutover vėliavos su TTL-cache 60 sekundžių: workflow_spawn, auto_provisioner, parallel_limits, provisioning_cutover_admin_rule_action, provisioning_emergency_pause. Galima perjungti atskirai — pavyzdžiui, išjungti auto-provisioner, paliekant kitas.

Settings

/admin/settings — sisteminiai parametrai, derinami runtime metu:

  • maintenance_mode — globalus 503 ne-administratoriams
  • prices — generavimo kainos (per-shot, per-second, per-LoRA-train)
  • retention — vaizdo įrašų, įvykių, idempotent raktų saugojimo terminai

Parametro pakeitimą iš karto mato visi workers per polling kas 60 sekundžių.

Events feed

Phase 9 įvedė append-only domain_events. Kiekvienas reikšmingas platformos įvykis (naujas user, naujas job, provisioning fail, plano atnaujinimas) įrašomas atskira eilute su tipu, aktoriumi, payload JSON.

Administravimo skydelyje /admin/system/events — reaktyvi juosta su filtrais pagal įvykio tipą, aktorių, datų intervalą. Dvigubas spustelėjimas — modalinis langas su pretty-printed JSON.

Tai duoda du dalykus: forensic auditą (kas nutiko per paskutines parą) ir event-source integracijoms (įvykių eksportas į external webhooks per webhook_dispatcher).