logo
1

H5对接后端接口实现大模型对话可视化

前端使用vue3 setup+ vite+ axios
此记录只是简单流程,token是后端获取单次使用的,并没有存储前端,所以代码只做逻辑参考,并不能作为线上使用
使用这位博主的后端再次开发的:链接

一.创建项目

  
  
  
  
  
  
npm create vue@latest
然后看着来选就可以了,也可以都默认
  
  
  
  
  
  
Vue.js - The Progressive JavaScript Framework
✔ Project name: … vue-project
✔ Add TypeScript? … No / Yes
✔ Add JSX Support? … No / Yes
✔ Add Vue Router for Single Page Application development? … No / Yes
✔ Add Pinia for state management? … No / Yes
✔ Add Vitest for Unit Testing? … No / Yes
✔ Add an End-to-End Testing Solution? › No
✔ Add ESLint for code quality? … No / Yes
cd进去就可以开始编辑前端项目了

二、编辑代码 对接后端接口

先安装axios库用于接口请求
  
  
  
  
  
  
npm i axios
直接修改app.vue
直接上代码!!
  
  
  
  
  
  
<script setup>
import axios from "axios";
import { ref } from "vue";
const text=ref('');
const responseText=ref('');
const sendRequest=async ()=>{
const {data}=await axios.get('http://127.0.0.1:3000/search',{
params:{ text:text.value}
})
responseText.value=data
}
</script>
<template>
<div>
<div>
<label for="inputText">输入文本:</label>
<input v-model="text" type="text" id="inputText" />
<button @click="sendRequest">发送</button>
</div>
<div>
<h2>ai回复:</h2>
<div>{{ responseText }}</div>
</div>
</div>
</template>
<style scoped>
body {
font-family: 'Arial', sans-serif;
margin: 0;
padding: 0;
background-color: #f4f4f4;
}
#app {
max-width: 600px;
margin: 50px auto;
background-color: #fff;
padding: 20px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
border-radius: 8px;
}
input {
padding: 10px;
width: calc(100% - 20px);
margin-bottom: 10px;
}
button {
padding: 10px;
background-color: #3498db;
color: #fff;
border: none;
border-radius: 4px;
cursor: pointer;
transition: background-color 0.3s ease;
}
button:hover {
background-color: #2980b9;
}
h2 {
color: #333;
}
div {
border: 1px solid #ddd;
padding: 10px;
border-radius: 4px;
margin-bottom: 20px;
}
</style>

四、展示效果

命令运行
  
  
  
  
  
  
npm run dev
浏览器测试,输入文本,下面即可回答内容

5.附加内容

如果发现接口请求出现了cores错误,后端添加下跨域请求即可
  
  
  
  
  
  
const cors = require('cors');
app.use(cors());
评论
用户头像