genai_primitives 提供了將生成式 AI 功能整合至 Flutter 應用程式的基礎工具。它提供標準化介面與實用工具,以與大型語言模型(LLMs)及其他生成式 AI 服務互動,讓開發者能夠建構 AI 驅動的功能,例如聊天、內容產生與文字分析。此套件設計用於跨平台的一致性與易用性,支援 Android、iOS、Linux、macOS、Web 與 Windows。該套件屬於 Flutter UI Labs 計畫的一部分,促進可重複使用且結構良好的 AI 元件。
適用情境
建構AI聊天介面
動態生成文字內容
實作自然語言處理工作流程
建立互動式AI助理
啟用即時內容建議
支援多語言AI互動
主要特色
標準化的LLM互動API
跨平台相容性
模組化且可擴充的設計
內建的請求/回應處理
與 Flutter 小部件整合就緒
一致的錯誤和狀態管理
適合對象
Flutter 開發人員建構 AI 功能
在生產應用中使用大語言模型的團隊
需要可擴展AI整合的專案
針對多個平台的應用程式
尋求可重用 AI 建構模組的開發者
使用建議
需要外部大語言模型服務整合
依賴網路可用性進行AI呼叫
可能需要自定義適配器以支援專有模型
最佳搭配後端用於敏感操作
不是獨立的AI引擎,而是一個客戶端工具包
原始 README
以下為關聯原始碼儲存庫的 README 原文快照,最新內容請造訪原始碼儲存庫。
Generative UI SDK for Flutter (genui)
A Flutter library to enable developers to easily add interactive
generative UI to their applications.
This is a highly experimental package, which means the API will change (sometimes drastically).
Feedback is very welcome.
Summary
Our goal for the GenUI SDK for Flutter is to help you replace static "walls of text" from your LLM with
dynamic, interactive, graphical UI.
It uses a JSON-based format to compose UIs from your existing widget catalog, turning
conversations or agent interactions into rich, intuitive experiences. State changes in the UI update
a client-side data model, which is fed back to the agent, creating a
powerful, high-bandwidth interaction loop. The GenUI SDK for Flutter aims to be easy to integrate
into your Flutter application to significantly improve the usability and satisfaction of your
chatbots and next-generation agent-based user experiences.
High-level goals
Increase Interaction Bandwidth for Users: allow users to interact with data and controls directly,
making task completion faster and more intuitive. Move beyond a "wall of text".
Simple and easy to use by developers: seamlessly integrate with your existing Flutter workflow,
design systems, and widget catalogs.
Drive agent-human UX forward: innovate ways to dramatically improve how users interact with their
LLMs and Agents. Radically simplify the process of building UI-based agent interactions, by
eliminating custom middleware between the agent and the UI layer.
Features
Multiple agent and LLM provider support
A2UI support
Standard UI catalog
Custom widgets
Data binding
Chat UX
Canvas UX
Use cases
Incorporate graphical UI into chatbots: instead of describing a list of products in text,
the LLM can render an interactive carousel of product widgets. Instead of asking for a user to
type out answers to questions, the LLM can render sliders, checkboxes, and more.
Create dynamically composed UIs: an agent can generate a complete form with sliders, date pickers,
and text fields on the fly based on a user's request to "book a flight."
Look & feel
The GIF above shows how GenUI enables dynamic, interactive UI generation,instead of text descriptions or code from a traditional AI coding agent.
Core difference
This UI is not generated in the form of code; rather, it's generated at runtime
based on a widget catalog from the developers' project.
Implementation goals
Integrate with your LLM: Work with your chosen LLM and backend to incorporate graphical
UI responses alongside traditional text.
Leverage Your Widget Catalog: Render UI using your existing, beautifully crafted widgets
for brand and design consistency.
Interactive State Feedback: Widget state changes are sent back to the LLM, enabling a
true interactive loop where the UI influences the agent's next steps.
Framework Agnostic: Be integrated into your agent library or LLM framework of choice.
JSON Based: Use a simple, open standard for UI definition—no proprietary formats.
Cross-Platform Flutter: Work anywhere Flutter works (mobile, iOS, Android, Web, and more).
Widget Composition: Support nested layouts and composition of widgets for complex UIs.
Basic Layout: LLM-driven basic layout generation.
Any Model: Integrate with any LLM that can generate structured JSON output.
Connecting to an AI agent
The genui framework is designed to be backend agnostic. You can use any AI SDK (such as firebase_ai or dartantic_ai) to generate content. The framework provides adapters (like A2uiTransportAdapter) to ingest the AI response and render it.
For custom agent servers that implement the A2UI protocol, you can use the genui_a2a package.
See the package table below for more details on each.
The Flutter Gen UI SDK uses the A2UI protocol to represent UI content internally. The genui_a2a package allows it to act as a renderer for UIs generated by an A2UI backend agent, similar to the other A2UI renderers which are maintained within the A2UI repository.
The Flutter Gen UI SDK currently supports A2UI v0.9.
This repo contains skill files for developers building with agentic coding tools. They can be copied directly into an agent's preferred location or installed using the skills package: