Update the AI Ticket Summary Prompt

This commit is contained in:
johnnyq
2025-09-06 17:57:58 -04:00
parent f51c3e9e3f
commit dcade3a5c7
4 changed files with 9 additions and 89 deletions

View File

@@ -14,8 +14,6 @@
<input type="text" class="form-control" name="name" placeholder="Template name" maxlength="200"> <input type="text" class="form-control" name="name" placeholder="Template name" maxlength="200">
</div> </div>
<?php if ($config_ai_enable == 1) { ?>
<!-- Prompt for AI -->
<div class="form-group"> <div class="form-group">
<label>Enter a prompt for the type of IT documentation you want to generate:</label> <label>Enter a prompt for the type of IT documentation you want to generate:</label>
<div class="input-group mb-3"> <div class="input-group mb-3">
@@ -27,7 +25,6 @@
</div> </div>
</div> </div>
</div> </div>
<?php } ?>
<!-- TinyMCE Content --> <!-- TinyMCE Content -->
<div class="form-group"> <div class="form-group">

View File

@@ -1,41 +0,0 @@
document.getElementById('rewordButton').addEventListener('click', function() {
var textInput = this.closest('form').querySelector('textarea');
var ticketDescription = document.getElementById('ticketDescription');
var rewordButton = document.getElementById('rewordButton');
var undoButton = document.getElementById('undoButton');
var previousText = textInput.value; // Store the current text
// Disable the Reword button and show loading state
rewordButton.disabled = true;
rewordButton.innerText = 'Processing...';
fetch('post.php?ai_reword', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
// Body with the text to reword and the ticket description
body: JSON.stringify({
text: textInput.value,
ticketDescription: ticketDescription.innerText.valueOf(),
}),
})
.then(response => response.json())
.then(data => {
textInput.value = data.rewordedText || 'Error: Could not reword the text.';
rewordButton.disabled = false;
rewordButton.innerText = 'Reword'; // Reset button text
undoButton.style.display = 'inline'; // Show the Undo button
// Set up the Undo button to revert to the previous text
undoButton.onclick = function() {
textInput.value = previousText;
this.style.display = 'none'; // Hide the Undo button again
};
})
.catch(error => {
console.error('Error:', error);
rewordButton.disabled = false;
rewordButton.innerText = 'Reword'; // Reset button text
});
});

View File

@@ -89,7 +89,6 @@ if (isset($_GET['ai_ticket_summary'])) {
$ticket_id = intval($_POST['ticket_id']); $ticket_id = intval($_POST['ticket_id']);
// Query the database for ticket details // Query the database for ticket details
// (You can reuse code from ticket.php or write a simplified query here)
$sql = mysqli_query($mysqli, " $sql = mysqli_query($mysqli, "
SELECT ticket_subject, ticket_details SELECT ticket_subject, ticket_details
FROM tickets FROM tickets
@@ -116,14 +115,20 @@ if (isset($_GET['ai_ticket_summary'])) {
$all_replies_text .= "\n[$reply_type]: $reply_text"; $all_replies_text .= "\n[$reply_type]: $reply_text";
} }
// Craft a prompt for ChatGPT $prompt = "
$prompt = "Based on the language detection (case not detected use default English), dont show \"Language Detected\", and Summarize using this language, the following ticket and its responses in a concise and clear way. The summary should be short, highlight the main issue, the actions taken, and any resolution steps:\n\nTicket Subject: $ticket_subject\nTicket Details: $ticket_details\nReplies:$all_replies_text\n\nShort Summary:"; Summarize the following IT ticket and its responses in a concise and clear manner. Your summary should highlight the main issue, actions taken, and resolution steps. Please avoid extra wording or irrelevant details.
Ticket Subject: $ticket_subject
Ticket Details: $ticket_details
Replies: $all_replies_text
Please make the summary as short as possible. Only provide the summary with no additional explanation.";
// Prepare the POST data // Prepare the POST data
$post_data = [ $post_data = [
"model" => "$model_name", "model" => "$model_name",
"messages" => [ "messages" => [
["role" => "system", "content" => "You are a helpful assistant."], ["role" => "system", "content" => "Your task is to summarize IT support tickets with clear, concise details."],
["role" => "user", "content" => $prompt] ["role" => "user", "content" => $prompt]
], ],
"temperature" => 0.7 "temperature" => 0.7

View File

@@ -1,41 +0,0 @@
document.getElementById('rewordButton').addEventListener('click', function() {
var textInput = this.closest('form').querySelector('textarea');
var ticketDescription = document.getElementById('ticketDescription');
var rewordButton = document.getElementById('rewordButton');
var undoButton = document.getElementById('undoButton');
var previousText = textInput.value; // Store the current text
// Disable the Reword button and show loading state
rewordButton.disabled = true;
rewordButton.innerText = 'Processing...';
fetch('post.php?ai_reword', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
// Body with the text to reword and the ticket description
body: JSON.stringify({
text: textInput.value,
ticketDescription: ticketDescription.innerText.valueOf(),
}),
})
.then(response => response.json())
.then(data => {
textInput.value = data.rewordedText || 'Error: Could not reword the text.';
rewordButton.disabled = false;
rewordButton.innerText = 'Reword'; // Reset button text
undoButton.style.display = 'inline'; // Show the Undo button
// Set up the Undo button to revert to the previous text
undoButton.onclick = function() {
textInput.value = previousText;
this.style.display = 'none'; // Hide the Undo button again
};
})
.catch(error => {
console.error('Error:', error);
rewordButton.disabled = false;
rewordButton.innerText = 'Reword'; // Reset button text
});
});