Con il seguente codice potete creare una pagina index.php che vi permette di effettuare una richiesta, in questo caso per la scrittura di un articolo, in base al titolo che sarà inserito nel campo di testo del form di interazione previsto dalla pagina. Cambiando le impostazioni è possibile personalizzare domanda e risposta. Ricordarsi di inserire la propria API key di OpenAI per l’interazione con il modello, che potete cambiare a seconda del vostro interesse.
<?php
// Abilita il reporting degli errori per la diagnosi
ini_set('display_errors', 1);
error_reporting(E_ALL);
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$titolo = "Scrivi un articolo basato sul seguente titolo: " . $_POST['titolo'];
$api_key = 'sk-xxx'; // Sostituisci con la tua chiave API effettiva
// Prepara i dati per la richiesta all'API OpenAI
$data = array(
"model" => "gpt-3.5-turbo", // Usa solo 'model' qui
"messages" => array(
array("role" => "system", "content" => "Sei un giornalista, programmatore, esperto di Python, AI e programmazione in generale"),
array("role" => "user", "content" => $titolo)
)
);
$data_string = json_encode($data);
// Inizializza cURL
$ch = curl_init('https://api.openai.com/v1/chat/completions'); // URL modificato
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Authorization: Bearer ' . $api_key,
'Content-Length: ' . strlen($data_string))
);
// Imposta un timeout per la richiesta cURL
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
// Esegui la richiesta e ottieni la risposta
$result = curl_exec($ch);
// Controlla se c'è stato un errore in cURL
if (curl_errno($ch)) {
echo 'Errore cURL: ' . curl_error($ch);
exit;
} else {
echo $result;
exit; // Termina l'esecuzione dello script per evitare di mostrare l'HTML sottostante
}
curl_close($ch);
}
// Qui inizia l'HTML
?>
<!DOCTYPE html>
<html>
<head>
<title>Generatore di Articoli AI</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
<h1>Generatore di Articoli AI</h1>
<form id="articoloForm">
<label for="titolo">Titolo:</label>
<input type="text" id="titolo" name="titolo"><br><br>
<input type="submit" value="Genera Articolo">
</form>
<div id="risposta"></div>
<script>
$(document).ready(function(){
$("#articoloForm").submit(function(event){
event.preventDefault();
var titolo = $("#titolo").val();
$.ajax({
url: 'index.php', // Modificato per puntare a questo stesso file
type: 'POST',
data: {titolo: titolo},
success: function(data){
try {
var response = JSON.parse(data);
if (response.choices && response.choices[0].message) {
var articoloGenerato = response.choices[0].message.content;
$("#risposta").html(articoloGenerato);
} else {
$("#risposta").html("Risposta ricevuta, ma non nel formato atteso: " + data);
}
} catch (e) {
$("#risposta").html("Errore nel parsing della risposta: " + e.message + "<br>Risposta grezza: " + data);
}
},
error: function(){
$("#risposta").html("Errore nella richiesta AJAX.");
}
});
});
});
</script>
</body>
</html>