gece boş bir aralıkta can sıkıntısından hazırladım ben beyler işine yarayan olursa kullansın

<?php

/**
 * R10 AI : Finding  the category of content with AI
 * Author : Jeptun | Murat Y.
 */


class R10GPT {
    
    private $api_key     = null;
    private $api_url        = "https://api.openai.com/v1/completions";
    private $api_model      = "text-davinci-003";
    private $prompt         = null;
    private $max_token      = 2000;
    private $temperature = 0.7;

    /**
     *
     */
    public function __construct() {



    }


    /**
     * Set API key
     */
    public function set_api($key) {

        if($key == null) {
            die("error : set_api value cannot be empty");
        }

        $this->api_key = $key;
        return $this;

    }

    /**
     * Set API model
     */
    public function set_token($token) {

        $this->max_token = $token;
        return $this;

    }

    /**
     * Set API prompt
     */
    public function set_prompt($prompt) {

        if($prompt == null) {
            die("error : set_prompt value cannot be empty");
        }

        $this->prompt = $prompt;
        return $this;

    }

    /**
     * Get API prompt
     */
    public function get_prompt() {

        $categories             = '"finans, adsense, adwords, yardım, adsense hikayem, günlük yaşam, gündem, tarih , ülkeler"';
        $title                     = $this->prompt;

        $generate_prompt         = $categories . ' kategorilerinden hangisi '. $title .' başlığına uygun ise yalnızca o kategoriyi json olarak ekrana yazdır. json çıktısı ise {"category:category"} formatında olsun.  çıktı senin fikirlerini ve açıklamalarını içermesin.';

        $prompt["model"]         = $this->api_model;
        $prompt["prompt"]         = $generate_prompt;
        $prompt["temperature"]     = $this->temperature;
        $prompt["max_tokens"]     = $this->max_token;

        return $prompt;
    }

    /**
     * Get API headers
     */
    public function get_headers() {

        $headers = ['Authorization: Bearer ' . $this->api_key , 'Content-Type: application/json'];
        
        return $headers;
    }

    /**
     * cURL connection
     */
    public function run() {

        $ch  = curl_init($this->api_url);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($this->get_prompt()));
        curl_setopt($ch, CURLOPT_HTTPHEADER, $this->get_headers());
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $response = curl_exec($ch);
        curl_close($ch);

        if($response){

            $responseData = json_decode($response, true);
            $output       = $responseData['choices'][0]['text'];
            return $output;

        }else{

            return "API Request failed!";
                    
        }


    }

}


/**
 * Finding  a category for the title sent via POST method
 */

if($_SERVER['REQUEST_METHOD'] === "POST"){

    if(isset($_POST['title'])){

        $input = $_POST['title'];

        if(!empty($input)){

            $ai = new R10GPT;

            $data = $ai->set_api("BURAYA API KEY GELECEK")
                ->set_prompt($input)
                ->run();

            echo $data;
            die();

        }else{

            echo json_encode(["category" => "error"]);
            die();

        }
    }
}



?>




<!doctype html>
<html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.4.1/dist/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
    <script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js"></script>
    <title>R10 AI</title>
  </head>
  <body>
      <div class="container py-3">
        <div class="row">
          <div class="col-md-12">
            <h2 class="text-center mb-3 d-none" id="category"></h2>
            <div class="row justify-content-center">
              <div class="col-md-6">
                <span class="anchor" id="formLogin"></span>
                <div class="card card-outline-secondary">
                  <div class="card-body">
                      <div class="form-group">
                        <label for="uname1">başlık</label>
                        <input class="form-control" id="title" name="title" required="" type="text">
                      </div>
                        <button onclick="send_btn()" class="btn btn-success btn-lg float-right" type="button">kategori bul</button>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>




    <script type="text/javascript">

        function send_btn(){

            var title = $("#title").val();

            $.ajax({
              type: "POST",
              url: window.location.href,
                data: "title=" + title,
              dataType: 'JSON',
              beforeSend: function () {

                 $("#send").removeClass('d-none');

              },
              success: function (data) {

                 $("#send").removeClass('d-none');
                 $("#category").removeClass('d-none');
                 $("#category").text(data.category);

              },
              error: function (error) {

                 $("#sending").removeClass('d-none');

              }
           })


        }
    </script>


    <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.4.1/dist/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
  </body>
</html>