php使用chatGPT生成一些东西做一个记录

好久没写了,这么长时间都去坐一些自己感兴趣的事情去了。

之前使用chatgpt-3,效果一直不咋好,这里我们来说说各个版本区别

gpt-3收费成本可以接受,生成的内容对话有点不太聪明的样子

git-3.5-turbo收费相对来说低,生成文本质量还是蛮高的,虽然有可能存在一点废话,但是不影响

git-4对不起用不起哈,等模型训练会不会下带升级之后这个收费较低我在说吧

php调用对话接口

https://api.openai.com/v1/chat/completions

各种三个demo测试

$msg是你需要传入的对话

第二段是屏蔽部分首次进入加入

$data = array(
            'model' => 'gpt-3.5-turbo',
            'messages' => [
                ['role' => 'user', 'content' => $msg],
            ],
//            'messages' => array(
//                array('role' => 'system', 'content' => '你好,有什么可以帮助您'),
//                array('role' => 'user', 'content' => '生成介绍API文章')
//            ),
            //'max_tokens' => 1000,
            // 'model' => 'gpt-3.5-turbo',
            //'prompt' => '生成关于ai绘画介绍的详细文章,讲述所涉及到知识点',
        );

再就是curl

请求了这种直接使用chatGPT生成的代码改动一下就可以

$ch = curl_init($url);
        curl_setopt($ch, CURLOPT_PROXYAUTH, CURLAUTH_BASIC); //代理认证模式

        curl_setopt($ch, CURLOPT_PROXY, env('gpt.proxy')); //代理服务器地址

        curl_setopt($ch, CURLOPT_PROXYPORT, env('gpt.proxyport')); //代理服务器端口
        if(!empty(env('gpt.proxyuserpwd'))){
            curl_setopt($ch, CURLOPT_PROXYUSERPWD, env('gpt.proxyuserpwd')); //http代理认证帐号,username:password的格式
        }

        curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP); //使用http代理模式
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
            'Content-Type: application/json',
            'Authorization: Bearer ' . $apiKey
        ));

        $result = curl_exec($ch);

        $responseCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);


        curl_close($ch);
        if ($responseCode == 200 || $result === false) {
            $response = json_decode($result, true);
            // dd($response);
            Log::info("chat GPT:---------------------------");
            Log::info("内容:".$result);
           // Log::info("status:".$response['choices'][0]['finish_reason']);
            // print_r($response['choices']);

            //Log::info(htmlspecialchars($html));
            return $response;
            //$generatedText = $response['choices'][0]['text'];
            // print_r($generatedText);
        } else {
            $response = json_decode($result, true);
            if(is_array($response)){
                return  "Error sending request: " . $result;
                return $response['error']['type'].":".$response['error']['message'];
            }else{
                return  "Error sending request: " . curl_error($ch);
            }
            // 处理请求错误

        }

当然各种不同接口类型返回数据格式不一样看自己需求

你可能感兴趣的:(chatgpt)