Skip to main content

Generált UI fejlesztési setup

A renderer a BFF-hez tartozik. A Complexity kezeli a generálást, a tartós állapotot és az előzményeket. Külön renderer-szolgáltatásra vagy hosztolt Gatewayre nincs szükség. A szokásos indításhoz használd a Docker-fejlesztést.

Függőségek és package patch​

A backend a @openuidev/lang-core@1.0.1 csomagot rögzíti. A BFF ezt a csomagot és az @openuidev/react-lang@1.0.1 csomagot rögzíti. Az install parancsot minden repóban annak package managerével és lockfile-jával futtasd.

A BFF patches/@openuidev__react-lang@1.0.1.patch fájlja és a workspace patchedDependencies beállítása install-bemenet. A patch megszünteti a fejlesztői DevTools automatikus külső CDN-betöltését, a renderer exportjait megtartva. Ne szerkeszd kézzel a node_modules mappát.

Az opcionális OPENUI_TELEMETRY_DISABLED=1 a függőségek install-folyamatára vonatkozik. Ez nem kötelező alkalmazás-.env bemenet. A csomagok kiadási korához kötött kivételek nem engedélyeznek szélesebb verziótartományt. Frissítéskor a két csomagot, a lockfile-okat, a patchet, a parsert és a registry szerződését együtt ellenőrizd.

Adatbázis és Prisma​

A kanonikus SQL-fájlok a mailGen/ECS_MovePST_To_TempSQL/DB_Lib/Sql/ mappában vannak. A sémabeállítás ebben a sorrendben történik:

  1. 20261015_complexity_ui_states.sql: a complexity.ui_states tábla, az output/revision egyedi kulcs és az üzenet-idegen kulcs.
  2. 20261015_complexity_ui_state_groups.sql: nullable link_group_id, revízióra szűkített csoport-egyedi kulcs és identitás CHECK.
  3. 20261016_complexity_ui_state_tool_ids.sql: kettőspont támogatása a kanonikus tool- és output-azonosítókban. Az egyenlőség és a 200 karakteres korlát megmarad.
  4. 20261016_complexity_submit_input.sql: nullable complexity.chats.submit_input_enabled boolean. A meglévő NULL érték az alkalmazásban kikapcsolt állapotot jelent.
  5. 20261016_complexity_ui_state_revisions.sql: pozitív UI-revíziók a korábbi, ismert ui_revision = 1 feltétel helyett. Az answer_revision > 0 és a version > 0 megmarad.

A séma alkalmazásához használd a deployment szokásos, kontrollált sémaútját. A scripts/apply-local-database-migrations.sh a hozzá tartozó helyi Compose-környezetben alkalmazza a védett migrációkat. Más runtime és teszt-példány saját, ellenőrzött sémautat igényel. A Prisma sémaszinkron önmagában nem hozza létre az SQL CHECK-korlátokat.

A revízió-frissítés megáll, ha ismeretlen vagy nem ellenőrzött CHECK-korlátot talál. A már helyes pozitív CHECK újbóli alkalmazása változatlanul hagyja. A módosítás nem ad hozzá oszlopot, nem tölt fel adatot és nem ad hozzá Prisma-leképezést. Az EF-leképezés és a friss setup CHECK-korlátja is pozitív revíziókat használ.

Az állapot-, csoport- vagy Submit input leképezés módosítása után generáld újra a backend és a BFF Prisma kliensét a saját sémájukból. Csak CHECK-et módosító revízió-változtatáshoz nem kellenek új modellnevek vagy mezők.

Frissítés előtt vizsgáld meg a hatókört és az offline sémamegőrzési különbséget. Őrizd meg az állapot- és csevegősorokat, az egyedi kulcsokat, az indexeket és az idegen kulcsokat. Destruktív vagy ismeretlen különbségnél állj meg. A reset, a volume törlése, a --accept-data-loss és a --force-reset nem frissítési lépések.

Szolgáltatások és jogosultságok​

A BFF, a Complexity-szolgáltatás és a Getter kompatibilis forrásszerződést használ. Az Admin kezeli a Submit input (a bemenet modellnek küldésének engedélyezése) szabályzati katalógusát. Ha ez a katalógus változik, frissítsd az Admint.

A célzott csoport Agent tool access (ügynök-eszközhozzáférés) beállításához külön displayOpenUI és displayMarkdown jogosultság kell. Az eszközregisztráció és a korábban mentett beállítások nem adnak futásidejű hozzáférést.

A tartós állapot a meglévő tulajdonosi titkosítási és konverziós útvonalat használja. A kapcsolt csoportok saját, hitelesített társított adatokat (AAD) használnak. Külön infrastruktúra-szolgáltatás, credential, bucket vagy port nem kell. Az UI-állapot mentése nem hív modellt. A modellnek küldéshez a Submit input engedélyezése szükséges.

Generálási szabályzat és prompt-alapértékek​

A szabályzat- vagy alapértékváltozáshoz a BFF, a Complexity és az Admin egyező forrását használd. Az Admin LLM configuration oldalán (magyarul: LLM-beállítások) különböztesd meg a beépített alapértékeket a bérlői (tenant) felülírásoktól. A frissítés nem írja át automatikusan a bérlői promptokat és a meglévő futásokból származó pillanatképeket.

Az új, soron belüli generálás és a megtartott régi előzmény-megjelenítés a megjelenítési viselkedést követi. Csak prompt-alapérték változásához nem kell sémamigráció vagy új környezeti változó.

Indítás után egy eldobható beszélgetéssel ellenőrizd a generálást, az interakciót, az újratöltést, a régi revíziókat és a nyelvi megjelenítést. Lásd a generált UI használatát és a setup-követelményeket.

Indítási ellenőrzések a tartós UI-state-hez​

Az egységes Docker-inicializálás során a Prisma-sémaszinkron megelőzi az adatbázis-feature installert. A seed-lépés az installer után fut. A normál újraindítás, amely kihagyja az inicializálást, ezeket a lépéseket nem ismétli meg.

Az installer három kanonikus CHECK-korlátot biztosít a complexity.ui_states táblán:

  • ui_states_revision_check: az answer_revision, az ui_revision és a CAS-version mindegyikének pozitívnak kell lennie. A CAS a compare-and-swap, vagyis a párhuzamos frissítések verziós ellenőrzése.
  • ui_states_identity_check: a tool_call_id-nak egyeznie kell az output_id-val. Az azonosító 1–200 ASCII-betűt, számjegyet, aláhúzást, kettőspontot vagy kötőjelet fogad el.
  • ui_states_group_identity_check: a link_group_id lehet NULL. Egyébként 1–200 ASCII-betűt, számjegyet, aláhúzást vagy kötőjelet fogad el.

Az installer hozzáadja a hiányzó CHECK-et, és validálja az összes meglévő sort. Az azonos, validált CHECK változatlan marad, beleértve a PostgreSQL-objektumazonosítóját (OID). Csak a várt constraint-név alatt lévő, pontosan ismert régi revízió- vagy tool/output-azonosító-definíciót cseréli le.

Egy ismeretlen definíció, egy nem validált constraint, egy eltérő constrainttípus vagy egy érvénytelen sor leállítja a tranzakciót és az inicializálást. Újrapróbálkozás előtt vizsgáld meg az adatbázis-katalógust és a meglévő sorokat. Ne kerüld meg ezeket az ellenőrzéseket, és ne használj destruktív indítási kapcsolókat.

A Prisma továbbra is kezeli a relációs objektumokat: a táblákat, oszlopokat, indexeket, egyedi kulcsokat és idegen kulcsokat. A fenti SQL-fájlok maradnak a kanonikus, explicit upgrade-definíciók.

Izolált példány esetén használd annak saját, ellenőrzött sémaútját. Ehhez a példányhoz ne használd a régi scripts/apply-local-database-migrations.sh célkeresését. Ez a szkript a backend régi Coolify Compose-fájlja, annak környezeti fájlja és a COMPOSE_PROJECT_NAME alapján választja ki a PostgreSQL-célt. Az infrastruktúra-wrapper is betölti a backend környezetét. A példány célját nem a futtatókörnyezeti pillanatképből határozza meg.