当前位置: 首页 > news >正文

华为云建设网站需要域名吗律师个人网站有用吗

华为云建设网站需要域名吗,律师个人网站有用吗,高端网站制作怎么样,陌陌引流推广软件文章目录 实现的效果前言Ant Design X添加欢迎组件创建对话气泡存储对话历史渲染对话气泡 输入组件WebSocket 连接总结 实现的效果 待机页面: 等待页面: 完成页面: 前言 随着人工智能技术的飞速发展,大模型对话系统已成为…

文章目录

    • 实现的效果
    • 前言
    • Ant Design X
    • 添加欢迎组件
      • 创建对话气泡
      • 存储对话历史
      • 渲染对话气泡
    • 输入组件
    • WebSocket 连接
    • 总结

实现的效果

  • 待机页面
    待机页面

  • 等待页面
    等待页面

  • 完成页面
    完成页面

前言

随着人工智能技术的飞速发展,大模型对话系统已成为许多应用的核心组件。为了提供一个高效、智能且用户友好的对话界面,我们开发了一款基于 Vite、React 和 Ant Design X 的大模型对话前端页面。该系统能够实时与后端的大模型进行通信,为用户提供流畅的对话体验。

本文主要介绍前端页面部分,后端大模型 DeepSeek 的对接请移步至深度集成 DeepSeek 大模型。

Ant Design X

Ant Design X 是一个遵循 Ant Design 设计体系的 React UI 库,专为构建由 AI 驱动的界面而设计,支持一键接入智能对话组件与 API 服务。

  • 源自企业级 AI 产品的最佳实践:基于 RICH 交互范式,提供卓越的 AI 交互体验。
  • 灵活多样的原子组件:覆盖绝大部分 AI 对话场景,助力快速构建个性化 AI 交互页面。
  • 开箱即用的模型对接能力:轻松对接符合 OpenAI 标准的模型推理服务。
  • 高效管理对话数据流:提供好用的数据流管理功能,让开发更高效。
  • 丰富的样板间支持:提供多种模板,快速启动 LUI 应用开发。
  • TypeScript 全覆盖:采用 TypeScript 开发,提供完整类型支持,提升开发体验与可靠性。
  • 深度主题定制能力:支持细粒度的样式调整,满足各种场景的个性化需求。

添加欢迎组件

在用户首次访问时,显示欢迎组件以介绍应用。

<Welcomeicon="https://mdn.alipayobjects.com/huamei_iwk9zp/afts/img/A*s5sNRo5LjfQAAAAAAAAAAAAADgCCAQ/fmt.webp"title="Hello, I'm Ant Design X"description="Based on Ant Design, AGI product interface solution, create a better intelligent vision~"
/>

创建对话气泡

使用 Bubble 组件来存储和渲染对话历史。

存储对话历史

对话历史以对象数组的形式存储,每个对象包含 contentrole 属性。

// 存储对话历史
// 内容格式为 { content: '', role: 'assistant' } / { content: '', role: 'user' }
const [history, setHistory] = useState([]);

渲染对话气泡

根据消息的角色(用户或助手)渲染不同的对话气泡。

{history.map((item, index) => {if (item.role === 'user') {return (<Bubblekey={index}style={{ marginBottom: 8 }}placement="end"content={item.content}messageRender={renderMarkdown}avatar={{ icon: <UserOutlined />, style: fooAvatar }}/>);} else if (item.role === 'assistant') {return (<Bubblekey={index}loading={(index === history.length - 1) && loading}style={{ marginBottom: 8, maxWidth: '80%' }}placement="start"content={item.content}messageRender={renderMarkdown}avatar={{ icon: <RobotOutlined />, style: robotAvatar }}/>);}})
}

输入组件

使用 Sender 组件来处理用户输入和消息发送。

<Senderloading={loading}value={inputMsg}style={{ position: 'absolute', bottom: '10px', right: '10px', left: '10px', width: 'auto' }}onChange={(v) => {setInputMsg(v);}}onSubmit={() => {setHistory((prevHistory) => [...prevHistory, { content: inputMsg, role: 'user' }]);sendMsg();setInputMsg('');setLoading(true);}}onCancel={() => {// 取消发送消息时的处理逻辑(如果有需要)}}
/>

WebSocket 连接

使用 WebSocket 协议与后端的大模型进行实时通信。当用户发送消息时,前端通过 WebSocket 将消息发送到后端,并接收 DeepSeek 通过后端 Python 代码返回的对话内容。

代码示例:

const sendMsg = () => {// 创建一个新的 WebSocket 连接const socket = new WebSocket('ws://localhost:8765');// 初始化结果对象,用于存储助手的回复内容let result = {content: '',role: 'assistant'};// WebSocket 连接打开时的处理逻辑socket.onopen = () => {console.log('WebSocket connection established');console.log(inputMsg);// 发送用户输入的消息到后端socket.send(JSON.stringify({"user_input": inputMsg}));// 在对话历史中添加一个新的助手消息占位符setHistory((prevHistory) => [...prevHistory, { content: '', role: 'assistant' }]);};// WebSocket 接收到消息时的处理逻辑socket.onmessage = (event) => {try {// 检查消息是否为结束标志if (event.data === 'end') {// 处理结束逻辑(如果有需要)} else {// 解析接收到的消息const msg = JSON.parse(event.data);console.log(msg);// 累加助手的回复内容result.content += msg.content;// 更新对话历史中的最后一个助手消息内容setHistory((prevHistory) => {const newHistory = [...prevHistory];newHistory[newHistory.length - 1].content = result.content;console.log(newHistory[newHistory.length - 1].content);return newHistory;});}} catch (error) {console.error('Error parsing WebSocket message:', error);}};// WebSocket 连接关闭时的处理逻辑socket.onclose = () => {console.log('WebSocket connection closed');setLoading(false);};// WebSocket 连接发生错误时的处理逻辑socket.onerror = (error) => {console.error('WebSocket error:', error);setLoading(false);};
};

总结

本项目不仅实现了基本的实时对话功能,还充分考虑到了性能及用户体验方面的问题。借助 Vite、React 和 Ant Design X 的优势,我们得以在较短时间内完成高质量的产品交付。希望这篇文章能给正在探索类似项目的朋友们带来一些启发。

源码下载地址

http://www.yayakq.cn/news/76857/

相关文章:

  • 学习html的网站济南品质网站建设哪家好
  • 网站代做多长时间做网站公司松江
  • 佛山市做网站wordpress文章顶置
  • 免费招聘网站平台南宁市建设厅网站
  • 网站的搭建流程东莞工程建设监督服务平台
  • 网站可行性分析php网站访问量代码
  • seo培训赚钱手机优化助手怎么删除
  • 燕郊建设局网站网站备案用户注销备案申请表
  • 如何降低网站跳出率中国材料信息网
  • 陕西教育建设信息网站营销方式和渠道
  • net域名做企业网站怎么样号卡分销系统源码
  • 如何做类似优酷的视频网站wordpress固定链接404 nginx
  • 南昌网站推广公司深圳百度推广开户
  • 济源做网站的公司手机投资app平台
  • 昆明建个网站哪家便宜最好要使用中文目录
  • 重庆荣昌网站建设费用seo免费自助建站
  • 中山网站建设中山东营房产信息网官网
  • 高校门户网站建设问题免费注册网站域名
  • 写作网站最大企业常见问题及解决方案
  • 知乎做笔记的网站网站如何做支付宝接口
  • 小榄做网站贵阳网站建设设计
  • 做网站开发有前途么怎么做提货网站
  • 动漫制作专业软件seo推广培训资料
  • 阜宁网站制作公司报价深圳比较好的建网站公司
  • 网站建设中最重要的是什么意思江阴网站推广
  • 哪个网站建设服务器是在国外的中企动力邮箱登录网址
  • 湖南英文网站建设怎么做微帮网站
  • 可以查企业备案的网站吗三门峡做网站
  • 企业如何在工商网站上做公示福州做网站的个体户电话查询
  • 网站建设倒计时模板镇江网站建设要多少钱