fastadmin + uniapp 實現小程式接入chatGPT3.0

語言: CN / TW / HK

1、背景

最近ChatGPT大火,各大媒體媒介都被刷屏了。很多人,也開發了小程式、網頁接入官網的GPT3.0介面。然而,這些應用大部分問不到幾句就開始要收費了。於是,我就自己做了一個免費版小程式玩一下(接入Plus介面也是免費,免費進行到底)。PS:之前用itchat接入過。但微信容易被封不推薦。公眾號自動回覆有5秒限制也不太推薦。

2、準備工作

3、開始拼接

3.1 安裝SDK

在fastadmin專案根目錄下執行: composer require tectalic/openai

3.2 接入SDK

這裡提供簡單Demo,具體業務邏輯大家自己封裝

``` $auth = new Authentication('你的介面key'); $httpClient = new Psr18Client(HttpClient::create(['verify_peer' => false, 'verify_host' => false])); $client = new Client($httpClient, $auth, Manager::BASE_URI);

$response = $client->completions()->create( new \Tectalic\OpenAi\Models\Completions\CreateRequest([ 'model' => 'text-davinci-003', 'prompt' => $question, // 這裡是使用者提交過來的問題 'max_tokens' => 2400, // 這裡可以根據需要調整 ]) )->toModel();

var_dump($response->choices[0]->text); ```

3.3 小程式介面對接

很少接觸前端業務,所以這裡程式碼可能寫得不是很好。大佬們勿噴

``` that.$api.post({ url: that.$tern_config.appurl + that.$path.common.ai, data: { msg: that.content }, dataType: 'json', success: rs => { // 對返回結果進行處理 let pattern = /(https?|http|ftp|file):\/\/[-A-Za-z0-9+&@#/%?=~|!:,.;]+[-A-Za-z0-9+&@#/%=~|]/g

            // 提取圖片地址,有時介面返回圖片格式:![圖片主題](圖片地址)
            let imgs = rs.match(pattern)
            imgs = imgs ? imgs : []

            // 過濾圖片url資訊/ \n 字元
            let text = rs.replaceAll("openai:", "")
                    .replaceAll(pattern, "")
                    .replaceAll(/\!\[.*?\]\(\)/g, "")
                    .replaceAll(/^\n|\n$/g, "")

            that.msgList.push({
                    "msg": text,
                    "my": false,
                    "img": imgs
            })

            that.msgContent += ("openai:" + that.msg + "\n")
            that.msgLoad = false
            that.scrollToBottom()
    },
    fail: rs => {
            // 有時候,介面響應比較久。超過設定timeout
            that.msgList.push({
                    "msg": '抱歉,您說的我還不懂',
                    "my": false,
                    "img": []
            })

            that.scrollToBottom()
            that.msgLoad = false
    }

}) ```

4、成果展示

1677150248958.jpg

5、體驗地址

gh_3021b5ceeeb9_258.jpg

6、其他

現在國內真正訓練得不錯的AI模型大概有:百度文心(三月結束內側)、華為盤古(只從會議視訊上了解過)、浪潮的源1.0(正在接入、學習中)。(其他歡迎大佬們補充)

在掘金潛水很久了,這是我的第一篇文章。個人感覺沒多少乾貨,主要受不了一些披了一層就在那邊吆喝叫賣的應用。所以,寫得不好。大佬們輕噴。

下一步,打算用vits進行遊戲或動漫角色語音合成。讓GPT返回的資訊,可以用語音播放出來。有興趣的大佬可以一起聊聊。