好久没写了,这么长时间都去坐一些自己感兴趣的事情去了。
之前使用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);}// 处理请求错误}
当然各种不同接口类型返回数据格式不一样看自己需求