Кстати, научил chatGPT модерировать чат.
Для антиспама и прочего не подходит, однако, для прекращения срачей - вполне, особенно, когда народ уже на чистую ругань переходит.
Код:
function aimoder($prompt){
$request_body = [
"input" => $prompt
];
$postfields = json_encode($request_body);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.openai.com/v1/moderations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 10,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => $postfields,
CURLOPT_CONNECTTIMEOUT=>5,
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'Authorization: Bearer КЛЮЧ'
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
return false;
} else {
$res_arr = json_decode($response);
$res=false;
if (isset($res_arr->results[0])){$res = $res_arr->results[0]->flagged;}
if ($res) {logModer($prompt,print_r($response,true));}
return $res;
}
}
Однако, с русским языком еще есть нюансы... Особенно на поговорках... Лермонтова под нож пускал и просто совсем безобидное, например (строка из журнала):
23-03-08 15:39:09 -> {"id":"ХХХХ","model":"text-moderation-004","results":[{"flagged":true,"categories":{"sexual":false,"hate":true,"violence":true,"self-harm":false,"sexual/minors":false,"hate/threatening":true,"violence/graphic":false},"category_scores":{"sexual":0.0001108051001210697,"hate":0.7655182480812073,"violence":0.995951771736145,"self-harm":1.6947980839177035e-05,"sexual/minors":1.25528686112375e-06,"hate/threatening":0.4412943422794342,"violence/graphic":0.00010847809608094394}}]}: Согласен, поэтому хочу убить сразу 2х зайцев )