- name
- genui-integration
- description
- genui-sdk 全方位指南:安装、配置、集成、示例。用户提到 genui-sdk、genui-sdk-server,或想构建 AI 聊天界面、动态 UI 组件、Node.js 后端 LLM 代理(OpenAI 兼容 chat/completions API)时使用。涵盖 Vue/Angular 前端(主题、物料、GenuiChat/GenuiRenderer)与 Server 后端(CLI、Express 集成、流式代理)。即使用户只描述需求(如"搭建 LLM 代理服务"、"AI 聊天+动态组件")而未提及 SDK 名称也应触发。
# GenUI SDK 集成指南
本 skill 帮助用户将 GenUI SDK 集成到项目中。GenUI SDK 是一个用于构建由大语言模型(LLM)驱动的生成式 UI 界面的工具包,使 AI 能够动态生成交互式 UI 组件。
## 理解用户需求
在提供集成指导之前,确定:
1. **使用哪个技术栈?** 询问用户使用什么技术:
- **Vue**(Vue 3 组合式 API)→ 阅读 `references/vue.md`
- **Angular**(Angular 独立组件)→ 阅读 `references/angular.md`
- **Server**(Node.js 后端服务)→ 阅读 `references/server.md`
- **其他框架**(React 等)→ 说明当前仅支持 Vue 和 Angular,建议关注官方更新
- **多个/全部**(需要全面指导)→ 综合提供所有相关参考
2. **项目状态?** 确定他们是:
- 从零开始(新项目)→ 提供完整的初始化步骤
- 添加到现有项目 → 侧重于配置和集成注意事项
3. **使用场景?** 了解他们想要构建什么:
- 带 AI 的完整聊天界面(使用 `GenuiChat`,仅 Vue)
- 带流式渲染器的自定义 UI(使用 `GenuiRenderer`)
- 代理 LLM 调用的后端服务(使用 `genui-sdk-server`)
### 集成模式决策树
根据用户需求,引导他们选择合适的模式:
```
用户需要什么?
├─ 快速开始,完整聊天界面
│ ├─ Vue → GenuiChat(模式 1)
│ └─ Angular → 不支持,建议使用 GenuiRenderer + 自定义聊天外壳
├─ 自定义 UI 布局
│ ├─ Vue → GenuiRenderer(模式 2)
│ └─ Angular → GenuiRenderer(模式 2)
├─ 后端服务
│ └─ 所有框架 → genui-sdk-server(模式 3)
└─ 不确定
└─ 询问具体需求,然后推荐
```
### 边缘场景处理
- **React 用户**:说明 GenUI SDK 目前仅支持 Vue 和 Angular,建议:
1. 关注官方 GitHub 仓库了解 React 支持计划
2. 考虑迁移到 Vue 或 Angular
3. 参考架构设计,自行实现类似功能
- **TinyVue 配置**:如果用户询问 TinyVue 组件库配置:
1. 说明 TinyVue 是 GenUI SDK 的物料系统的一部分
2. 引导查看 `references/materials/index.md` 及 [快速开始 - 物料与主题](https://docs.opentiny.design/genui-sdk/guide/quick-start#通过-genuiconfigprovider-配置物料与主题)
3. 提供 `GenuiConfigProvider` 的使用示例
- **主题切换**:如果用户询问深色模式或主题:
1. 说明支持 4 种主题:`dark`、`lite`、`light`、`auto`
2. 提供 `GenuiConfigProvider` 的 `theme` 属性配置
3. 引导查看各参考文件的主题配置章节
- **自定义组件**:如果用户想让 AI 使用业务组件:
1. 说明需要在前端注册组件 + 后端配置 `tinygenui` metadata
2. 引导查看 `examples/` 目录的自定义组件示例
3. 提供前后端联动的完整流程
- **openPage / 页面跳转**:如果用户实现导航类自定义动作:
1. 说明 LLM 控制的 URL 不可信,不可直接 `window.open(params.url)`
2. 引导查看 `references/angular.md` 的 `openAllowedPage` 模式(origin 白名单 + 协议校验)
3. 跨域或 `_blank` 须使用 `noopener,noreferrer`,拒绝未授权目标
- **Legacy 迁移**:如果用户从 v1.3.0 前版本升级、希望零配置快速迁移:
1. 引导使用 `GenuiLegacyChat`(Vue)或 `GenuiLegacyRenderer`(Vue/Angular)
2. 说明内置默认物料,无需 `GenuiConfigProvider`
3. 新项目仍应使用当前版组件 + 官方物料包,见 `references/vue.md` 或 `references/angular.md` 兼容组件章节
- **Element Plus 用户**:如果项目已使用 Element Plus 而非 OpenTiny Vue:
1. 说明可使用 `@opentiny/genui-sdk-materials-vue-element-plus` 替代官方物料
2. 引导查看 `references/materials/vue-element-plus.md`
3. 提醒需额外引入 `element-plus/dist/index.css`
- **精简组件集**:如果用户不需要图表或想减小物料体积:
1. 说明 OpenTiny Vue 官方包提供 `miniMaterials` / `miniMaterialsMeta` 精简集
2. 引导查看 `references/materials/vue-opentiny-vue.md`
3. 强调前后端须一致使用 mini 版本
一旦了解他们的需求,**阅读相应的参考文件**并提供指导。
## 核心概念
在深入具体技术栈之前,理解这些关键概念:
### 物料(Materials)
GenUI SDK 使用**物料系统**将核心 SDK 与 UI 组件解耦。使用当前版 **GenuiChat** / **GenuiRenderer**(v1.3.0+)时,须通过 `GenuiConfigProvider` 注入物料。**Legacy 兼容组件**(`GenuiLegacyChat` / `GenuiLegacyRenderer`)内置默认物料,无需 ConfigProvider,见各参考文件「兼容组件」章节。
官方物料(默认推荐):
- Vue:`@opentiny/genui-sdk-materials-vue-opentiny-vue`
- Angular:`@opentiny/genui-sdk-materials-angular-opentiny-ng`
可选物料与变体(详见 `references/materials/`):
- Vue Element Plus 替代方案:`@opentiny/genui-sdk-materials-vue-element-plus`
- OpenTiny Vue 精简集:`miniMaterials` / `miniMaterialsMeta`
- 旧项目迁移:`GenuiLegacyChat` / `GenuiLegacyRenderer`(内置物料)
当用户询问替换 UI 库、精简组件集或迁移方案时,阅读 `references/materials/index.md` 及对应专页。
### 组件
**GenuiChat**(仅 Vue):一个集成的聊天组件,包含会话管理、流式传输和生成状态。是最简单的入门方式。
**GenuiRenderer**:核心渲染器组件,将 JSON schema 转换为 UI。Vue 和 Angular 都可用。当你需要更多控制 UI 或想要构建自定义聊天界面时使用。
**GenuiConfigProvider**:配置提供者,注入物料和主题。当前版 GenuiChat / GenuiRenderer 集成需要;Legacy 兼容路径可省略。
### 流式协议
GenUI SDK 使用服务器发送事件(SSE)和 OpenAI 兼容格式。LLM 在用 ` ```schemaJson ` 标记的代码块中返回 JSON schema,SDK 提取并渲染这些内容。
## 集成模式概览
根据用户需求,引导他们选择合适的模式:
### 模式 1:GenuiChat(仅 Vue,推荐快速开始)
- **适用场景**:快速构建完整的聊天界面
- **特点**:开箱即用,包含会话管理、流式传输、生成状态
- **详细指南**:见 `references/vue.md` 模式 1 概况,操作步骤见 [快速开始](https://docs.opentiny.design/genui-sdk/guide/quick-start)
### 模式 2:GenuiRenderer(Vue 和 Angular,自定义 UI)
- **适用场景**:构建自定义聊天界面或与现有 UI 集成
- **特点**:更灵活的控制,需要自己处理流式数据
- **详细指南**:见 `references/vue.md` 或 `references/angular.md` 模式 2 概况;Vue 见 [使用 Renderer 组件](https://docs.opentiny.design/genui-sdk/guide/start-with-renderer),Angular 见 [Angular Renderer 指南](https://docs.opentiny.design/genui-sdk/guide/angular/start-with-renderer)
### 模式 3:Server 集成
- **适用场景**:代理 LLM 调用的后端服务
- **特点**:OpenAI 兼容 API,支持流式响应
- **详细指南**:见 `references/server.md`
## 常用配置
### 主题配置
GenuiChat / GenuiRenderer 集成通过 `GenuiConfigProvider` 配置主题:
- `'dark'` - 深色主题
- `'lite'` - 清新主题
- `'light'` - 浅色主题(默认)
- `'auto'` - 跟随浏览器偏好
详细用法见各参考文件。
### 自定义组件和动作
SDK 支持扩展:
- **自定义组件**:让 AI 使用你的业务组件
- **自定义动作**:定义 AI 可以触发的交互(导航类 action 如 openPage 须做 URL 白名单校验)
详细配置和示例见 `examples/` 目录下的相关文档。
## 下一步指导
阅读相应的参考文件后,为用户提供:
1. **安装命令**(针对他们的包管理器:npm/pnpm/yarn)
2. **针对其场景的分步集成指南**
3. **可以复制并适配的完整工作示例**
4. **常见用例的配置技巧**
5. **高级功能的额外文档链接**(指向 `examples/` 目录和 `references/materials/` 物料选型)
记住要:
- 解释**为什么**需要某些配置,而不仅仅是做什么
- 提供何时使用不同模式的上下文
- 强调常见陷阱(如当前版集成忘记注入物料;Legacy 路径则无需 ConfigProvider)
- 主动提供帮助以满足特定定制需求
- 引导用户查看 `examples/` 目录获取更多示例
GitHubで見る