Ant Design X of React
@ant-design/x 是遵循 Ant Design 设计体系的一个 React UI 库,用于构建由 AI 驱动的界面,一键接入智能对话组件与 API 服务。

✨ 特性
🌈 源自企业级 AI 产品的最佳实践:基于 RICH 交互范式,提供卓越的 AI 交互体验
🧩 灵活多样的原子组件:覆盖绝大部分 AI 对话场景,助力快速构建个性化 AI 交互页面
⚡ 开箱即用的模型对接能力:轻松对接符合 OpenAI 标准的模型推理服务
🔄 高效管理对话数据流:提供好用的数据流管理功能,让开发更高效
📦 丰富的样板间支持:提供多种模板,快速启动 LUI 应用开发
🛡 TypeScript 全覆盖:采用 TypeScript 开发,提供完整类型支持,提升开发体验与可靠性
🎨 深度主题定制能力:支持细粒度的样式调整,满足各种场景的个性化需求
安装
使用 npm 或 yarn 或 pnpm 或 bun 安装
我们推荐使用 npm 或 yarn 或 pnpm 或 bun 的方式进行开发,不仅可在开发环境轻松调试,也可放心地在生产环境打包部署使用,享受整个生态圈和工具链带来的诸多好处。
$ npm install @ant-design/x --save
如果你的网络环境不佳,推荐使用 cnpm。
浏览器引入
在浏览器中使用 script 和 link 标签直接引入文件,并使用全局变量 antdx。
我们在 npm 发布包内的 dist 目录下提供了 antdx.js、antdx.min.js 和 antdx.min.js.map。
强烈不推荐使用已构建文件,这样无法按需加载,而且难以获得底层依赖模块的 bug 快速修复支持。
注意:antdx.js 和 antdx.min.js 依赖 react、react-dom、dayjs,请确保提前引入这些文件。
🧩 原子组件
我们基于 RICH 交互范式,在不同的交互阶段提供了大量的原子组件,帮助你灵活搭建你的 AI 对话应用:
通用: Bubble - 消息气泡、Conversations - 会话管理
唤醒: Welcome - 欢迎、Prompts - 提示集
表达: Sender - 发送框、Attachment - 附件、Suggestion - 快捷指令
确认: ThoughtChain - 思维链
下面是使用原子组件搭建一个最简单的对话框的代码示例:
import React from 'react';
import {
// 消息气泡
Bubble,
// 发送框
Sender,
} from '@ant-design/x';
const messages = [
{
content: 'Hello, Ant Design X!',
role: 'user',
},
];
const App = () => (
<div>
<Bubble.List items={messages} />
<Sender />
</div>
);
export default App;
⚡️ 对接模型推理服务
我们通过提供 useXAgent 运行时工具,帮助你开箱即用的对接符合 OpenAI 标准的模型推理服务。
下面是如何使用 useXAgent 的代码示例:
import React from 'react';
import { useXAgent, Sender } from '@ant-design/x';
const App = () => {
const [agent] = useXAgent({
// 模型推理服务地址
baseURL: 'https://your.api.host',
// 模型名称
model: 'gpt-3.5',
});
function chatRequest(text: string) {
agent.request({
// 消息
messages: [
{
content: text,
role: 'user',
},
],
// 开启流式
stream: true,
});
}
return <Sender onSubmit={chatRequest} />;
};
export default App;
🔄 高效管理数据流
我们通过提供 useXChat 运行时工具,帮助你开箱即用的管理 AI 对话应用的数据流:
import React from 'react';
import { useXChat, useXAgent } from '@ant-design/x';
const App = () => {
const [agent] = useXAgent({
// 模型推理服务地址
baseURL: 'https://your.api.host',
// 模型名称
model: 'gpt-3.5',
});
const {
// 发起聊天请求
onRequest,
// 消息列表
messages,
} = useXChat({ agent });
return (
<div>
<Bubble.List items={messages} />
<Sender onSubmit={onRequest} />
</div>
);
};
export default App;
按需加载
@ant-design/x 默认支持基于 ES modules 的 tree shaking。
TypeScript
@ant-design/x 使用 TypeScript 进行书写并提供了完整的定义文件。
谁在使用
Ant Design X 广泛用于蚂蚁集团内由 AI 驱动的用户交互界面。如果你的公司和产品使用了 Ant Design X,欢迎到 这里 留言。
如何贡献
在任何形式的参与前,请先阅读 贡献者文档。如果你希望参与贡献,欢迎提交 Pull Request,或给我们 报告 Bug。
强烈推荐阅读 《提问的智慧》、《如何向开源社区提问题》 和 《如何有效地报告 Bug》、《如何向开源项目提交无法解答的问题》,更好的问题更容易获得帮助。
社区互助
如果您在使用的过程中碰到问题,可以通过下面几个途径寻求帮助,同时我们也鼓励资深用户通过下面的途径给新人提供帮助。
通过 GitHub Discussions 提问时,建议使用 Q&A 标签。
推荐阅读
(点击标题可跳转阅读)
[极客前沿]-你不知道的 React 18 新特性
[极客前沿]-写给前端的 K8s 上手指南
[极客前沿]-写给前端的Docker上手指南
[面试必问]-你不知道的 React Hooks 那些糟心事
[面试必问]-一文彻底搞懂 React 调度机制原理
[面试必问]-一文彻底搞懂 React 合成事件原理
[面试必问]-全网最简单的React Hooks源码解析
[面试必问]-一文掌握 Webpack 编译流程
[面试必问]-全网最全 React16.0-16.8 特性总结
[架构分享]- 微前端qiankun+docker+nginx自动化部署[自我提升]-送给React开发者十九条性能优化建议
[大前端之路]-连前端都看得懂的《Nginx 入门指南》
[软实力提升]-金三银四,如何写一份面试官心中的简历
觉得本文对你有帮助?请分享给更多人
关注「React中文社区」加星标,每天进步
“在看和转发”就是最大的支持