国外chatgpt接口

墨城| 阅读:456 发表时间:2023-05-17 17:50:09 科技智能

https://yn.dinnuokeji.com/Uploads/2023-05-17/22344442233233.txt //php文件

<?php

header("Content-type: text/html; charset=utf-8");

header('Access-Control-Allow-Origin:*');

header("Access-Control-Allow-Headers:token,Origin, X-Requested-With, Content-Type, Accept");

header('Access-Control-Allow-Methods:POST,GET');

header('Access-Control-Expose-Headers:*');

$appkey = "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";

$str = $_GET['prompt'];

$array = array(

    "prompt" => $str,

    "max_tokens"=>2048,

    "temperature"=>0.5,

    "top_p"=>1,

    "frequency_penalty"=>0,

    "presence_penalty"=>0,

    "model"=>"text-davinci-003"

);

$url = "https://api.openai.com/v1/completions";

$result = https_request($url, $array, $appkey);

if (isset($result['choices'])) {

echoJson($result['choices'][0]['text'], 200, '这就是我的回答!');

}else{

echoJson('', 201, 'chatgpt累了,过一会再试试吧!');

}

function echoJson($data, $status, $msg = "")

{

    echo json_encode(['data' => $data, 'msg' => $msg, 'status' => $status]);

    exit();

}

function https_request($url, $data, $appkey, $json = true)

{

$curl = curl_init();

    curl_setopt($curl, CURLOPT_URL, $url);

    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);

    if (!empty($data)) {

        if ($json && is_array($data)) {

            $data = json_encode($data);

        }

        curl_setopt($curl, CURLOPT_POST, 1);

        curl_setopt($curl, CURLOPT_POSTFIELDS, $data);

        if ($json) {

            // 发送JSON数据

            curl_setopt($curl, CURLOPT_HEADER, 0);

            curl_setopt($curl, CURLOPT_HTTPHEADER,

                array(

                    'Authorization:Bearer ' . $appkey,

                    'Content-Type: application/json'

                )

            );

        }

    }

    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

    curl_setopt($curl, CURLOPT_PROXYAUTH, CURLAUTH_BASIC);

    curl_setopt($curl, CURLOPT_PROXY, "pr.roxlabs.cn");

    curl_setopt($curl, CURLOPT_PROXYPORT, 4600); 

    curl_setopt($curl, CURLOPT_PROXYUSERPWD, "user-hyz6869131-sessid-Ffa0WPXd-sesstime-1-keep-true:hyz6865968");

    curl_setopt($curl, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);

    $res = curl_exec($curl);

    $errorno = curl_errno($curl);

    if ($errorno) {

        return array('errorno' => false, 'errmsg' => $errorno);

    }

    curl_close($curl);

    return json_decode($res, true);

}

//前端代码


.xchat {

    position: fixed;

    

    z-index: 9999999;

    

    bottom: 0;

    

    top: 180px;

    

    left: 25px;

    

    width: 380px;

    

    height: 490px;

    

    background: rgb(252, 252, 252);

    

    box-shadow: rgba(0, 0, 0, 0.16) 0px 5px 40px;

    

    border-radius: 5px;

    

    overflow: hidden;

    

}

.xtop {

    width: 100%;

    height: 60px;

    background-image: linear-gradient(122deg,#1b4bf7 0,#2146f7 41%,#1d41f7 100%);

    box-sizing: border-box;

    padding: 10px;

    position: relative;

}

    

    

    

.xlogo {

    float: left;

    width: 40px;

    height: 40px;

    border-radius: 50%;

}

    

    

    

.xsname {

    float: left;

    height: 40px;

    font-size: 14px;

    color: white;

    line-height: 40px;

    margin-left: 10px;

}

    

    

    

.xclose {

    position: absolute;

    top:2px;

    right:3px;

    cursor: pointer;

    width:20px;

    height:20px;

    

} 

.smallclose {

    position: absolute;

    top:2px;

    right:22px;

    cursor: pointer;

    width:18px;

    height:18px;

    

} 

.xmid {

    width: 100%;

    height: 320px;

    box-sizing: border-box;

    padding: 10px;

    overflow-y: auto;

    background:#f3f3f3;

    

}

    

    

    

.xmsg {

    max-width: calc(100% - 50px);

    height: auto;

    overflow: hidden;

    margin: 0 0 10px 0;

}

    

    

    

    .xmid > div {

    

    overflow: hidden;

    

    }

    

    

    

    .xfrom {

        width: 100%;

        

        height: 25px;

        

        line-height: 16px;

        

        font-size: 12px;

        

        color: rgb(178, 178, 178);

        

        margin: 0 0 3px 0;

        display:flex;

        flex-wrap:nowrap;

        justify-content: flex-start;

        align-items: center;

    

    }

    

    

    

.xmessage {

    display: inline-block;

    max-width: 100%;

    height: auto;

    border-radius: 3px;

    padding: 10px;

    box-sizing: border-box;

    font-size: 13px;

    text-align: justify !important;

    word-break: break-all;

    line-height: 22px;

}

    

    

    

    .xa > .xmessage {

    

    color: #333;

    

    background: white;

    

    }

    

    

    

    .xa {

    

    float: left;

    

    }

    

    

    

    .xb {

    

    float: right;

    

    text-align: right;

    

    }

    

    

    

    .xb > p {

    

    text-align: right;

    

    }

    

    

    

    .xb > .xmessage {

        color: white;

        background-image: linear-gradient(122deg,#1d42f5 0,#1e4ef8 41%,#1b4bf7 100%);

    }

    

    

    

    .xbottom {

    

    width: 100%;

    

    height: 98px;

    

    box-sizing: border-box;

    

    border-top: 1px solid #eee;

    

    }

    

    

    

    .xsendmsg {

    

        width: 100%;

        

        height: 58px;

        

        box-sizing: border-box;

        

        outline: none;

        

        resize: none;

        

        padding: 10px;

        

        border: none;

        background: rgb(252, 252, 252);

        

        font-size: 13px;

        

        font-family: auto;

        

        color: #333;

    

    

    

    }

    

    

    

    .xgsend {

    

    width: 100%;

    

    height: 40px;

    

    background-color: transparent;

    

    box-sizing: border-box;

    

    padding: 4px 10PX;

    

    }

    

    

    

    .xsend {

    

    float: right;

    

    width: 60px;

    

    height: 32px;

    

    line-height: 32px;

    

    display: inline-block;

    

    vertical-align: middle;

    

    font-size: 13px;

    

    cursor: pointer;

    

    text-align: center;

    

    opacity: 1;

    

    color: white;

    

    border-width: 0px;

    

    border-style: initial;

    

    border-color: initial;

    

    border-image: initial;

    

    outline: none;

    

    border-radius: 3px;

    

    text-decoration: none;

    

    background: #1d41f7;

    

    }

    

    

    

    .startchat {

    

        width: 62px;

        

        height: 62px;

        

        border: none;

        

        display: none;

        

        border-radius: 50%;

        

        background: rgb(13, 175, 144);

        

        outline: none;

        

        cursor: pointer;

        

        position: fixed;

        

        right: 120px;

        

        bottom: 100px;

        

        box-shadow: rgba(0, 0, 0, 0.16) 0px 5px 14px;

    

    }

    <div class="xchat" id="xchatbox">

     <div class="xtop" id="xtopboxchat">

            <img class="xlogo" src="http://sbjd.dinnuokeji.com/uploads/20230426/05c413714ab75558b9265cd60212466f.png">

            <p class="xsname" id="xsnametxt">CHATGPT智能聊天机器人体验…自由问答</p>

            <img class="smallclose" src="http://sbjd.dinnuokeji.com/uploads/20230331/zuixiaohua.png" onclick="zuixiaohua(this)">

            <img class="xclose" src="http://sbjd.dinnuokeji.com/uploads/20230331/closeallvPT.png" onclick="closeall(this)">

        </div>

        <div class="xmid">

            <div class="xmsg xa">

                <p class="xfrom">

                    <img src="http://sbjd.dinnuokeji.com/uploads/20230426/05c413714ab75558b9265cd60212466f.png" style="width:20px;height:20px;border-radius:50%;margin-right:5px;">AI 5:50 PM</p><p class="xmessage" id="xmessage_idundefined">

                    您..想问我什么...

                </p>

            </div>

        </div>

        

        <div class="xbottom">

            <textarea rows="3" class="xsendmsg" id="xsendmsgval" placeholder="请输入"></textarea>

            <div class="xgsend">

                <button type="button" class="xsend" onclick="sendChatclick()">发送</button>

            </div>

        </div>

    </div>

 $('.xsendmsg').keyup(function (event) {

                var e = event.keyCode || event.which;

                if (e === 13) {

                   sendChatclick();

                }

            });

async function sendChatclick(){

            var cont = $('.xsendmsg').val();

            var newcont = cont.trim().replace(/\s/g,"");

            var newstr  = "";

            if (newcont.replace(/ /g, '').length > 0) {

                $('.xsendmsg').val('');

                renderMessages(cont, 'xb', 'send');

                var data = JSON.stringify({

                      "max_tokens": 2048,

                      "temperature": 0.5,

                      "top_p": 1,

                      "frequency_penalty": 0,

                      "presence_penalty": 0,

                      "model": "text-davinci-003"

                });

                flag++;

                renderMessages('正在输入...','xa','send',flag);

                $.ajax({

                    type: "post",

                    dataType: "json",

                    url: '/submitgptapi.php?prompt='+cont,

                    data: {data:"uiapp"},

                    success: function (result) {

                    if(result.status == 200){

                            newstr= result.data;

                            var vnewstr = newstr.replaceAll('\n','<br/>');

                            vnewstr  = vnewstr.replaceAll('\n','<br/>');

                            vnewstr =  vnewstr.replaceAll('<br/><br/>','<br/>');

                            vnewstr = vnewstr.replace('<br/>','');

                            renderMessages(vnewstr, 'xa', 'send',flag);

                        }else{

                            newstr = "网络错误 请重新试一下";

                            renderMessages(newstr, 'xa', 'send',flag);

                        }

                    }

                });

                await printMessageinfo("xmessage_id"+flag,'输入中...');

                return;

               

            } else {

                $('.xsendmsg').val('');

                layer.tips('发送内容不能为空','#xsendmsgval',{tips:1,time:1500});

            }

         }

         function printMessageinfo(id,message){

              clearInterval(interval);

              var responseText = document.getElementById(id);

              responseText.innerHTML = "";

              if(responseText){

                  var index = 0;

       window.interval = setInterval(function() {

     responseText.innerHTML += message[index];

     index++;

     if (index >= message.length) {

        clearInterval(interval);

        responseText.innerHTML = "";

        printMessage(id,'正在输入...');

     }

       },

          350);

              }else{

                  return false;

              }

         }

         function printMessage(id,message){

              var responseText = document.getElementById(id);

              if(responseText){

                  var index = 0;

       window.interval = setInterval(function() {

     responseText.innerHTML += message[index];

     index++;

     if (index >= message.length) {

        clearInterval(interval);

        responseText.innerHTML = "";

        printMessage(id,'正在输入...');

     }

       },

          350);

              }else{

                  return false;

              }

         }

         function renderMessages(omsg, xcls, type,flag) {

                var odate = new Date();

                var headpath = $("#headiconmetoo").attr('src');

                var $pa;

                if(omsg == "正在输入..."){

                    omsg = "";

                }

                if (xcls == 'xa') {

                     var $ele = $('<div class="xmsg ' + xcls + '">' +

                    '<p class="xmessage" id="xmessage_id'+flag+'">' + omsg + '</p>' +

                    '</div>');

                    $pa = $('<p class="xfrom"><img src="http://sbjd.dinnuokeji.com/uploads/20230426/05c413714ab75558b9265cd60212466f.png" style="width:20px;height:20px;border-radius:50%;margin-right:5px;">AI ' + odate.toLocaleString('en-US', {

                        hour: 'numeric',

                        minute: 'numeric',

                        hour12: true

    

                    }) + '</p>');

                    var flagcount = $("#xmessage_id"+flag).length;

                    if(flagcount > 0){

                        clearInterval(interval);

                        $("#xmessage_id"+flag).html(omsg);

                    } else {

                        $ele.prepend($pa);

                        var $div = $('<div></div>');

                        $div.append($ele);

                        $(".xmid").append($div).scrollTop(999999);

                        printMessage("xmessage_id"+flag,'正在输入...');

                    }

                } else {

                     var $ele = $('<div class="xmsg ' + xcls + '">' +

                    '<p class="xmessage">' + omsg + '</p>' +

                    '</div>');

                    $pa = $('<p class="xfrom"><p class="xfrom"><img src="'+headpath+'" style="width:20px;height:20px;border-radius:50%;margin-right:5px;">' + odate.toLocaleString('en-US', {

    

                        hour: 'numeric',

    

                        minute: 'numeric',

    

                        hour12: true

    

                    }) + '</p>');

                    $ele.prepend($pa);

                    var $div = $('<div></div>');

                    $div.append($ele);

                    $(".xmid").append($div).scrollTop(999999);

    

                }

        }


*文章为投稿者独立观点,不代表本站站长的立场
本文由相遇青春-Yn发表并编辑,转载此文章须经作者同意,并请附上出处及本页链接。如有侵权,请联系本站删除。

热门推荐