<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

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

          共 5471字,需瀏覽 11分鐘

           ·

          2024-04-11 01:38

          ?

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

          整體思路

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

          首先,介紹幾個關(guān)鍵點:

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

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

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

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

          ?

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

          ?

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

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

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

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

          詳細(xì)教程請參考:通過接口調(diào)用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同一個服務(wù)器(可新創(chuàng)建)中,并且都要賦予Administrator(管理員)權(quán)限。**記錄 watch bot 的token,即為 BOT_TOKEN **

          10a16dbf5eb7bec15c10fa1f624eb06c.webpcoze bot和watch bot

          權(quán)限配置如下圖:

          e8907d14942de5fe2b72c80825386e4e.webp權(quán)限配置

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

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

          右鍵服務(wù)器即可顯示復(fù)制服務(wù)器ID,點擊即可復(fù)制,這就是GUILD_ID

          8053429004e63c8d48aa6aeeaaffe697.webp這就是GUILD_ID

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

          580ce7cc59d3b1465d35127d6e2fc1d6.webp這就是CHANNEL_ID

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

          acaa82c3b31e4eeca69e3020365b21b6.webpdiscord coze bo

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

          60de884e982c5978f2d383de819acf18.webpcoze GPT-4
          ?

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

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

          bcb6af6ef31baa8501258a1751832706.webp這就是COZE_BOT_ID

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

          532b5f45e2c1fbee91a4d4cc5b5545af.webp這就是USER_AUTHORIZATION

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

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

          這步因為我們使用的是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 服務(wù) swagger 文檔:

          994723d70b5dc3553d7d7c13c2481978.webpswagger

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

          聆思大模型平臺接入 Coze API

          上一篇文章中我們了解到ListenAI大模型平臺應(yīng)用編輯基于Node-RED,有基本的網(wǎng)絡(luò)相關(guān)節(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,用于簡單鑒權(quán)
          Accept:application/json
          Content-Type:application/json

          細(xì)心的小伙伴可能會發(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é)點。

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

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

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

          • 后處理
                
                //大模型回復(fù)內(nèi)容
          let content = msg.payload.choices[0]?.message?.content || '';

          msg._output = {
              stream: true
          }

          msg.payload = {
              "text": content
          }

          return msg

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

          ?

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



          瀏覽 70
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

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

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  青青草无码在线 | 美女操逼视频网站 | 国产99久久99热 | h片网站免费 | 九九九九九国产 |