1、背景

最近ChatGPT大火,各大媒体前言都被刷屏了。很多人,也开发了小程序、网页接入官网的GPT3.0接口。但是,这些使用大部分问不到几句就开端要收费了。于是,我就自己做了一个免费版小程序玩一下(接入Plus接口也是免费,免费进行到底)。PS:之前用itchat接入过。但微信简单被封不引荐。公众号主动回复有5秒限制也不太引荐。

2、准备工作

  • GPT3.0接口key(能够参考注册教程: OpenAI 推出超神 ChatGPT 注册攻略来了)

  • Fastadmin 结构

  • Uniapp

  • openAI SDK

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、成果展示

fastadmin + uniapp 实现小程序接入chatGPT3.0

5、体会地址

fastadmin + uniapp 实现小程序接入chatGPT3.0

6、其他

现在国内真实练习得不错的AI模型大概有:百度文心(三月结束内侧)、华为盘古(只从会议视频上了解过)、浪潮的源1.0(正在接入、学习中)。(其他欢迎大佬们补充)

在潜水很久了,这是我的第一篇文章。个人感觉没多少干货,首要受不了一些披了一层就在那儿呼喊叫卖的使用。所以,写得不好。大佬们轻喷。

下一步,打算用vits进行游戏或动漫角色语音合成。让GPT回来的信息,能够用语音播映出来。有兴趣的大佬能够一同聊聊。