完善机器人:让 DeepSeek 使用Vue Element UI快速搭建 AI 交互页面

在前两篇文章中,我们已经使用 AI 生成了 Java API ,并创建了一个简单的 HTML + JavaScript 网页,让用户可以与 AI 机器人聊天。但如果我们想要一个更美观、更专业的交互界面,该怎么办呢?🤔

本篇文章,我们将利用 Vue 3 + Element Plus ,快速搭建一个 现代化 AI 聊天机器人网页,让交互体验更加流畅!🚀


一、准备 Vue 3 项目环境

首先,我们需要 创建一个 Vue 3 项目,并安装 Element Plus 组件库。

1. 创建 Vue 3 项目

在终端运行以下命令(确保已安装 node.js):

复制代码
npm create vite@latest ai-chat --template vue
cd ai-chat
npm install

2. 安装 Element Plus

复制代码
npm install element-plus
npm install axios

3. 启动开发服务器

复制代码
npm run dev

现在,我们已经创建好了 Vue 3 项目,并成功安装了 Element Plus。🎉


二、让 DeepSeek 生成 Vue 代码

💬 示例指令

"请用 Vue 3 + Element Plus 实现一个 AI 聊天页面,支持用户输入、发送按钮、AI 回复,并调用 API(http://localhost:8080/api/chat)获取回答。"

DeepSeek 可能会返回如下代码:

1. 修改 App.vue

打开 src/App.vue,替换为以下代码:

复制代码
<template>
  <div class="chat-container">
    <h2>AI 机器人聊天</h2>
    <el-card class="chat-box">
      <div v-for="(message, index) in messages" :key="index" class="chat-message">
        <p><strong>{{ message.sender }}:</strong> {{ message.text }}</p>
      </div>
    </el-card>
    
    <el-input v-model="userInput" placeholder="请输入您的问题..." @keyup.enter="sendMessage" />
    <el-button type="primary" @click="sendMessage">发送</el-button>
  </div>
</template>

<script setup>
import { ref } from "vue";
import axios from "axios";

const userInput = ref("");
const messages = ref([]);

const sendMessage = async () => {
  if (!userInput.value.trim()) return;

  messages.value.push({ sender: "你", text: userInput.value });

  try {
    const response = await axios.post("http://localhost:8080/api/chat", {
      message: userInput.value,
    });

    messages.value.push({ sender: "AI", text: response.data });
  } catch (error) {
    messages.value.push({ sender: "AI", text: "出错了,请稍后再试!" });
  }

  userInput.value = "";
};
</script>

<style>
.chat-container {
  max-width: 600px;
  margin: 50px auto;
  text-align: center;
}
.chat-box {
  max-height: 400px;
  overflow-y: auto;
  padding: 10px;
  margin-bottom: 10px;
}
.chat-message {
  text-align: left;
  margin: 5px 0;
}
</style>

🔹 代码解析

el-card 作为聊天窗口,存放 AI 对话

el-input 让用户输入问题

el-button 触发 sendMessage(),调用后端 API

axios.post() 发送 HTTP 请求到后端

messages 存储聊天记录,动态渲染对话


三、运行 AI 聊天网站

1. 启动后端 API

确保 Spring Boot 服务器运行,API 访问地址为:

👉 http://localhost:8080/api/chat

2. 启动 Vue 项目

在 Vue 目录下运行:

复制代码
npm run dev

然后在浏览器打开:

👉 http://localhost:5173/

你就可以在网页上与 AI 聊天了!🎉🎉


四、优化交互体验

目前,我们的 AI 机器人已经能聊天,但如果页面更炫酷、体验更流畅,会不会更吸引人呢?

1. 让 AI 生成更好的样式

💬 示例指令

"请优化 Vue 3 AI 机器人聊天页面的 UI,使其更现代化,并加上 loading 动画。"

DeepSeek 可能会返回如下优化代码:

复制代码
<template>
  <div class="chat-container">
    <h2>🌟 AI 机器人聊天 🌟</h2>
    
    <el-card class="chat-box">
      <div v-for="(message, index) in messages" :key="index" class="chat-message">
        <p :class="{ 'user-message': message.sender === '你', 'ai-message': message.sender === 'AI' }">
          <strong>{{ message.sender }}:</strong> {{ message.text }}
        </p>
      </div>
      <p v-if="loading" class="loading">AI 正在思考...</p>
    </el-card>
    
    <el-input v-model="userInput" placeholder="请输入您的问题..." @keyup.enter="sendMessage" />
    <el-button type="primary" :disabled="loading" @click="sendMessage">
      {{ loading ? "处理中..." : "发送" }}
    </el-button>
  </div>
</template>

<script setup>
import { ref } from "vue";
import axios from "axios";

const userInput = ref("");
const messages = ref([]);
const loading = ref(false);

const sendMessage = async () => {
  if (!userInput.value.trim() || loading.value) return;

  messages.value.push({ sender: "你", text: userInput.value });
  loading.value = true;

  try {
    const response = await axios.post("http://localhost:8080/api/chat", {
      message: userInput.value,
    });

    messages.value.push({ sender: "AI", text: response.data });
  } catch (error) {
    messages.value.push({ sender: "AI", text: "出错了,请稍后再试!" });
  } finally {
    loading.value = false;
  }

  userInput.value = "";
};
</script>

<style>
.chat-container {
  max-width: 600px;
  margin: 50px auto;
  text-align: center;
}
.chat-box {
  max-height: 400px;
  overflow-y: auto;
  padding: 10px;
  margin-bottom: 10px;
  background: #f9f9f9;
}
.chat-message {
  text-align: left;
  margin: 10px 0;
}
.user-message {
  color: blue;
}
.ai-message {
  color: green;
}
.loading {
  color: gray;
  font-style: italic;
}
</style>

🔹 优化点

添加 Loading 提示 ,让用户知道 AI 在思考

区分用户和 AI 颜色 ,让对话更清晰

美化聊天窗口,更符合现代 UI 设计


五、总结:AI 让前端开发更高效!

通过 AI,我们可以 快速生成 Vue 代码 ,并结合 Element UI 美化界面,最终实现一个完整的 AI 聊天机器人网页!🚀

🌟 复习本系列文章 🌟

第一篇用 DeepSeek 生成 Java代码,实现一个简单的问答机器人

第二篇完善机器人:让 DeepSeek 生成 API 接口,并在网页上调用

第三篇(本篇):完善机器人:让 DeepSeek 使用Vue Element UI快速搭建 AI 交互页面

这样,我们就 从零到一 搭建了一个完整的 AI 机器人!🎉🎉

下一步 ?你可以尝试 添加更多 AI 功能 ,比如 语音输入、图片生成 等,让你的 AI 更加智能!💡

相关推荐
daols888 小时前
vxe-table 渲染器教程一:实现金额输入控件
javascript·vue.js·vxe-table
不好听6139 小时前
React vs Vue:两大前端框架技术选型深度对比
前端·vue.js·react.js
腻害兔10 小时前
【若依项目-产品经理视角】RuoYi-Vue-Pro 源码拆解:字典、短信、邮件、通知——后台系统的“基础设施四件套“!
java·前端·vue.js·产品经理·ai编程
腻害兔12 小时前
【若依项目-产品经理视角】RuoYi-Vue-Pro 源码拆解:支付模块 yudao-module-pay,一个让产品经理都看懂的支付中台设计
java·前端·vue.js·产品经理·ai编程
科技新芯15 小时前
中坚科技亮相2026 WAIC:人形机器人ZERO首秀,重载四足机狗落地应用
科技·机器人
QYR-分析17 小时前
智能化自动化浪潮下,机器人末端执行器行业赛道发展全景解析
人工智能·机器人·自动化
大模型服务器厂商17 小时前
人形机器人年产冲刺 10 万台,算力底座成核心支撑
人工智能·机器人
Larcher17 小时前
LangChain RAG 排错实录:.env 为什么没有生效
vue.js·后端
一个写前端的18 小时前
基于 Vue 3 的大文件分片上传组件,支持断点续传、并发上传、失败重试等功能
前端·javascript·vue.js
JaneConan18 小时前
鸿蒙 ArkUI 深水区:@Watch 和 @Observed,状态变了「自动跑」+ 嵌套对象「深层重绘」
开发语言·后端·ui·harmonyos