vue+AI智能机器人回复功能实现
本文实例为大家分享了vue+AI智能机器人回复的具体代码,供大家参考,具体内容如下
操作步骤
- 引入前端代码
前端代码是参考github上的一个开源项目,里面包括AI机器人回复和聊天室两个模块,这里只抽取出来一个AI机器人回复的前端,有兴趣的话,可以点击查看
- 封装好代理与请求
因为第三方API的请求是外网的,存在跨域问题,所以要配置代理,配置如下:
文件:vue.config.js
constvueConfig={
//上面还有项目的其他配置
devServer:{
port:8000,
proxy:{
'/ai':{
target:'http://openapi.tuling123.com/',
changeOrigin:true,
pathRewrite:{'^/ai':''}
}
}
},
}
module.exports=vueConfig
配完代理后,创建请求实例:
文件:request.js
//创建AI机器人回复请求axios实例
constaiService=axios.create({
//VUE_APP_AI_BASE_URL=/ai
//baseURL:process.env.VUE_APP_AI_BASE_URL,
baseURL:'/ai',
timeout:10000
})
……
export{
aiServiceasaiAxios
}
- 调用第三方AI机器人的API
第三方AI机器人有很多,笔者尝试过阿里和图灵两个,调用方式都差不多,但是阿里的有点小贵,所以这里以图灵的为示例:
aiAxios.post('/openapi/api/v2',{
reqType:'0',
perception:{
inputText:{
text:this.inputContent
}
},
userInfo:{
//图灵上注册后自己的机器人apikey
apiKey:'****',
//登录用户用账户ID
userId:'123456'
}
}).then(res=>{
lettext=res.data.results[0].values.text;
this.msgs.push({
date:moment().format('YYYY-MM-DDHH:mm:ss'),
from:'智能机器人',
content:text,
self:false,
avatarUrl:aiHeadImg
})
this.$refs.chattingContent.scrollTop=this.$refs.chattingContent.scrollHeight
}).catch(err=>{
this.$message.info(err);
})
整体示例代码