mirror of https://github.com/itflow-org/itflow
Update the AI Ticket Summary Prompt
This commit is contained in:
parent
f51c3e9e3f
commit
dcade3a5c7
|
|
@ -14,8 +14,6 @@
|
|||
<input type="text" class="form-control" name="name" placeholder="Template name" maxlength="200">
|
||||
</div>
|
||||
|
||||
<?php if ($config_ai_enable == 1) { ?>
|
||||
<!-- Prompt for AI -->
|
||||
<div class="form-group">
|
||||
<label>Enter a prompt for the type of IT documentation you want to generate:</label>
|
||||
<div class="input-group mb-3">
|
||||
|
|
@ -27,7 +25,6 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php } ?>
|
||||
|
||||
<!-- TinyMCE Content -->
|
||||
<div class="form-group">
|
||||
|
|
|
|||
|
|
@ -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
|
||||
});
|
||||
});
|
||||
13
post/ai.php
13
post/ai.php
|
|
@ -89,7 +89,6 @@ if (isset($_GET['ai_ticket_summary'])) {
|
|||
$ticket_id = intval($_POST['ticket_id']);
|
||||
|
||||
// Query the database for ticket details
|
||||
// (You can reuse code from ticket.php or write a simplified query here)
|
||||
$sql = mysqli_query($mysqli, "
|
||||
SELECT ticket_subject, ticket_details
|
||||
FROM tickets
|
||||
|
|
@ -116,14 +115,20 @@ if (isset($_GET['ai_ticket_summary'])) {
|
|||
$all_replies_text .= "\n[$reply_type]: $reply_text";
|
||||
}
|
||||
|
||||
// Craft a prompt for ChatGPT
|
||||
$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:";
|
||||
$prompt = "
|
||||
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
|
||||
$post_data = [
|
||||
"model" => "$model_name",
|
||||
"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]
|
||||
],
|
||||
"temperature" => 0.7
|
||||
|
|
|
|||
|
|
@ -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
|
||||
});
|
||||
});
|
||||
Loading…
Reference in New Issue