主頁 > 企業開發 > 為在線客服系統接入chatGPT(四):chatGPT介面vue網頁版,可以聯系背景關系語境,可以實作自己的chatGPT,附代碼

為在線客服系統接入chatGPT(四):chatGPT介面vue網頁版,可以聯系背景關系語境,可以實作自己的chatGPT,附代碼

2023-02-07 14:56:31 企業開發

如果想實作chatGPT的網頁版,呼叫介面就可以了,但是如果需要聯系背景關系語境,就需要在傳遞的資料的時候進行下拼接

傳參的時候對所有的對話資料進行拼接,拼成下面這樣

{"prompt":"(You:在嗎\n)這里在哦,有什么可以幫助你的嗎?(You:你這個系統多少錢\n)抱歉,您想知道什么?這里是客服中心,不提供價格咨詢服務哦,(You:在哪咨詢價格\n)可以行內系我們的銷售團隊,他們會給您提供更多的產品價格咨詢服務,(You:聯系方式發一下\n)您可以通過電話或網路咨詢,我們的客服熱線是000-888-888,網站是Http://www.example.com ,(You:錯的\n)很抱歉由于我們盡力提供精確和準確的資訊,但如果有錯誤出現了,非常抱歉,請您及時聯系我們,我們會盡快糾正這個錯誤,感謝您的反饋,(You:你是機器人嗎\n)(You:你是機器人嗎\n)","max_tokens":2048,"model":"text-davinci-003"}

 

(You:資料) 這是我們輸入的內容,后面接上回傳的內容,效果如圖所示

 

 

 

 

具體詳細代碼:

<template>
    <div class="chatAppBody">
        <div class="chatTitle">chatGPT</div>
        <div class="chatBox">
            <div v-for="row in msgList">
                <div v-if="row.isme!=true">
                    <div class="chatNotice">{{row.time}}</div>
                    <div class="chatRow">
                        <el-avatar class="chatAvatar" :size="30" :src=https://www.cnblogs.com/taoshihan/p/"row.avator"></el-avatar>
                        <div class="chatMsgContent">
                            <div class="chatUsername">{{row.name}}</div>
                            <div class="chatContent" v-html="row.content"></div>
                        </div>
                    </div>
                </div>
                <div v-if="row.isme==true">
                    <div class="chatNotice" v-if="row.show_time==true">{{row.time}}</div>
                    <div class="chatRow chatRowMe">
                        <div class="chatContent" v-html="row.content"></div>
                    </div>
                </div>
            </div>
        </div>
        <div class="chatBottom">
            <div class="chatAreaBox">
                <div class="chatArea">
                    <textarea class="chatAreaInput" v-model="originMessage"  @keyup.ctrl.enter.exact="chatToUser($event)" @keyup.enter.exact="chatToUser($event,'enter')" ></textarea>
                    <div @click="chatToUser($event)" class="chatSendBtn iconfont icon-fasong"></div>
                </div>
            </div>

            <div class="chatCopyright">
                <i class="el-icon-chat-dot-round"></i> Powered by 唯一客服
            </div>
        </div>
        
        <audio id="chatMessageAudio" style="display: none;" :src=https://www.cnblogs.com/taoshihan/p/"require('@/assets/alert2.ogg')"></audio>
    </div>
</template>

<script>
    import tools from '../tools/functions.js'
    import storage from '../tools/localStorage.js'
    import xss from 'xss'
    export default {
      name: 'ChatApp',
        data() {
          return {
              window:window,
              secret:"自己的密鑰",
              message:"",
              originMessage:"",
              msgList:[],
              sendDisable:false,
          }
        },
        methods: {
           //發送給客戶
            chatToUser:function(e) {
                let _this=this;
                if(this.sendDisable) return;
                //用戶點擊了ctrl+enter觸發
                if(e && e.ctrlKey && e.keyCode==13) { 
                    this.originMessage += '\n';
                    return;
                }
                if(this.originMessage=="") return;
                _this.message+=`(You:${this.originMessage})`;
                let sendMessage = {
                    "prompt":_this.message,
                    "max_tokens":2048,
                    "model":"text-davinci-003",
                };
                let showMessage={
                    isme:true,
                    content:this.originMessage,
                    show_time:false,
                }
                this.msgList.push(showMessage);
                this.scrollBottom();
                let headers={
                    headers:{ 
                        'Authorization': `Bearer ${this.secret}`,
                        },
                }
                this.sendDisable=true;
                this.$axios.post('https://api.openai.com/v1/completions',sendMessage,headers).then(function (response) {
                    _this.sendDisable=false;
                    if(!response.data.choices){
                        _this.$message({
                          message: response.data.error.message,
                          type: 'error'
                        });
                        return ;
                    }
                    _this.originMessage="";
                    let retMessage=response.data.choices[0].text;
                    retMessage=tools.trim(retMessage,"\n");
                    _this.message+=retMessage;
                    let showMessage={
                        isme:false,
                        avator:"https://goflychat.oss-cn-hangzhou.aliyuncs.com/static/upload/avator/2022June/32a988a3c2f8700119fa1f5da1b6a4bd.png",
                        content:retMessage.replaceAll("\n","<br>"),
                        time:tools.shortTime(tools.getNowDate())
                    }
                    _this.msgList.push(showMessage);
                    _this.alertSound();
                    _this.scrollBottom();
                }).catch(function (error) {
                    _this.sendDisable=false;
                    _this.$message({
                      message: error.response.data.error.message,
                      type: 'error'
                    });
                    return ;
                });
            },
            //滾動到底部
            scrollBottom:function(){
                var _this=this;
                this.$nextTick(function(){
                    var container = _this.$el.querySelector(".chatBox");
                    container.scrollTop = 999999999;
                });
            },
            //提醒聲音
            alertSound(){
                tools.alertSound("chatMessageAudio","");
            }
        },
        mounted: function () {
        }
    }
</script>

<style lang="scss">
    .chatAppBody{
        display: flex;
        flex-direction: column;
        height: 100vh;
        background-color: #f1f5f8;
    }
    .chatTitle{
        background: #fff;
        padding: 5px 0px;
        text-align: center;
        font-size: 14px;
    }
    .chatBox{
        flex: 1;
        padding: 0px 5px;
        padding-bottom: 15px;
        overflow: auto;
    }
    .chatBottom{
        display: flex;
        flex-direction: column;
    }
    .chatRow{
        display: flex;
        align-items: flex-end;
        margin: 5px 0px;
    }
    .chatAvatar{
        margin-right: 5px;
        flex-shrink: 0;
    }
    .chatUsername {
        font-size: 12px;
        white-space: nowrap;
        color: #999;
        margin-bottom: 2px;
    }
    .chatContent{
        border-radius: 10px 10px 10px 0px;
        padding: 10px;
        background-color: rgb(255,255,255);
        box-shadow: 0 5px 30px rgb(50 50 93 / 8%), 0 1px 3px rgb(0 0 0 / 5%);
        font-size: 14px;
        word-break: break-all;
        line-height: 21px;
        display: inline-block;
    }
    
    .chatRowMe{
        justify-content: flex-end;
    }
    .chatRowMe .chatContent{
        border-radius: 10px 10px 0px 10px;
    }
    .chatNotice{
        text-align: center;
        color: #bbb;
        margin: 8px 0;
        font-size: 12px;
    }
    .chatAreaBox{
        margin: 0px 10px;
        margin-bottom: 10px;
        box-shadow: 0 5px 30px rgb(50 50 93 / 8%), 0 1px 3px rgb(0 0 0 / 5%);
        border-radius: 10px;
    }
    .chatArea{
        display: flex;
        padding: 3px 5px;
        align-items: center;
        background: #fff;
        border-radius: 10px;
    }
    .chatArea .iconfont{
        color: #383838;
        font-size: 18px;
        margin: 0px 6px;
        cursor: pointer;
    }
    .chatArea .iconfont:hover{
        color: #409eff;
    }
    .chatAreaInput{
        border-radius: 10px;
        border: 0;
        flex: 1;
        outline: none;
        resize: none;
        box-sizing: border-box;
        color: #505050;
        min-height: 50px;
        font-size: 16px;
    }
    .chatCopyright{
        color: #999a9b;
        font-size: 12px;
        text-align: center;
        margin-bottom: 10px;
        filter: grayscale(1);
        opacity: .9;
        font-family: Inter,-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Tahoma,Arial,sans-serif;
    }
    
    .chatContent a{
        color: #07a9fe;
        text-decoration: none;
    }
    
    .alink{
        display: inline-block;
        word-break: break-all;
        color: #07a9fe;
        font-size: 12px;
        cursor: pointer;
    }
    
    </style>

 

十年開發經驗程式員,離職全心創業中,歷時三年開發出的產品《唯一客服系統》

一款基于Golang+Vue開發的在線客服系統,軟體著作權編號:2021SR1462600,一套可私有化部署的網站在線客服系統,編譯后的二進制檔案可直接使用無需搭開發環境,下載zip解壓即可,僅依賴MySQL資料庫,是一個開箱即用的全渠道在線客服系統,致力于幫助廣大開發者/公司快速部署整合私有化客服功能, 開源地址:唯一客服(開源學習版) 官網地址:唯一客服官網

轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/543199.html

標籤:JavaScript

上一篇:Backbone前端框架解讀

下一篇:返回列表

標籤雲
其他(152426) Python(37775) JavaScript(25183) Java(17368) C(15188) 區塊鏈(8246) C#(7972) AI(7469) 爪哇(7425) MySQL(6944) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5847) 数组(5741) R(5405) Linux(5296) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4499) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2421) ASP.NET(2399) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) Web開發(1951) python-3.x(1918) .NET技术(1916) 弹簧靴(1913) xml(1889) PostgreSQL(1861) C++(1852) 谷歌表格(1846) Unity3D(1843) for循环(1842) HtmlCss(1835) .NETCore(1834)

熱門瀏覽
  • IEEE1588PTP在數字化變電站時鐘同步方面的應用

    IEEE1588ptp在數字化變電站時鐘同步方面的應用 京準電子科技官微——ahjzsz 一、電力系統時間同步基本概況 隨著對IEC 61850標準研究的不斷深入,國內外學者提出基于IEC61850通信標準體系建設數字化變電站的發展思路。數字化變電站與常規變電站的顯著區別在于程序層傳統的電流/電壓互 ......

    uj5u.com 2020-09-10 03:51:52 more
  • HTTP request smuggling CL.TE

    CL.TE 簡介 前端通過Content-Length處理請求,通過反向代理或者負載均衡將請求轉發到后端,后端Transfer-Encoding優先級較高,以TE處理請求造成安全問題。 檢測 發送如下資料包 POST / HTTP/1.1 Host: ac391f7e1e9af821806e890 ......

    uj5u.com 2020-09-10 03:52:11 more
  • 網路滲透資料大全單——漏洞庫篇

    網路滲透資料大全單——漏洞庫篇漏洞庫 NVD ——美國國家漏洞庫 →http://nvd.nist.gov/。 CERT ——美國國家應急回應中心 →https://www.us-cert.gov/ OSVDB ——開源漏洞庫 →http://osvdb.org Bugtraq ——賽門鐵克 →ht ......

    uj5u.com 2020-09-10 03:52:15 more
  • 京準講述NTP時鐘服務器應用及原理

    京準講述NTP時鐘服務器應用及原理京準講述NTP時鐘服務器應用及原理 安徽京準電子科技官微——ahjzsz 北斗授時原理 授時是指接識訓通過某種方式獲得本地時間與北斗標準時間的鐘差,然后調整本地時鐘使時差控制在一定的精度范圍內。 衛星導航系統通常由三部分組成:導航授時衛星、地面檢測校正維護系統和用戶 ......

    uj5u.com 2020-09-10 03:52:25 more
  • 利用北斗衛星系統設計NTP網路時間服務器

    利用北斗衛星系統設計NTP網路時間服務器 利用北斗衛星系統設計NTP網路時間服務器 安徽京準電子科技官微——ahjzsz 概述 NTP網路時間服務器是一款支持NTP和SNTP網路時間同步協議,高精度、大容量、高品質的高科技時鐘產品。 NTP網路時間服務器設備采用冗余架構設計,高精度時鐘直接來源于北斗 ......

    uj5u.com 2020-09-10 03:52:35 more
  • 詳細解讀電力系統各種對時方式

    詳細解讀電力系統各種對時方式 詳細解讀電力系統各種對時方式 安徽京準電子科技官微——ahjzsz,更多資料請添加VX 衛星同步時鐘是我京準公司開發研制的應用衛星授時時技術的標準時間顯示和發送的裝置,該裝置以M國全球定位系統(GLOBAL POSITIONING SYSTEM,縮寫為GPS)或者我國北 ......

    uj5u.com 2020-09-10 03:52:45 more
  • 如何保證外包團隊接入企業內網安全

    不管企業規模的大小,只要企業想省錢,那么企業的某些服務就一定會采用外包的形式,然而看似美好又經濟的策略,其實也有不好的一面。下面我通過安全的角度來聊聊使用外包團的安全隱患問題。 先看看什么服務會使用外包的,最常見的就是話務/客服這種需要大量重復性、無技術性的服務,或者是一些銷售外包、特殊的職能外包等 ......

    uj5u.com 2020-09-10 03:52:57 more
  • PHP漏洞之【整型數字型SQL注入】

    0x01 什么是SQL注入 SQL是一種注入攻擊,通過前端帶入后端資料庫進行惡意的SQL陳述句查詢。 0x02 SQL整型注入原理 SQL注入一般發生在動態網站URL地址里,當然也會發生在其它地發,如登錄框等等也會存在注入,只要是和資料庫打交道的地方都有可能存在。 如這里http://192.168. ......

    uj5u.com 2020-09-10 03:55:40 more
  • [GXYCTF2019]禁止套娃

    git泄露獲取原始碼 使用GET傳參,引數為exp 經過三層過濾執行 第一層過濾偽協議,第二層過濾帶引數的函式,第三層過濾一些函式 preg_replace('/[a-z,_]+\((?R)?\)/', NULL, $_GET['exp'] (?R)參考當前正則運算式,相當于匹配函式里的引數 因此傳遞 ......

    uj5u.com 2020-09-10 03:56:07 more
  • 等保2.0實施流程

    流程 結論 ......

    uj5u.com 2020-09-10 03:56:16 more
最新发布
  • 為在線客服系統接入chatGPT(四):chatGPT介面vue網頁版,可以聯系背景

    如果想實作chatGPT的網頁版,呼叫介面就可以了,但是如果需要聯系背景關系語境,就需要在傳遞的資料的時候進行下拼接 傳參的時候對所有的對話資料進行拼接,拼成下面這樣 {"prompt":"(You:在嗎\n)這里在哦,有什么可以幫助你的嗎?(You:你這個系統多少錢\n)抱歉,您想知道什么?這里是客 ......

    uj5u.com 2023-02-07 14:56:31 more
  • Backbone前端框架解讀

    作者: 京東零售 陳震 一、 什么是Backbone 在前端的發展道路中,前端框架元老之一jQuery對繁瑣的DOM操作進行了封裝,提供了鏈式呼叫、各類選擇器,屏蔽了不同瀏覽器寫法的差異性,但是前端開發程序中依然存在作用域污染、代碼復用度低、冗余度高、資料和事件系結煩瑣等痛點。 5年后,Backbo ......

    uj5u.com 2023-02-07 14:56:17 more
  • 一個成熟的WMS(倉庫管理系統)應該具備的那些功能

    一個成熟的WMS(倉庫管理系統)應該具備的那些功能 WMS倉庫管理系統是一款以標準化、智能化程序導向管理的倉庫管理軟體,它結合了眾多知名企業的實際情況和管理經驗,按照運作的業務規則和運演算法則準確、高效地管理跟蹤客戶訂單、采購訂單、以及倉庫的綜合管理。 倉儲管理系統WMS關注的核心理念是高效的任務執行 ......

    uj5u.com 2023-02-07 14:55:37 more
  • 一個成熟的WMS(倉庫管理系統)應該具備的那些功能

    一個成熟的WMS(倉庫管理系統)應該具備的那些功能 WMS倉庫管理系統是一款以標準化、智能化程序導向管理的倉庫管理軟體,它結合了眾多知名企業的實際情況和管理經驗,按照運作的業務規則和運演算法則準確、高效地管理跟蹤客戶訂單、采購訂單、以及倉庫的綜合管理。 倉儲管理系統WMS關注的核心理念是高效的任務執行 ......

    uj5u.com 2023-02-07 14:54:54 more
  • Backbone前端框架解讀

    在前端的發展道路中,前端框架元老之一jQuery對繁瑣的DOM操作進行了封裝,提供了鏈式呼叫、各類選擇器,屏蔽了不同瀏覽器寫法的差異性,但是前端開發程序中依然存在作用域污染、代碼復用度低、冗余度高、資料和事件系結煩瑣等痛點。 ......

    uj5u.com 2023-02-07 12:31:22 more
  • [JavaScript]實體化物件

    使用語法結構創建的物件 function fn(){ var name="RoastDuck"; } 使用構造器創建的物件 function Duck() { this.name = []; this.age = []; } var RoastDuck = new Duck(); 使用 Object ......

    uj5u.com 2023-02-07 12:31:18 more
  • [JavaScript]關于prototype繼承

    When it comes to inheritance, JavaScript only has one construct: objects. Each object has a private property which holds a link to another object call ......

    uj5u.com 2023-02-07 12:31:14 more
  • 記錄--使用Lunchbox 在 vue3 中創建一個 3D 地球

    這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 什么是 Lunchbox.js Lunchbox.js 是 Three.js 的 Vue 3 自定義渲染器。 你可以把它想象成 Vue 的 react-three-fiber。 該庫通過組件提供對原始 Three.js 物件和類的訪問,例 ......

    uj5u.com 2023-02-07 11:55:59 more
  • Vue.js 前端專案在常見 Web 服務器上的部署配置

    Web 服務器是一種用于存盤,處理和傳輸Web內容的軟體。它是一種特殊型別的服務器,具有處理 HTTP 請求并向瀏覽器回傳 Web 頁面和其他內容的能力。Web服務器支持多種編程語言,如 PHP,JavaScript,Ruby,Python 等,并且支持動態生成 Web 頁面。常見的 Web 服務器 ......

    uj5u.com 2023-02-07 11:47:27 more
  • 聊一聊js中元素定位的方法

    在做selenium web自動化的時候,有時通過selenium定位不到,或無法操作元素,這個時候就需要通過js來 定位/操作元素,然后通過selenium自帶的execute_script()方法去執行js陳述句。下面介紹幾種js的定位方法。 一.ID id的值都是唯一的,所以當存在id欄位時可優 ......

    uj5u.com 2023-02-07 11:47:23 more