J’essaye d’integrer à mon script PHP l’etat d’un équipement.
C’est pour pouvoir modifier facilement la question envoyé à ChatGpt.
Comment remplacer le texte « comment vas tu aujourd’hui » par l’etat de l’équipement #13594# par exemple?
// Message à envoyer à ChatGPT
$prompt = "Comment vas tu aujourd'hui ?";
Merci pour votre aide, je suis novice en code PHP.
il faut donner un peu plus de contexte.
oui j’ai vu l’autre post où tu parles de ce bout de code mais il pourrait être dans un bloc code ou directement dans une commande script ou dans un fichier appelé par la commande script etc
Merci beaucoup pour ton aide mais cela ne fonctionne pas. (La ligne 6 est celle que j’ai modifier)
PS: Il est dans un fichier appelé par une commande script.
Erreur exécution de la commande [Maison][ChatGPT Script][Interroger] : Erreur sur sudo chmod +x /var/www/html/plugins/script/data/ChatGPT.php 2>/dev/null;php /var/www/html/plugins/script/data/ChatGPT.php 2>&1 valeur retournée : 255. Détails : PHP Fatal error: Uncaught Error: Class 'cmd' not found in /var/www/html/plugins/script/data/ChatGPT.php:6 Stack trace: #0 {main} thrown in /var/www/html/plugins/script/data/ChatGPT.php on line 6
si dans un fichier appelé par une commande script alors dans le fichier il faut utiliser des paramètres, voir le paragraphe SCRIPT et « les paramètres » en dessous
et donc la commande script doit être du type « message » et en appelant le script il faudra utiliser le tag #message#
ce qui est vraiment con c’est pas vous mais c’est le fait de ne pas montrer ou expliquer ce que vous avez changé ni sur quoi vous bloquez.
pcq moi à part répéter ce qui est écrit déjà, je ne sais pas quoi expliquer d’autres puisque vous ne dites pas ce qui bloque; c’est bien le sens de ma phrase: « je vais pas tout recopier ici quand même »
avez-vous lu l’information donnée sur le site de doc php? (le lien donné dans la doc ci-dessus)
ce qu’il faut y est écrit avec exemple. voila pourquoi ca ne sert à rien de répéter la même chose
Je suis passé par un code de scenario et un virtuel.
ci joint le script si cela intéresse quelqu’un:
// Configuration des clés et URLs
$jeedomApiUrl = "http://ip Jeedom/core/api/jeeApi.php";
$jeedomApiKey = "key api jeep";
$openaiApiKey = 'key api openai';
// ID de l'équipement info dans Jeedom Question
$infoCmdId = 13605;
// Récupération de la valeur de l'équipement info
$infoRequestUrl = "$jeedomApiUrl?apikey=$jeedomApiKey&type=cmd&id=$infoCmdId";
$infoValue = file_get_contents($infoRequestUrl);
if ($infoValue === FALSE) {
echo "Erreur lors de la récupération de la valeur de l'équipement info Jeedom.";
exit;
}
// Nettoyage de la valeur récupérée
$prompt = trim($infoValue);
echo "Message récupéré de Jeedom : $prompt\n";
// Envoi de la requête à l'API OpenAI
$openaiUrl = "https://api.openai.com/v1/chat/completions";
$data = [
"model" => "gpt-3.5-turbo",
"messages" => [
["role" => "system", "content" => "Tu es un assistant pour la domotique Jeedom."],
["role" => "system", "content" => "Répondre avec un maximum de 500 caractères."],
["role" => "user", "content" => $prompt]
],
"max_tokens" => 100,
"temperature" => 0.7
];
// Configuration de la requête HTTP pour OpenAI
$options = [
"http" => [
"header" => "Content-Type: application/json\r\n" .
"Authorization: Bearer " . $openaiApiKey . "\r\n",
"method" => "POST",
"content" => json_encode($data)
]
];
$context = stream_context_create($options);
$response = file_get_contents($openaiUrl, false, $context);
if ($response === FALSE) {
echo "Erreur lors de la requête à l'API OpenAI.";
exit;
}
// Traitement de la réponse
$responseData = json_decode($response, true);
if (isset($responseData['choices'][0]['message']['content'])) {
$chatgptResponse = trim($responseData['choices'][0]['message']['content']);
echo "Réponse de ChatGPT : $chatgptResponse\n";
} else {
echo "Erreur : Aucune réponse valide reçue de ChatGPT.";
exit;
}
// Envoi de la réponse à l'équipement Jeedom (ID 13602)
$cmdId = 13602;
$encodedResponse = urlencode($chatgptResponse);
$jeedomRequestUrl = "$jeedomApiUrl?apikey=$jeedomApiKey&type=cmd&id=$cmdId&value=$encodedResponse";
$request_http = new com_http($jeedomRequestUrl);
$request_http->setCURLOPT_HTTPAUTH(CURLAUTH_DIGEST);
$ret = $request_http->exec();
if ($ret === false) {
echo "Erreur lors de l'envoi à Jeedom.\n";
} else {
echo "Réponse envoyée à Jeedom avec succès.\n";
}