Conceptos y componentes principales del GenUI SDK
Familiarízate con los componentes y conceptos principales del SDK de Flutter para GenUI.
Componentes principales
#El paquete genui está construido alrededor de los siguientes componentes principales:
Conversation-
La fachada principal y punto de entrada para el paquete. Incluye la clase
SurfaceController, gestiona el historial de conversaciones y orquesta todo el proceso de interfaz de usuario generativa. Catalog-
Una colección de objetos
CatalogItemque define el conjunto de widgets que la IA tiene permitido usar. ElSurfaceControlleradmite múltiples catálogos, lo que te permite organizar tus widgets en grupos lógicos. CadaCatalogItemespecifica el nombre de un widget (para que la IA lo referencie), un esquema de datos para sus propiedades y una función constructora (builder) para renderizar el widget de Flutter. DataModel-
Un almacén centralizado y observable para todo el estado dinámico de la interfaz de usuario. Los widgets están vinculados a los datos en este modelo. Cuando los datos cambian, solo se reconstruyen los widgets que dependen de ese fragmento específico de datos.
A2uiTransportAdapter-
Un puente que analiza flujos de texto sin procesar provenientes de tu LLM en comandos
A2uiMessagepara elSurfaceController. A2uiMessage-
Un mensaje enviado desde la IA (analizado por el
A2uiTransportAdapter) a la interfaz de usuario, indicándole que realice acciones comocreateSurface,surfaceUpdate,dataModelUpdateodeleteSurface. SurfaceController-
Maneja el procesamiento de los
A2uiMessages, gestiona elDataModely mantiene el estado de las superficies de la interfaz de usuario.
Cómo funciona
#La clase Conversation gestiona el ciclo de interacción:
-
User input
El usuario proporciona un prompt (por ejemplo, a través de un campo de texto). La aplicación llama a
conversation.sendMessage(). -
AI invocation
La clase
Conversationenvía el mensaje del usuario al SDK del LLM. -
AI response
El LLM, guiado por los esquemas de widgets proporcionados en su prompt del sistema, envía respuestas de vuelta.
-
Stream handling
El flujo de texto del SDK del LLM se introduce en el
A2uiTransportAdapter. -
UI state update
Los
A2uiMessages analizados por el adaptador se pasan aSurfaceController.handleMessage(), lo que actualiza el estado de la interfaz de usuario y elDataModel. -
UI rendering
El
SurfaceControllerdifunde una actualización, y cualquier widgetSurfaceque esté escuchando ese ID de superficie se reconstruirá. Los widgets están vinculados alDataModel, por lo que se actualizan automáticamente cuando cambian sus datos. -
Callbacks
Las respuestas de texto y los errores activan callbacks en la clase
Conversationo son manejados por tu flujo específico de integración de LLM. -
User interaction
El usuario interactúa con la interfaz de usuario recién generada (por ejemplo, escribiendo en un campo de texto). Esta interacción actualiza directamente el
DataModel. Si la interacción es una acción (como un clic en un botón), laSurfacecaptura el evento y lo reenvía alSurfaceController, el cual crea automáticamente un nuevoUserMessageque contiene el estado actual del modelo de datos y reinicia el ciclo.
Para obtener información más detallada sobre la implementación del GenUI SDK para Flutter, consulta el documento de diseño.
La siguiente sección te guiará a través de la adición de genui a tu aplicación.
A menos que se indique lo contrario, la documentación de este sitio refleja Flutter 3.44.0. Página actualizada por última vez el 2026-05-05. Ver código fuente oreportar un problema.