日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

vue+AI智能機器人回復功能實現

瀏覽:231日期:2023-01-07 11:43:07

本文實例為大家分享了vue+AI智能機器人回復的具體代碼,供大家參考,具體內容如下

操作步驟

引入前端代碼

前端代碼是參考github上的一個開源項目,里面包括AI機器人回復和聊天室兩個模塊,這里只抽取出來一個AI機器人回復的前端,有興趣的話,可以點擊查看

封裝好代理與請求

因為第三方API的請求是外網的,存在跨域問題,所以要配置代理,配置如下:

文件:vue.config.js

const vueConfig = { //上面還有項目的其他配置 devServer: { port: 8000, proxy: { ’/ai’: { target: ’http://openapi.tuling123.com/’, changeOrigin: true, pathRewrite: {’^/ai’: ’’} } } },}module.exports = vueConfig

配完代理后,創建請求實例:

文件: request.js

// 創建AI機器人回復請求axios實例const aiService = axios.create({ //VUE_APP_AI_BASE_URL=/ai //baseURL: process.env.VUE_APP_AI_BASE_URL, baseURL: ’/ai’, timeout: 10000})……export { aiService as aiAxios} 調用第三方AI機器人的API

第三方AI機器人有很多,筆者嘗試過阿里和圖靈兩個,調用方式都差不多,但是阿里的有點小貴,所以這里以圖靈的為示例:

aiAxios.post(’/openapi/api/v2’, { reqType: ’0’, perception: { inputText: { text: this.inputContent } }, userInfo: { //圖靈上注冊后自己的機器人apikey apiKey: ’****’, //登錄用戶用賬戶ID userId: ’123456’ } }).then(res => { let text= res.data.results[0].values.text; this.msgs.push({ date: moment().format(’YYYY-MM-DD HH:mm:ss’), from: ’智能機器人’, content: text, self: false, avatarUrl: aiHeadImg }) this.$refs.chattingContent.scrollTop = this.$refs.chattingContent.scrollHeight }).catch(err => { this.$message.info(err);})

整體示例代碼

<template lang='html'> <transition name='slide-right'> <div class='chatting'> <!-- 聊天界面頭部 --> <div class='chatting-header'> <div class='chatting-back'> <i class='icon-back'></i> </div> <div class='chatting-title'> <h2>AI 智能機器人</h2> </div> <div class='chatting-menu'> <i class='icon-menu'></i> </div> </div> <!-- 聊天內容區域 --> <div ref='chattingContent' class='chatting-content'> <div v-for='item of msgs'> <!--用戶輸入內容--> <div v-if='item.self' class='chatting-item self clearfix'> <div class='msg-date'> {{ item.date }} </div> <div class='msg-from'> <span class='msg-author'>{{ item.from}}</span> <img :src='http://www.b3g6.com/bcjs/item.avatarUrl' alt=''> </div> <div class='msg-content'>{{ item.content }}</div> </div> <!--AI回復內容--> <div v-else class='chatting-item other clearfix'> <div class='msg-date'> {{ item.date }} </div> <div class='msg-from'> <img :src='http://www.b3g6.com/bcjs/item.avatarUrl' alt=''> <span class='msg-author'>{{ item.from }}</span> </div> <div class='msg-content'>{{ item.content }}</div> </div> </div> </div> <!-- 輸入區域 --> <div class='chatting-input'> <input @keyup.enter='send' v-model.trim='inputContent' placeholder='與智能機器人聊些啥'> <button @click='send'>發送</button> </div> </div> </transition></template><script> import {aiAxios} from ’../../../utils/request’ import moment from ’moment’ //下面兩張頭像自己從網上隨便找兩張 import aiHeadImg from ’../../../assets/web/pub/images/head-ai.svg’ import clientHeadImg from ’../../../assets/web/pub/images/pltx.png’ export default { name: ’chatting’, data() { return { msgs: localStorage.msgs_ai && JSON.parse(localStorage.msgs_ai) || [], inputContent: ’’, oContent: {} } }, watch: { msgs(val) { localStorage.msgs_ai = JSON.stringify(val); } }, mounted() { this.oContent = document.getElementById(’chattingContent’); setTimeout(() => { this.$refs.chattingContent.scrollTop = this.$refs.chattingContent.scrollHeight }, 0) }, methods: { //發送消息 send() { this.oContent.scrollTop = this.oContent.scrollHeight; if (this.inputContent === ’’) { return; } this.msgs.push({ date: moment().format(’YYYY-MM-DD HH:mm:ss’), from: this.userInfo.personname || ’匿名’, content: this.inputContent, self: true, avatarUrl: clientHeadImg }); setTimeout(() => { this.$refs.chattingContent.scrollTop = this.$refs.chattingContent.scrollHeight }, 0) this.getClientRobotReply() this.inputContent = ’’; }, //圖靈AI機器人回復 getClientRobotReply() { aiAxios.post(’/openapi/api/v2’, { reqType: ’0’, perception: { inputText: { text: this.inputContent } }, userInfo: { //圖靈上注冊后自己的機器人apikey apiKey: ’****’, //登錄用戶用賬戶ID userId: ’123456’ } }).then(res => { let text= res.data.results[0].values.text; this.msgs.push({ date: moment().format(’YYYY-MM-DD HH:mm:ss’), from: ’智能機器人’, content: text, self: false, avatarUrl: aiHeadImg }) this.$refs.chattingContent.scrollTop = this.$refs.chattingContent.scrollHeight }).catch(err => { this.$message.info(err); }) } } }</script><style lang='less' scoped> .chatting { display: flex; flex-direction: column; width: 100%; height: 100%; .chatting-header { display: flex; justify-content: space-between; align-items: center; height: 50px; width: 100%; background-color: #2196f3; color: white; padding-left: 10px; padding-right: 15px; .chatting-back { width: 30px; height: 30px; i.icon-back { /*background: url(’../../common/icons/icon-group2.svg’) no-repeat;*/ background-size: contain; } } .chatting-title { i.icon-group { vertical-align: top; width: 30px; height: 30px; //background: url(’./images/icon-group.svg’) no-repeat; background-size: contain; margin-right: 3px; } } .chatting-menu { width: 30px; height: 30px; i.icon-menu { /*background: url(’../../common/icons/icon-index.svg’) no-repeat;*/ background-size: contain; } } } .chatting-content { flex: 1; width: 100%; background-color: rgba(0, 0, 0, .1); overflow: auto; .chatting-item { padding: 10px; width: 100%; .msg-date { text-align: center; color: gray; font-size: 80%; } .msg-from { display: flex; align-items: center; span.loc { color: gray; font-size: 60%; margin-right: 5px; } .msg-author { font-size: 1.2rem; } img { width: 30px; height: 30px; border-radius: 15px; } } .msg-content { margin-top: 5px; background-color: white; width: 200px; padding: 6px 10px; border-radius: 10px; } } .chatting-item + .chatting-item { margin-top: 10px; } .self { .msg-from { display: flex; justify-content: flex-end; align-items: center; img { margin-left: 10px; } } .msg-content { float: right; word-wrap: break-word; word-break: break-all; margin-right: 10px; } } .other { .msg-from { display: flex; justify-content: flex-start; align-items: center; img { margin-right: 10px; } } .msg-content { float: left; margin-left: 10px; word-wrap: break-word; word-break: break-all; } } .online { width: 200px; // max-width: 100%; margin: 3px auto; border-radius: 4px; text-align: center; background-color: #FFFDE7; } } .chatting-input { display: flex; height: 40px; width: 100%; input { flex: 1; padding-left: 10px; // padding-top: 10px; height: 100%; font-size: 1.3rem; } button { width: 60px; height: 100%; background-color: #2196f3; color: white; font-size: 1.2rem; } } }</style>

關于vue.js組件的教程,請大家點擊專題vue.js組件學習教程進行學習。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Vue
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久国产精品亚洲77777| 国产999精品在线观看| 久久久久久美女精品| 精品深夜福利视频| 国产精品乱战久久久| 成人在线免费观看网站| 高清av一区| 日韩国产在线| 久久亚洲不卡| 欧美日韩一区二区高清| 亚洲深夜视频| 免费观看在线综合| 伊人精品一区| 精品免费av一区二区三区| 精品国产亚洲一区二区三区在线 | 日本aⅴ免费视频一区二区三区| 欧美日韩色图| 亲子伦视频一区二区三区| 色婷婷精品视频| 国产情侣久久| 欧洲av不卡| 久久久久伊人| 日韩视频1区| 人人精品久久| 国产精品成人一区二区网站软件| 久久人人99| 在线国产一区| 日韩av三区| 精品中文在线| 国产精品tv| 成人美女视频| 欧美综合精品| 久久中文字幕一区二区三区| 亚洲不卡系列| 日韩**一区毛片| 蜜桃成人av| 国产日韩免费| 影院欧美亚洲| 国产欧美一区二区三区精品观看| 亚洲欧美日韩精品一区二区 | 麻豆视频观看网址久久| 欧美99久久| 国产精品99免费看| 九一精品国产| 亚洲一区中文| 国产一区二区三区四区五区| 久久精品国产大片免费观看| 亚洲资源av| 国产精品一二| 三级小说欧洲区亚洲区| 香蕉精品999视频一区二区| 欧美亚洲福利| 国产高清久久| 欧美激情综合| 国产精品xvideos88| 夜鲁夜鲁夜鲁视频在线播放| 日韩影院二区| 欧美日韩黄网站| 91精品国产自产观看在线| 蜜桃免费网站一区二区三区| 男人天堂欧美日韩| 91精品福利| 亚洲电影在线| 久久亚洲道色| 欧美成人高清| 青草国产精品| 97欧美在线视频| 视频在线在亚洲| 国产精品theporn| 国产一区亚洲| 免费看一区二区三区| 日韩精品一级中文字幕精品视频免费观看| 日韩一区二区免费看| 国产情侣一区在线| 狠狠爱www人成狠狠爱综合网| 免费亚洲婷婷| 天堂va蜜桃一区二区三区| 久久不卡日韩美女| 999国产精品永久免费视频app| 国产日韩欧美三级| 久久国产精品毛片| 精品国模一区二区三区| 国产精品一区二区三区av| 在线一区免费观看| 国产不卡精品| 日韩不卡一二三区| 亚洲91精品| 国产精品tv| 激情中国色综合| 国产午夜精品一区二区三区欧美| 日韩av黄色在线| 成人在线黄色| 亚洲精品韩国| 国产精品亚洲欧美| 国产一区日韩| 亚洲人成网站在线在线观看| 国产精品一区免费在线| 麻豆成全视频免费观看在线看| 日韩精品看片| 免费在线成人网| 日本欧美一区二区在线观看| 久久精品xxxxx| 肉色欧美久久久久久久免费看| 国产亚洲字幕| 午夜在线精品| 亚洲一区日韩| 国产精品美女久久久| 日产精品一区二区| 亚洲最大av| 久久久成人网| 精品高清久久| 国产亚洲一区二区三区不卡| 亚洲在线久久| 亚洲深夜福利| 免费精品国产的网站免费观看| 九九99久久精品在免费线bt| 国产精品一区毛片| 亚洲免费在线| 欧美日韩国产高清| 欧美 日韩 国产一区二区在线视频| 热三久草你在线| 91亚洲一区| 成人国产精选| 亚洲精品乱码久久久久久蜜桃麻豆| 精品三区视频| 久久久久久一区二区| 国产日产一区| 亚洲午夜国产成人| 九九色在线视频| 亚洲人成网站在线在线观看| 精品色999| 欧美精品99| 天堂а√在线最新版中文在线| 国产乱人伦精品一区| 久久国内精品视频| 国产麻豆精品久久| 91久久久精品国产| 久久精品国产久精国产爱| 欧美日韩国产一区精品一区| 日韩福利视频导航| 麻豆视频在线看| 九色精品91| 日本不卡视频在线观看| 国户精品久久久久久久久久久不卡| 精品欧美日韩精品| 六月婷婷综合| 国产日韩欧美一区在线| 免费黄色成人| 欧美日韩亚洲在线观看| 欧美~级网站不卡| 99视频在线精品国自产拍免费观看| 婷婷中文字幕一区| 免费久久精品视频| 亚洲欧美专区| 日韩福利视频一区| 国产伦理久久久久久妇女| 国产欧美另类| 国产成人精品一区二区三区视频| 国产一区福利| 深夜视频一区二区| 99re国产精品| 四虎成人精品一区二区免费网站| 亚洲激情二区| 亚洲精品极品| 国产精品天天看天天狠| 精品国产免费人成网站| 亚洲二区视频| 亚洲欧洲一区| 日韩欧美另类中文字幕| 欧洲一级精品| 日韩国产一区二区三区| 日韩综合一区| 欧美在线网站| 91精品丝袜国产高跟在线| 欧洲亚洲一区二区三区| 婷婷激情一区| 水蜜桃精品av一区二区| 欧美一级二级三级视频| 欧美日韩一区二区三区不卡视频| 日韩激情啪啪| 免费日韩一区二区三区| 国产精品日韩精品中文字幕| 国产劲爆久久| 国产精品一级| 日韩中文字幕麻豆| 91九色综合| 国产欧美日韩精品一区二区免费 | 久久精品一区二区不卡| 你懂的网址国产 欧美| 日韩高清不卡在线| 久久精品国产亚洲aⅴ| 福利视频一区| 久久不射网站| 精品亚洲a∨| 亚洲日本网址| 亚洲欧美日本国产专区一区| 在线日韩视频| 久久精品99国产精品日本| 亚洲大片在线| 国产精品一国产精品k频道56|