1. 聆思大模型AI開發(fā)套件集成Coze調用GPT-4

        共 5471字,需瀏覽 11分鐘

         ·

        2024-04-11 01:38

        ?

        上一篇《大模型賦能開發(fā)板被這家公司玩明白了》 我們已經(jīng)詳細介紹了聆思大模型 AI 開發(fā)套件以及聆思大模型平臺,并實操了基于LLM_control二次開發(fā)拓展了天氣查詢、中英互譯的能力。今天我們再來看看聆思大模型 AI 開發(fā)套件如何通過Coze Bot 使用 GPT-4 。

        整體思路

        3c773fcf92f52374efb3cfbba6a88d29.webp聆思大模型AI開發(fā)套件集成Coze整體思路

        首先,介紹幾個關鍵點:

        1. Coze 國際版支持 GPT-4 能力,可以將 Bot 部署到 Discord;
        2. 借助 coze-discord-proxy 代理 Discord 對話Coze-Bot,實現(xiàn)API形式請求GPT4對話模型/微調模型;
        3. 利用 LSPlatform 應用編排中的 http-request 去調用 API 以及聯(lián)接開發(fā)板。

        以此整體思路如上圖,開發(fā)板和聆思大模型平臺通過 SDK 拉通;聆聽大模型平臺應用編排網(wǎng)絡節(jié)點調用 API;API 由部署在 Zeabur 上的 coze-discord-proxy 服務提供;coze-discord-proxy 服務實現(xiàn)了代理用戶在Discord頻道中發(fā)送信息,并調度兩個Discord Bot(一個關聯(lián) Coze Bot,一個用來監(jiān)聽Discord消息)。按照交互梳理的流程如下:

        • ① “小聆小聆”喚醒,語音交互
        • ② 聆思大模型平臺 http-request 節(jié)點調用 coze-discord-proxy服務
        • ③ coze-discord-proxy 內部調用 discord  (user)
        • ④ discord  調用 coze  (coze bot)
        • ⑤ coze bot 返回對話
        • ⑥ discord 返回對話 (watch bot)
        • ⑦ coze-discord-proxy 返回對話
        • ⑧ 聆思大模型平臺返回對話到開發(fā)板

        環(huán)境變量(coze-discord-proxy相關)

        ?

        本文默認您已經(jīng)擁有聆思大模型平臺相關賬號及權限,如沒有請訪問 platform.listenai.com。

        ?

        本文默認您能正常訪問 Discord、Coze國際版、Zeabur, 我們嘗試了 coze.com 需要全局代理才能正常訪問。

        部署 coze-discord-proxy 的方式有很多種,本文以部署到 Zeabur 為例,我們需要的環(huán)境變量如下:

              
              BOT_TOKEN=[用來監(jiān)聽Discord消息的bot(watch bot)的token]
        GUILD_ID=[Discord 兩個bot所在的服務器ID]
        COZE_BOT_ID=[Discord被coze托管bot的ID]
        CHANNEL_ID=[默認頻道-在使用與openai對齊的接口時(/v1/chat/completions) 消息會默認發(fā)送到此頻道]
        USER_AUTHORIZATION=[Discord 當前用戶的 token]
        PROXY_SECRET=[請求頭校驗的值(前后端統(tǒng)一),后續(xù)接口調用需要的Authorization]
        TZ=Asia/Shanghai

        保姆級部署 coze-discord-proxy 的教程并非我們編寫此文的目的,因此我們會更聚集于部署過程中的重點以及如何在開發(fā)板上調用。

        詳細教程請參考:通過接口調用Coze托管的discord-bot,實現(xiàn)免費使用GPT4和繪畫

        我們需要在 Discord 平臺創(chuàng)建兩個 Bot,并獲取它們的token,為了方便區(qū)分我們姑且稱為watch bot 和 coze bot,watch bot 用于監(jiān)聽消息后續(xù)需要將它的token配置到環(huán)境變量中,coze bot 用于cozen.com 平臺發(fā)布bot到discord。這兩個bot都需要添加到Discord同一個服務器(可新創(chuàng)建)中,并且都要賦予Administrator(管理員)權限。**記錄 watch bot 的token,即為 BOT_TOKEN **

        10a16dbf5eb7bec15c10fa1f624eb06c.webpcoze bot和watch bot

        權限配置如下圖:

        e8907d14942de5fe2b72c80825386e4e.webp權限配置

        添加到同一服務器中,需要復制服務器ID之類的信息時記得先開啟Discord開發(fā)者模式,具體操作路徑(以網(wǎng)頁版為例):點擊左下角用戶設置圖標--新頁面點擊高級設置--打開開發(fā)者模式開關。之后

        eb9c6961c3c54b3440b0801e87db33e6.webp開發(fā)者模式

        右鍵服務器即可顯示復制服務器ID,點擊即可復制,這就是GUILD_ID

        8053429004e63c8d48aa6aeeaaffe697.webp這就是GUILD_ID

        同理右鍵頻道即可顯示復制頻道ID,點擊即可復制,這就是CHANNEL_ID

        580ce7cc59d3b1465d35127d6e2fc1d6.webp這就是CHANNEL_ID

        接著我們在coze.com平臺開發(fā)bot,并發(fā)布到discord,這里需要把 discord 中 coze bot 的token填寫到coze平臺。

        acaa82c3b31e4eeca69e3020365b21b6.webpdiscord coze bo

        我們這里使用的是 GPT-4 (抱歉盜用了ListenAI,就當推廣吧,哈哈,見諒!):

        60de884e982c5978f2d383de819acf18.webpcoze GPT-4
        ?

        Tips: 如需更高級的自定義Coze Bot,請查看 Coze 文檔:

        接下來我們測試一下coze bot 有么有發(fā)布成功,如有回復那就是正常,并復制coze bot 的id,這就是COZE_BOT_ID

        bcb6af6ef31baa8501258a1751832706.webp這就是COZE_BOT_ID

        當然,如果此刻您打開了瀏覽器的調試界面(F12),在 devtool network 還能看到 message 請求,請求頭中包含 Authorization ,這就是USER_AUTHORIZATION。之后在 coze-discord-proxy 服務就會代理這個用戶來發(fā)送消息:

        532b5f45e2c1fbee91a4d4cc5b5545af.webp這就是USER_AUTHORIZATION

        至此,我們需要的環(huán)境變量都準備好了,接下去 zeabur.com 發(fā)布 coze-discord-proxy 服務吧。

        發(fā)布 coze-discord-proxy 服務

        這步因為我們使用的是zeabur.com的免費資源,因此部署過程中可能會提示升級套餐之后才給部署。我們的操作是刪除再重新創(chuàng)建。

        cdedc4cfff9789cedc5f6ad4933d649f.webpzeabur suspended

        部署的前提是需要將 coze-discord-proxy fork 到自己的賬號下,方面 zeabur 上使用 git 的方式部署。

        d18f7c98f77f67df3f236326dfaa91fe.webpzeabur git

        基本上都是比較簡單的操作,需要注意的是要配置環(huán)境變量:

        8ad216551bc6b39e8b6ce22930b5e94a.webpzeabur variable

        發(fā)布成功之后我們還可自定義訪問域名。也能訪問到 coze-discord-proxy 服務 swagger 文檔:

        994723d70b5dc3553d7d7c13c2481978.webpswagger

        至此,我們以及部署了擁有 GPT-4 能力的 API 服務。接下來我們將在聆思大模型平臺接入這 API 服務。

        聆思大模型平臺接入 Coze API

        上一篇文章中我們了解到ListenAI大模型平臺應用編輯基于Node-RED,有基本的網(wǎng)絡相關節(jié)點,今天的主角就是http-request節(jié)點。話不多說,我們看看文檔:

        98881d934531de722f25a3a47ff150a1.webphttp-request

        其實和代碼中使用 http 類似,參數(shù)也是 url、method、headers 之類的,如果是前端工程師的話,肯定很熟悉這一套操作了。

        2f1420e3e2c2e6b0990e111ea12b7269.webphttp-request
              
              請求方式選擇POST

        URL:填寫您的Coze API 接口地址,如https://coze.zeabur.app/v1/chat/completions

        添加頭
        Authorization值是前文您環(huán)境變量中的 PROXY_SECRET,用于簡單鑒權
        Accept:application/json
        Content-Type:application/json

        細心的小伙伴可能會發(fā)現(xiàn), http-request前面加了一個前處理的節(jié)點,這是因為我們要組裝發(fā)給Coze API的數(shù)據(jù)格式,可簡單定義為:

              
              const content = msg?._input?.content || '';

        msg._input.content = {
            "channelId""1210469212355829770",
            "messages": [
                {
                    "content": content,
                    "role""user"
                }
            ],
            "model""",
        };

        return msg;
        374bccab70fcae851515b31f23d22fff.webphttp-request前置處理
        ?

        Tips: 此處僅作簡單演示,您可自行實現(xiàn)創(chuàng)意節(jié)點。

        為了確保調用沒問題,我們還可以簡單的調試一下,確定是使用的 Coze API。(我們暫時沒能編排實現(xiàn)接入coze-discord-proxy的流式返回adb2f96bf487c72db823e8e952896396.webp

        聆思大模型AI開發(fā)套件接入 Coze API

        如同上一篇文章中的拓展開發(fā),我們只需要將閑聊邏輯從調用內置星火認知大模型改為調用 Coze API 即可,開發(fā)板端代碼無需修改。需要注意的是,處理網(wǎng)頁版對話和硬件語音對話略有不同,還需要將返回內容轉成語音下發(fā)。

        • 前處理:
              
              /**
         *  閑聊前置處理節(jié)點
         */
        const asrResult = msg._input.optAsrResult || msg._input.origin_content;
        // 格式化傳給API接口的數(shù)據(jù)
        const reqData = {
            "channelId""",
            "messages": [
                {
                    "content": asrResult,
                    "role""user"
                }
            ],
            "model""",
        };
        // msg._input.content = reqData
        msg._input.content = asrResult;
        msg.payload = reqData
        return msg;

        • 后處理
              
              //大模型回復內容
        let content = msg.payload.choices[0]?.message?.content || '';

        msg._output = {
            stream: true
        }

        msg.payload = {
            "text": content
        }

        return msg

        最后記得重新部署,在端側就能體驗到 GPT-4 了。

        ?

        Tips:流式輸出的接口是有的,但對接出了的問題,http-request 有一定的局限性,后續(xù)可以嘗試使用 axios 等模塊實現(xiàn)。



        瀏覽 70
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
          
          

            1. 又爽 又黄 免费网站69 | 中国逼| 男女操逼国产 | 琪琪色情网站 | 骚逼操 |