🌟 引言:为什么 AI 应用需要“专用前端框架”?

当大模型能力逐渐普及,真正的瓶颈已从“有没有 AI”转向“好不好用”。

很多团队尝试在现有系统中“加一个聊天框”,结果发现:

  • 对话孤立,无法感知业务上下文;
  • 返回内容不可操作,用户仍需手动复制粘贴;
  • 界面风格割裂,破坏原有产品体验;
  • 缺乏加载状态、错误处理、快捷引导等细节,用户不知如何使用。

问题根源在于:通用 UI 框架(如 Element Plus、Ant Design)并非为 GenAI 场景设计

而 MateChat 的出现,正是为了解决这一痛点——它不是简单的聊天组件,而是一套 面向生成式 AI 的前端交互语言
同时,DevUI 作为华为云出品的企业级 UI 解决方案,为 MateChat 提供了专业、一致、可扩展的视觉基座

本文将带你从零开始,构建一个 “以 MateChat 为核心交互引擎、DevUI 为 UI 支撑体系” 的企业级 AI 应用。


一、架构设计:MateChat + DevUI 的分工与协同

模块 职责 技术选型
交互核心 定义对话流程、消息格式、输入输出行为 ✅ MateChat@matechat/core
UI 基座 提供按钮、表格、布局、主题、响应式等基础能力 ✅ DevUIvue-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-gridd-flex 实现多端适配;
  • 所有 DevUI 组件默认支持键盘导航、ARIA 标签,满足企业无障碍要求。

3.3 高性能与稳定性

  • DevUI 表格支持虚拟滚动,避免 AI 返回长列表时卡顿;
  • 按钮、弹窗等组件经过华为内部亿级流量验证,稳定性有保障。

3.4 与现有系统无缝融合

如果你已有基于 DevUI 的管理后台,只需:

  1. 在侧边栏增加“AI 助手”入口;
  2. 复用现有 d-layoutd-header 结构;
  3. 插入 MateChat 对话区域。

即可实现 “AI 能力无感嵌入”,无需重构整个前端。


四、真实案例:InsCode AI IDE 的前端架构

InsCode AI IDE 是 CSDN、GitCode 与华为云联合推出的 AI 编程环境,其前端正是 “MateChat + DevUI” 架构的典型代表

  • 智能问答面板:使用 McLayout + McBubble 构建;
  • 代码生成区域:返回内容自动识别为代码块,支持一键插入编辑器;
  • 整体 IDE 界面:基于 DevUI 的 TabsSplitPaneToolbar 实现;
  • 主题同步:IDE 暗色模式 → MateChat 自动切换暗色气泡。

该项目证明:该架构完全适用于 高复杂度、高实时性、强交互性 的专业工具场景。


五、总结:为什么这是企业 AI 应用的最佳实践?

维度 优势
开发效率 MateChat 提供开箱即用的 AI 交互组件,减少 70% 重复开发
体验一致性 DevUI 保证 AI 界面与主系统风格统一,避免“两张皮”
可维护性 交互逻辑(MateChat)与 UI 基础(DevUI)解耦,便于升级
扩展性 支持自定义气泡内容、快捷指令、多模态输入等创新场景
企业合规 DevUI 满足安全、无障碍、多语言等企业级要求

📌 学习资源 & 快速上手

💡 推荐学习路径

  1. 克隆 MateChat 仓库,运行 pnpm run docs:dev 查看组件示例;
  2. 参考 playground 目录下的 Vue 示例项目;
  3. 在自己的 DevUI 项目中逐步集成 McBubbleMcInput
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐