以 MateChat 为核心、DevUI 为支撑:打造企业级 AI 智能前端的完整实践
🌟 引言:为什么 AI 应用需要“专用前端框架”?
当大模型能力逐渐普及,真正的瓶颈已从“有没有 AI”转向“好不好用”。
很多团队尝试在现有系统中“加一个聊天框”,结果发现:
- 对话孤立,无法感知业务上下文;
- 返回内容不可操作,用户仍需手动复制粘贴;
- 界面风格割裂,破坏原有产品体验;
- 缺乏加载状态、错误处理、快捷引导等细节,用户不知如何使用。
问题根源在于:通用 UI 框架(如 Element Plus、Ant Design)并非为 GenAI 场景设计。
而 MateChat 的出现,正是为了解决这一痛点——它不是简单的聊天组件,而是一套 面向生成式 AI 的前端交互语言。
同时,DevUI 作为华为云出品的企业级 UI 解决方案,为 MateChat 提供了专业、一致、可扩展的视觉基座。
本文将带你从零开始,构建一个 “以 MateChat 为核心交互引擎、DevUI 为 UI 支撑体系” 的企业级 AI 应用。
一、架构设计:MateChat + DevUI 的分工与协同
| 模块 | 职责 | 技术选型 |
|---|---|---|
| 交互核心 | 定义对话流程、消息格式、输入输出行为 | ✅ MateChat(@matechat/core) |
| UI 基座 | 提供按钮、表格、布局、主题、响应式等基础能力 | ✅ DevUI(vue-devui) |
| 业务集成 | 绑定上下文、调用后端 API、执行操作 | 自定义逻辑 |
| 模型对接 | 连接大模型服务(盘古、通义、OpenAI 等) | openai / 自研 SDK |
💡 核心思想:
- MateChat 负责“说什么、怎么问、如何回应”;
- DevUI 负责“看起来专业、用起来流畅、适配企业品牌”。
二、核心实践:用 MateChat 构建智能交互层
2.1 初始化 MateChat 项目
npm create vite@latest ai-app -- --template vue-ts
cd ai-app
npm install @matechat/core @devui-design/icons vue-devui
在 main.ts 中同时引入两者:
import { createApp } from 'vue';
import App from './App.vue';
// ✅ MateChat:智能交互核心
import MateChat from '@matechat/core';
// ✅ DevUI:企业级 UI 基座
import DevUI from 'vue-devui';
import 'vue-devui/style.css';
import '@devui-design/icons/icomoon/devui-icon.css';
const app = createApp(App);
app.use(MateChat); // 注册 McBubble、McInput 等组件
app.use(DevUI); // 注册 d-button、d-card 等组件
app.mount('#app');
⚠️ 注意:MateChat 依赖 DevUI 的图标和部分样式,因此必须同时引入。
2.2 使用 MateChat 组件搭建对话界面
<template>
<!-- ✅ 使用 DevUI 构建整体布局 -->
<d-card class="ai-container">
<d-card-header>
<div class="header-left">
<img src="https://matechat.gitcode.com/logo.svg" alt="AI" width="24" />
<span>智能助手</span>
</div>
<d-button icon="op-refresh" size="sm" @click="newChat">新建对话</d-button>
</d-card-header>
<!-- ✅ 使用 MateChat 渲染对话内容 -->
<div class="chat-content">
<McBubble
v-for="(msg, idx) in messages"
:key="idx"
:content="msg.content"
:align="msg.role === 'user' ? 'right' : 'left'"
:avatarConfig="getAvatar(msg.role)"
:loading="msg.loading"
/>
</div>
<!-- ✅ 使用 MateChat 输入区域 + DevUI 按钮增强 -->
<div class="chat-footer">
<McInput
v-model="inputValue"
:maxLength="2000"
placeholder="请输入问题(支持 @智能体、上传文件)"
@submit="handleSubmit"
>
<template #extra>
<div class="input-extra">
<span><i class="icon-at"></i> 智能体</span>
<span><i class="icon-standard"></i> 知识库</span>
<span class="counter">{{ inputValue.length }}/2000</span>
</div>
</template>
</McInput>
<d-button
type="primary"
:disabled="!inputValue.trim()"
@click="handleSubmit"
style="margin-left: 8px"
>
发送
</d-button>
</div>
</d-card>
</template>
🔍 关键点:
- 整体容器使用
d-card(DevUI)保证风格统一;- 对话气泡使用
McBubble(MateChat)支持 Markdown、代码高亮、加载状态;- 输入区域使用
McInput(MateChat),但“发送”按钮用d-button(DevUI)保持样式一致。
2.3 实现上下文感知与可执行响应
场景:用户在“项目详情页”点击“问 AI”
// 获取当前业务上下文
const currentContext = {
projectId: route.params.id,
projectName: project.name,
recentActions: userActions.slice(-5)
};
// 发起带上下文的请求
const response = await aiService.ask({
query: inputValue.value,
context: currentContext,
tools: ['createTask', 'queryDoc', 'generateCode'] // 声明可用工具
});
后端返回可执行指令:
{
"content": "已为您创建任务「修复登录页样式」",
"action": {
"type": "navigate",
"payload": { "path": "/task/123" }
}
}
前端解析并渲染:
<McBubble :content="msg.content">
<template #actions>
<d-button type="link" @click="router.push('/task/123')">
查看任务
</d-button>
</template>
</McBubble>
✅ 效果:AI 不仅回答问题,还能驱动业务流程,真正成为“协作者”。
三、DevUI 如何为 MateChat 提供企业级支撑?
虽然 MateChat 定义了交互逻辑,但最终呈现仍需专业 UI。DevUI 在以下方面提供关键支持:
3.1 主题与品牌定制
企业通常要求 AI 助手符合品牌色:
/* 通过 DevUI 主题变量统一控制 */
:root {
--devui-brand: #5e7ce0; /* 华为主色,也用于 MateChat 气泡边框 */
}
MateChat 内部自动读取 --devui-brand,无需额外配置。
3.2 响应式与无障碍
- 使用
d-grid、d-flex实现多端适配; - 所有 DevUI 组件默认支持键盘导航、ARIA 标签,满足企业无障碍要求。
3.3 高性能与稳定性
- DevUI 表格支持虚拟滚动,避免 AI 返回长列表时卡顿;
- 按钮、弹窗等组件经过华为内部亿级流量验证,稳定性有保障。
3.4 与现有系统无缝融合
如果你已有基于 DevUI 的管理后台,只需:
- 在侧边栏增加“AI 助手”入口;
- 复用现有
d-layout、d-header结构; - 插入 MateChat 对话区域。
即可实现 “AI 能力无感嵌入”,无需重构整个前端。
四、真实案例:InsCode AI IDE 的前端架构
InsCode AI IDE 是 CSDN、GitCode 与华为云联合推出的 AI 编程环境,其前端正是 “MateChat + DevUI” 架构的典型代表:
- 智能问答面板:使用
McLayout+McBubble构建; - 代码生成区域:返回内容自动识别为代码块,支持一键插入编辑器;
- 整体 IDE 界面:基于 DevUI 的
Tabs、SplitPane、Toolbar实现; - 主题同步:IDE 暗色模式 → MateChat 自动切换暗色气泡。
该项目证明:该架构完全适用于 高复杂度、高实时性、强交互性 的专业工具场景。
五、总结:为什么这是企业 AI 应用的最佳实践?
| 维度 | 优势 |
|---|---|
| 开发效率 | MateChat 提供开箱即用的 AI 交互组件,减少 70% 重复开发 |
| 体验一致性 | DevUI 保证 AI 界面与主系统风格统一,避免“两张皮” |
| 可维护性 | 交互逻辑(MateChat)与 UI 基础(DevUI)解耦,便于升级 |
| 扩展性 | 支持自定义气泡内容、快捷指令、多模态输入等创新场景 |
| 企业合规 | DevUI 满足安全、无障碍、多语言等企业级要求 |
📌 学习资源 & 快速上手
- 🔗 DevUI 官网 —— 文档、Demo、设计规范
- 🔗 MateChat —— 源码、Issue、贡献指南
- 🔗 MateChat 官网 —— 快速入门、组件预览
💡 推荐学习路径:
- 克隆 MateChat 仓库,运行
pnpm run docs:dev查看组件示例;- 参考
playground目录下的 Vue 示例项目;- 在自己的 DevUI 项目中逐步集成
McBubble、McInput。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)