前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >Ant Design X专为 AI 应用设计的 UI 框架,正式发布!

Ant Design X专为 AI 应用设计的 UI 框架,正式发布!

原创
作者头像
一起重学前端
发布2024-11-29 10:41:24
发布2024-11-29 10:41:24
7870
举报

“好事”文章推荐:《从输入 URL 到浏览器呈现页面的整体流程》

文章地址:https://cloud.tencent.com/developer/article/2471893

好文介绍:文章讲述了浏览器接收到网站地址后,经历URL解析、缓存、DNS解析、建立TCP🔗、发送http请求、服务器处理请求并响应、浏览器接收返回并解析、页面渲染八个步骤,了解这些步骤有利于开发从各个部分去做页面加载性能优化。

前言

Ant Design X 是基于RICH,延续熟悉的 Ant Design 设计语言,全新 AGI 混合界面(Hybrid-UI)解决方案,完美融合 GUI 和自然会话交互。从唤醒到表达,从过程到反馈,合适的组件恰当的呈现在所有的人机互动过程中。是一套AI界面解决方案

Ant Design X

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 或 cnpm 安装

代码语言:bash
复制
npm install @ant-design/x --save

原子组件

我们基于 RICH 交互范式,在不同的交互阶段提供了大量的原子组件,帮助你灵活搭建你的 AI 对话应用:

  • 通用: Bubble - 消息气泡、Conversations - 会话管理
  • 唤醒: Welcome - 欢迎、Prompts - 提示集
  • 表达: Sender - 发送框、Attachment - 附件、Suggestion - 快捷指令
  • 确认: ThoughtChain - 思维链
Bubble - 消息气泡

Bubble结合markdown-it 实现打字机效果

代码语言:tsx
复制
import { UserOutlined } from '@ant-design/icons';
import { Bubble } from '@ant-design/x';
import type { BubbleProps } from '@ant-design/x';
import { Typography } from 'antd';
import markdownit from 'markdown-it';
/* eslint-disable react/no-danger */
import React from 'react';

const md = markdownit({ html: true, breaks: true });

const text = `
> Render as markdown content to show rich text!

Link: [Ant Design X](https://x.ant.design)
`.trim();

const renderMarkdown: BubbleProps['messageRender'] = (content) => (
  <Typography>
    {/* biome-ignore lint/security/noDangerouslySetInnerHtml: used in demo */}
    <div dangerouslySetInnerHTML={{ __html: md.render(content) }} />
  </Typography>
);

const App = () => {
  const [renderKey, setRenderKey] = React.useState(0);

  React.useEffect(() => {
    const id = setTimeout(
      () => {
        setRenderKey((prev) => prev + 1);
      },
      text.length * 100 + 2000,
    );

    return () => {
      clearTimeout(id);
    };
  }, [renderKey]);

  return (
    <div style={{ height: 100 }} key={renderKey}>
      <Bubble
        typing
        content={text}
        messageRender={renderMarkdown}
        avatar={{ icon: <UserOutlined /> }}
      />
    </div>
  );
};

export default App;
Sender - 发送框

基础示例,Sender还支持loading状态语音输入粘贴图片等等

代码语言:tsx
复制
import React, { useState } from 'react';
import './index.css';
import { Sender } from '@ant-design/x';
import { App, Flex } from 'antd';


const Demo: React.FC = () => {
  const [value, setValue] = useState<string>('Hello? this is X!');
  const [loading, setLoading] = useState<boolean>(false);

  const { message } = App.useApp();

  // Mock send message
  React.useEffect(() => {
    if (loading) {
      const timer = setTimeout(() => {
        setLoading(false);
        message.success('Send message successfully!');
      }, 3000);
      return () => {
        clearTimeout(timer);
      };
    }
  }, [loading]);

  return (
    <Flex vertical gap="middle">
      <Sender
        loading={loading}
        value={value}
        onChange={(v) => {
          setValue(v);
        }}
        onSubmit={() => {
          setValue('');
          setLoading(true);
          message.info('Send message!');
        }}
        onCancel={() => {
          setLoading(false);
          message.error('Cancel sending!');
        }}
      />
      <Sender value="Force as loading" loading readOnly />
      <Sender disabled value="Set to disabled" />
    </Flex>
  );
};

export default () => (
  <App>
    <Demo />
  </App>
);

使用useXAgent对接模型

Ant Design X通过提供 useXAgent 运行时工具,帮助你开箱即用的对接符合 OpenAI 标准的模型推理服务。

代码语言:tsx
复制
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高效管理数据流

代码语言:tsx
复制
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 作为一款专注于 AI 应用的 UI 框架,为开发者提供了完善的组件库和工具支持,简化了界面开发的流程。从设计到集成,从交互到定制,Ant Design X 提供了多种解决方案,适合不同规模和复杂度的项目需求。

如果你正在从事 AI 应用开发,Ant Design X 是一个值得尝试的选择。它能够帮助你更高效地完成界面设计和开发工作,让你的产品更快地面向用户。

Ant Design X 官方文档:https://x.ant.design/index-cn

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • Ant Design X
    • Ant Design X of React
    • ✨ 特性
    • 安装
    • 原子组件
      • Bubble - 消息气泡
      • Sender - 发送框
    • 使用useXAgent对接模型
    • 使用useXChat高效管理数据流
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档