开箱即用,阿里开源!专业AI 聊天界面工具包:Ant Design X

Ant Design X是一个基于Ant Design体系的创新解决方案,为构建高效的AI交互界面提供了便利和支持。从精细的原子组件到快速集成的模型服务,Ant Design X让开发者能轻松应对各种需求。本文将结合实际场景,展示Ant Design X的功能与使用方法。


为何选择Ant Design X?

核心优势

  • 🌟 企业级最佳实践:基于RICH交互范式,优化AI交互体验,满足企业级需求。
  • 🌈 灵活多样的原子组件:覆盖大多数AI对话场景,助力快速搭建个性化界面。
  • ⚡ 开箱即用的模型集成:支持对接符合OpenAI标准的模型推理服务,简化开发流程。
  • 🔄 高效的数据流管理:提供强大的数据流管理工具,提高开发效率。
  • 🎨 深度主题定制:支持细粒度的样式调整,满足多样化和个性化需求。

快速安装与导入

通过以下命令安装Ant Design X:

npm install @ant-design/x --save
yarn add @ant-design/x
pnpm add @ant-design/x

浏览器引入

在浏览器中使用时,可以通过<script><link>标签直接引入文件,并使用全局变量antdx

<script src="antd.min.js"></script>
<link rel="stylesheet" href="antd.min.css">

注意:不推荐使用已构建的文件方式,因为这样无法按需加载模块,同时难以快速获得底层依赖的Bug修复支持。


核心功能与场景示例

1. 原子组件:快速构建对话界面

Ant Design X基于RICH交互范式,提供了大量的原子组件。以下是一个简单对话框的示例代码:

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;

2. 模型集成:轻松对接AI推理服务

Ant Design X提供了useXAgentXRequest等工具,帮助开发者快速对接标准化的模型推理服务。以下是一个对接Qwen模型的示例:

import { useXAgent, Sender, XRequest } from '@ant-design/x';
import React from 'react';const { create } = XRequest({baseURL: 'https://dashscope.aliyuncs.com/compatible-mode/v1',dangerouslyApiKey: process.env['DASHSCOPE_API_KEY'],model: 'qwen-plus',
});const Component: React.FC = () => {const [agent] = useXAgent({request: async (info, callbacks) => {const { messages, message } = info;const { onUpdate } = callbacks;let content: string = '';try {create({messages: [{ role: 'user', content: message }],stream: true,},{onSuccess: (chunks) => {console.log('sse chunk list', chunks);},onError: (error) => {console.log('error', error);},onUpdate: (chunk) => {console.log('sse object', chunk);const data = JSON.parse(chunk.data);content += data?.choices[0].delta.content;onUpdate(content);},},);} catch (error) {// handle error}},});function onRequest(message: string) {agent.request({ message },{onUpdate: () => {},onSuccess: () => {},onError: () => {},},);}return <Sender onSubmit={onRequest} />;
};export default Component;

3. 数据流管理:高效处理对话数据

通过useXChat工具,可以轻松管理AI对话应用中的数据流。以下是一个对接OpenAI服务的示例:

import { useXAgent, useXChat, Sender, Bubble } from '@ant-design/x';
import OpenAI from 'openai';
import React from 'react';const client = new OpenAI({apiKey: process.env['OPENAI_API_KEY'],dangerouslyAllowBrowser: true,
});const Demo: React.FC = () => {const [agent] = useXAgent({request: async (info, callbacks) => {const { messages, message } = info;const { onSuccess, onUpdate, onError } = callbacks;let content: string = '';try {const stream = await client.chat.completions.create({model: 'gpt-4o',messages: [{ role: 'user', content: message }],stream: true,});for await (const chunk of stream) {content += chunk.choices[0]?.delta?.content || '';onUpdate(content);}onSuccess(content);} catch (error) {// handle error}},});const {onRequest,messages,} = useXChat({ agent });const items = messages.map(({ message, id }) => ({key: id,content: message,}));return (<div><Bubble.List items={items} /><Sender onSubmit={onRequest} /></div>);
};export default Demo;

总结

Ant Design X通过其强大的原子组件库、便捷的模型集成工具以及高效的数据流管理能力,为开发者提供了快速构建AI驱动界面的全方位支持。不论是构建简单的对话应用,还是实现复杂的交互逻辑,Ant Design X都是一个值得信赖的选择。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/483216.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Shire 1.1 发布:更强大的交互支持,升级 AI 智能体与 IDE 的整合体验

在经过多个项目上的试用后&#xff0c;我们进入了持续的修修补补&#xff0c;以及功能的增强阶段。终于&#xff0c;我们发布了 Shire 1.1 版本&#xff0c;这个版本带来了更强大的交互支持&#xff0c; 多功能升级 AI 与 IDE 的整合体验。 交互&#xff1a;丰富与大量 IDE 插件…

Springboot(四十九)SpringBoot3整合jetcache缓存

上文中我们学习了springboot中缓存的基本使用。缓存分为本地caffeine缓存和远程redis缓存。现在有一个小小的问题,我想使用本地caffeine缓存和远程redis缓存组成二级缓存。还想保证他们的一致性,这个事情该怎么办呢? Jetcache框架为我们解决了这个问题。 ‌JetCache‌是一个…

学习笔记052——Spring Boot 自定义 Starter

文章目录 Spring Boot 自定义 Starter1、自定义一个要装载的项目2、创建属性读取类 ServiceProperties3、创建 Service4、创建自动配置类 AutoConfigration5、创建 spring 工程文件6、将项目打成 jar 包7、jar 打包到本地仓库8、配置application.yml Spring Boot 自定义 Starte…

专业清洁艺术,还原生活本色——友嘉高效除菌洗碗机

生活中&#xff0c;每个人都渴望拥有一份洁净的生活环境。而家&#xff0c;作为我们最温馨的港湾&#xff0c;对洁净的追求更是无时无刻不在进行。每当饭后的欢声笑语过后&#xff0c;面对一堆沾满油渍、藏匿着细菌的餐具&#xff0c;我们不禁感到一丝烦忧。然而&#xff0c;有…

C++类与对象(二)

一、默认成员函数 class A{}; 像上面一样&#xff0c;一个什么都没有的类叫做空类&#xff0c;但是这个什么都没有并不是真正的什么都没有&#xff0c;只是我们看不见&#xff0c;空类里面其实是有6个默认成员函数的&#xff0c;当我们在类里面什么都不写的时候&#xff0c;编译…

PHP RabbitMQ连接超时问题

问题背景 Error: The connection timed out after 3 sec while awaiting incoming data 看到这个报错&#xff0c;我不以为意&#xff0c;认为是我设置的超时时间不够导致的&#xff0c;那就设置长一点 Error: The connection timed out after 300 sec while awaiting incom…

在21世纪的我用C语言探寻世界本质——字符函数和字符串函数(2)

人无完人&#xff0c;持之以恒&#xff0c;方能见真我&#xff01;&#xff01;&#xff01; 共同进步&#xff01;&#xff01; 文章目录 一、strncpy函数的使用二、strncat函数的使用三、strncmp函数的使用四、strstr的使用和模拟实现五、strtok函数的使用六、strerror和perr…

使用CertD全自动申请和部署SSL证书至服务器

1. Certd简介 Certd是一个开源的证书生命周期管理系统&#xff0c;专注于帮助开发者和组织更加便捷、安全地管理他们的数字证书。无论是在小型个人项目中还是大型企业环境中&#xff0c;Certd都能提供强大的功能&#xff0c;确保您的HTTPS服务始终处于安全状态。 1.1. 技术分…

uniapp实现加密Token并在每次请求前动态更新(vue、微信小程序、原生js也通用!)

导语&#xff1a;在Web开发中&#xff0c;Token作为一种身份验证的机制&#xff0c;被广泛应用于前后端交互过程中。本文将为大家介绍如何在每次请求前动态设置加密的Token&#xff0c;并在请求一次后使Token值加1&#xff08;或其他动态改变的逻辑&#xff09;&#xff0c;从而…

idea打jar包或引入包

一&#xff0c;通过Maven的方式打jar包 将相要打包的依赖写入到pom.xml文件中&#xff0c;如下所示&#xff1a; 然后使用打包命令&#xff1a; maven package 就能按照pom.xml中设置的打包了。 二&#xff0c;通过idea打包 前段时间遇到一个情况是使用Maven打包的时候src主程…

uniapp在App端引用echarts组件,解决无法渲染formatter问题

在App端option里面直接写上formatter&#xff0c;是无法执行方法的。 解决办法&#xff1a; 需要在echarts组件里面给options再重新赋值 效果图

pytest(二)excel数据驱动

一、excel数据驱动 excel文件内容 excel数据驱动使用方法 import openpyxl import pytestdef get_excel():excel_obj openpyxl.load_workbook("../pytest结合数据驱动-excel/data.xlsx")sheet_obj excel_obj["Sheet1"]values sheet_obj.valuescase_li…

ubuntu 和windows时区设置和时间修改

windows 时区设置 查看当前时区 tzutil /g 列出可选的时区&#xff0c;参考 时区列表备份 tzutil /l 设置时区 tzutil /s "China Standard Time" 修改日期和时间&#xff0c;直接输入date或者time修改 ubuntu 时区设置 timedatectl指令列表&#xff1a;list-timez…

卷积神经网络(CNN)的层次结构

卷积神经网络&#xff08;CNN&#xff09;是一种以其处理图像和视频数据的能力而闻名的深度学习模型&#xff0c;其基本结构通常包括以下几个层次&#xff0c;每个层次都有其特定的功能和作用&#xff1a; 1. 输入层&#xff08;Input Layer&#xff09;&#xff1a; 卷积神经网…

图像与文字的创意融合:使用Python进行视觉艺术创作

原图&#xff1a; 处理过的&#xff1a; import cv2 import numpy as np from PIL import Image, ImageDraw, ImageFont import os# 字体文件路径 vfont ./fonts/方正像素字体.ttfdef text_paint(img_path, text, font_path, font_size):# 使用 OpenCV 加载图片img cv2.i…

【Markdown编辑器】

Markdown编辑器 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个注脚注…

Vue 90 ,Element 13 ,Vue + Element UI 中 el-switch 使用小细节解析,避免入坑(获取后端的数据类型自动转变)

目录 前言 在开发过程中&#xff0c;我们经常遇到一些看似简单的问题&#xff0c;但有时正是这些细节问题让我们头疼不已。今天&#xff0c;我就来和大家分享一个我在开发过程中遇到的 el-switch 使用的小坑&#xff0c;希望大家在使用时能够避免。 一. 问题背景 二. 问题分…

el-select 修改样式

这样漂亮的页面&#xff0c;搭配的却是一个白色风格的下拉框 &#xff0c;这也过于刺眼。。。 调整后样式为&#xff1a; 灯红酒绿总有人看着眼杂&#xff0c;但将风格统一终究是上上选择。下面来处理这个问题。 分为两部分。 第一部分&#xff1a;是修改触发框的样式 第二部…

柔性数组详解+代码展示

系列文章目录 &#x1f388; &#x1f388; 我的CSDN主页:OTWOL的主页&#xff0c;欢迎&#xff01;&#xff01;&#xff01;&#x1f44b;&#x1f3fc;&#x1f44b;&#x1f3fc; &#x1f389;&#x1f389;我的C语言初阶合集&#xff1a;C语言初阶合集&#xff0c;希望能…

【测试工具JMeter篇】JMeter性能测试入门级教程(七):JMeter断言

一、前言 在 JMeter 中&#xff0c;断言元件&#xff08;Assertion&#xff09;用于验证测试结果是否符合预期。断言元件可以检查服务器的响应数据&#xff0c;以确保它们符合期望的模式或值&#xff0c;从而验证性能测试脚本的正确性。断言元件通常在每个请求的响应中添加&am…