Php ve Yapay Zeka İle Kullanıcı Adı Kontrolü. Prompt Tasarım by Tayfun Erbilen

<?php
class ChatApp {
    private $model= "gpt-3.5-turbo-0301";
    private $messages= array();
    public $api_key;
    public function chat($message) {
        $prompt_messages[] = array("role" => "system", "content" => '
			Sen sadece JSON çıktı yazabilen ve kullanıcı adlarını denetleyen bir uzmansın.
			- kullanıcı adı siyasi, dini, ırkçı, hakaret içeremez.
			- kullanıcı adı rastgele bir değer olamaz.
			- kullanıcı adı anlamsız bir değer olamaz.
			- kullanıcı adı, yönetici gibi anlaşılacak isimler olamaz.
			- kullanıcı adı küfür içeremez, küfüre benzer diğer değerler
			içeremez.
			kullanıcı adlarında türkçe karakterler olmadığı için bazı
			küfürler örneğin ”oç" farklı şekillerde gelebilir. Örneğin ”oc”
			gibi, bunları düşünerek mantıklı bir filtreleme yap.
			eğer yukarıdaki koşullara göre uymayan bir kullanıcı adı
			girilmişse JSON formatında success: false ve reason içinde
			sebebini döndür.
			eğer bir sorun yoksa success: true döndür.			
			JSON formatı hariç hiçbir veri döndürme.
			Açıklama yazma sadece json sonucunu döndür.
			örneğin 
			{
			  "success": false,
			  "reason": "Kullanıcı adı küfür içeremez veya küfre benzer değerler içeremez."
			}
			veya
			{
			  "success": true,
			}
			döndürmen yeterli.
		');
        $prompt_messages[] = array("role" => "user", "content" => $message); 
        $post_fields = array(
            "model" => $this->model,
            "messages" => $prompt_messages
        );
        $header = array(
            'Content-Type: application/json',
            'Authorization: Bearer ' . $this->api_key
        );
        $ch = curl_init();
        $url = 'https://api.openai.com/v1/chat/completions';
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($post_fields));
        curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
        $result = curl_exec($ch);
        if (curl_errno($ch)) {
            echo 'Error: ' . curl_error($ch);
        }
        curl_close($ch);
        $response = json_decode($result, true);
        $assistant_message = $response["choices"][0]["message"]["content"];
        return $assistant_message;
    }
}
?>
<!DOCTYPE html>
<html>
<head>
    <title>Kayıt Form</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">
</head>
<body>
    <div class="container">
        <h1>Kayıt Ol</h1>
        <form method="POST" action="">
            <div class="form-group">
                <label for="username">Kullanıcı:</label>
                <input type="text" class="form-control" id="username" name="username" placeholder="Kullanıcı adınızı girin.">
            </div>
            <button type="submit" class="btn btn-primary">Kayıt GPT</button>
        </form>
    </div>
    <?php
    if (isset($_POST["username"])){
        $username = $_POST["username"];
        $chatApp = new ChatApp();
        $chatApp->api_key = "sk-lyaikhPwDdeneme1234567"; // bunu kendiniz değiştirin
        $response = $chatApp->chat($username);		
        $is_valid_json = (json_decode($response) !== null);
        if ($is_valid_json) {
			$result=json_decode($response,true);
			if($result["success"]==true){
				echo "<div class='container mt-3'>";
				echo "<div class='alert alert-success'>".$_POST["username"]." Kullanıcı adı kurallara uygun.</div>";
				echo "</div>";
			}elseif($result["success"]==false){
				echo "<div class='container mt-3'>";
				echo "<div class='alert alert-danger'>".$_POST["username"]." ".$result["reason"]."</div>";
				echo "</div>";			
			}
        }
    }
    ?>
</body>
</html>

Sizin Değerli Görüşlerinize İhtiyacımız Var.