Diff: STRATO-apps/wordpress_03/app/wp-content/plugins/aimogen-pro/scripts/comparison.js
Keine Baseline-Datei – Diff nur gegen leer.
1
-
1
+
"use strict";
2
+
jQuery(document).ready(function ($)
3
+
{
4
+
function aiomaticLoading(btn) {
5
+
btn.attr('disabled', 'disabled');
6
+
btn.after('<span class="loading-indicator"></span>');
7
+
}
8
+
function aiomaticRmLoading(btn) {
9
+
btn.removeAttr('disabled');
10
+
btn.next('.loading-indicator').remove();
11
+
}
12
+
$(document).on('click', '.aiomatic-comparison-cancel', function (e){
13
+
let id = $(e.currentTarget).attr('data-id');
14
+
let item = $(e.currentTarget).closest('.aiomatic-comparison-item');
15
+
window['aiomatic_comparison_'+id].abort();
16
+
let btn = item.find('.aiomatic-comparison-submit');
17
+
aiomaticRmLoading(btn);
18
+
item.find('.aiomatic-comparison-space').hide();
19
+
$(e.currentTarget).hide();
20
+
aiomaticCompareResult();
21
+
});
22
+
$(document).on('click','.aiomatic-comparison-close', function (e){
23
+
$(e.currentTarget).closest('.aiomatic-comparison-item').remove();
24
+
aiomaticCompareResult();
25
+
});
26
+
function aiomaticCompareResult(){
27
+
let max_tokens = 0;
28
+
let max_words = 0;
29
+
let min_cost = 0;
30
+
let min_duration = 0;
31
+
let el_tokens = false;
32
+
let el_words = false;
33
+
let el_cost =false;
34
+
let el_duration = false;
35
+
$('.aiomatic-comparison-result').each(function (idx, item){
36
+
let duration = parseFloat($(item).attr('data-duration'));
37
+
let words = parseFloat($(item).attr('data-words'));
38
+
let cost = parseFloat($(item).attr('data-cost'))
39
+
let tokens = parseFloat($(item).attr('data-tokens'));
40
+
if(tokens > max_tokens){
41
+
max_tokens = tokens;
42
+
el_tokens = item;
43
+
}
44
+
if((min_cost > 0 && cost < min_cost) || min_cost === 0){
45
+
min_cost = cost;
46
+
el_cost = item;
47
+
}
48
+
if((min_duration > 0 && duration < min_duration) || min_duration === 0){
49
+
min_duration = duration;
50
+
el_duration = item;
51
+
}
52
+
if((max_words > 0 && words > max_words) || max_words === 0){
53
+
max_words = words;
54
+
el_words = item;
55
+
}
56
+
});
57
+
$('.aiomatic-comparison-result').each(function (idx, item){
58
+
$(item).find('.aiomatic-comparison-cost').removeClass('aiomatic-good');
59
+
$(item).find('.aiomatic-comparison-words').removeClass('aiomatic-good');
60
+
$(item).find('.aiomatic-comparison-tokens').removeClass('aiomatic-good');
61
+
$(item).find('.aiomatic-comparison-duration').removeClass('aiomatic-good');
62
+
$(item).find('.aiomatic-comparison-tokens').addClass('aiomatic-not-good');
63
+
$(item).find('.aiomatic-comparison-words').addClass('aiomatic-not-good');
64
+
$(item).find('.aiomatic-comparison-duration').addClass('aiomatic-not-good');
65
+
$(item).find('.aiomatic-comparison-cost').addClass('aiomatic-not-good');
66
+
});
67
+
if(el_tokens){
68
+
$(el_tokens).find('.aiomatic-comparison-tokens').removeClass('aiomatic-not-good');
69
+
$(el_tokens).find('.aiomatic-comparison-tokens').addClass('aiomatic-good');
70
+
}
71
+
if(el_words){
72
+
$(el_words).find('.aiomatic-comparison-words').removeClass('aiomatic-not-good');
73
+
$(el_words).find('.aiomatic-comparison-words').addClass('aiomatic-good');
74
+
}
75
+
if(el_cost){
76
+
$(el_cost).find('.aiomatic-comparison-cost').removeClass('aiomatic-not-good');
77
+
$(el_cost).find('.aiomatic-comparison-cost').addClass('aiomatic-good');
78
+
}
79
+
if(el_duration){
80
+
$(el_duration).find('.aiomatic-comparison-duration').removeClass('aiomatic-not-good');
81
+
$(el_duration).find('.aiomatic-comparison-duration').addClass('aiomatic-good');
82
+
}
83
+
84
+
}
85
+
$(document).on('change','.aiomatic-comparison-select-prompt', function (e){
86
+
let sel = $(e.currentTarget);
87
+
let value = sel.val();
88
+
let form = sel.closest('.aiomatic-comparison-form');
89
+
let textarea = form.find('textarea[name=prompt]');
90
+
textarea.val(value);
91
+
textarea.trigger('input');
92
+
});
93
+
$(document).on('input', 'textarea[name="prompt"]', function () {
94
+
const maxLength = 128000;
95
+
const length = $(this).val().length;
96
+
$(this).next('.character-counter').text(length + "/" + maxLength);
97
+
if (length > maxLength) {
98
+
$(this).next('.character-counter').css("color", "red");
99
+
} else {
100
+
$(this).next('.character-counter').css("color", "inherit");
101
+
}
102
+
});
103
+
104
+
$(document).on('click', '.advanced-settings-toggle', function () {
105
+
$(this).next('.advanced-settings').slideToggle();
106
+
$(this).text($(this).text() === 'Show Advanced Settings' ? 'Hide Advanced Settings' : 'Show Advanced Settings');
107
+
});
108
+
109
+
for (let i = 0; i < 2; i++) {
110
+
let html = $('.aiomatic-comparison-default').html();
111
+
html = html.replace('[ID]', i);
112
+
$('.comparison_tool').append(html);
113
+
if(i == 1)
114
+
{
115
+
$('.comparison_tool').append('<div class="aiomatic-comparison-add"><span class="dashicons dashicons-plus-alt"></span>' + aiomatic_completition_ajax_object_comparison.add_comparison + '</div>' );
116
+
}
117
+
}
118
+
119
+
$(document).on('click', '.aiomatic-comparison-add', function () {
120
+
$(this).before($('.aiomatic-comparison-default').html());
121
+
});
122
+
123
+
$(document).on('submit', '.aiomatic-comparison-form', function (e) {
124
+
e.preventDefault();
125
+
const btn = $(this).find('.aiomatic-comparison-submit');
126
+
aiomaticLoading(btn);
127
+
aiomaticRmLoading(btn);
128
+
});
129
+
130
+
$(document).on('submit','.aiomatic-comparison-form', function (e){
131
+
e.preventDefault();
132
+
let startTime = new Date();
133
+
let form = $(e.currentTarget);
134
+
let item = form.closest('.aiomatic-comparison-item');
135
+
item.removeClass('aiomatic-comparison-result')
136
+
let temperature = parseFloat(form.find('input[name=temperature]').val());
137
+
let top_p = parseFloat(form.find('input[name=top_p]').val());
138
+
let frequency_penalty = parseFloat(form.find('input[name=frequency_penalty]').val());
139
+
let presence_penalty = parseFloat(form.find('input[name=presence_penalty]').val());
140
+
let prompt = form.find('textarea[name=prompt]').val();
141
+
let model;
142
+
143
+
let provider = $('.aiomatic-mb-10').data('provider');
144
+
145
+
if (provider === 'Azure') {
146
+
model = form.find('input[name=model]').val();
147
+
} else {
148
+
model = form.find('select[name=model]').val();
149
+
}
150
+
151
+
let has_error = false;
152
+
let btn = form.find('.aiomatic-comparison-submit');
153
+
if(prompt === ''){
154
+
has_error = 'Please enter Prompt';
155
+
}
156
+
157
+
if(!has_error && (temperature > 2 || temperature < 0)){
158
+
has_error = aiomatic_completition_ajax_object_comparison.valid_temp;
159
+
}
160
+
if(!has_error && (top_p > 1 || top_p < 0)){
161
+
has_error = aiomatic_completition_ajax_object_comparison.valid_topp;
162
+
}
163
+
if(!has_error && (frequency_penalty > 2 || frequency_penalty < 0)){
164
+
has_error = aiomatic_completition_ajax_object_comparison.valid_frequency;
165
+
}
166
+
if(!has_error && (presence_penalty > 2 || presence_penalty < -2)){
167
+
has_error = aiomatic_completition_ajax_object_comparison.valid_presense;
168
+
}
169
+
if(!has_error){
170
+
let randomID = Math.ceil(Math.random() * 10000);
171
+
item.find('.aiomatic-comparison-cancel').show();
172
+
item.find('.aiomatic-comparison-space').show();
173
+
item.find('.aiomatic-comparison-cancel').attr('data-id', randomID);
174
+
$('.aiomatic-comparison-item').each(function (idx, itemx){
175
+
$(itemx).find('.aiomatic-comparison-cost').removeClass('aiomatic-good');
176
+
$(itemx).find('.aiomatic-comparison-words').removeClass('aiomatic-good');
177
+
$(itemx).find('.aiomatic-comparison-tokens').removeClass('aiomatic-good');
178
+
$(itemx).find('.aiomatic-comparison-duration').removeClass('aiomatic-good');
179
+
$(itemx).find('.aiomatic-comparison-tokens').removeClass('aiomatic-not-good');
180
+
$(itemx).find('.aiomatic-comparison-words').removeClass('aiomatic-not-good');
181
+
$(itemx).find('.aiomatic-comparison-duration').removeClass('aiomatic-not-good');
182
+
$(itemx).find('.aiomatic-comparison-cost').removeClass('aiomatic-not-good');
183
+
});
184
+
$(item).find('.aiomatic-comparison-cost').empty();
185
+
$(item).find('.aiomatic-comparison-words').empty();
186
+
$(item).find('.aiomatic-comparison-tokens').empty();
187
+
$(item).find('.aiomatic-comparison-duration').empty();
188
+
window['aiomatic_comparison_' + randomID] = $.ajax({
189
+
url: aiomatic_completition_ajax_object_comparison.ajax_url,
190
+
data: form.serialize(),
191
+
dataType: 'JSON',
192
+
type:'POST',
193
+
beforeSend: function (res){
194
+
aiomaticLoading(btn)
195
+
},
196
+
success: function (res){
197
+
aiomaticRmLoading(btn);
198
+
item.find('.aiomatic-comparison-cancel').hide();
199
+
item.find('.aiomatic-comparison-space').hide();
200
+
if(res.status === 'success'){
201
+
let endTime = new Date();
202
+
let timeDiff = (endTime - startTime) / 1000;
203
+
let text = res.text;
204
+
text = text.replace(/\\/g,'');
205
+
form.find('.aiomatic-comparison-output').val(text);
206
+
form.find('.aiomatic-comparison-tokens').html(res.tokens);
207
+
form.find('.aiomatic-comparison-cost').html('$' + parseFloat(res.cost).toFixed(5));
208
+
form.find('.aiomatic-comparison-words').html(res.words);
209
+
form.find('.aiomatic-comparison-duration').html(timeDiff.toFixed(2) + ' seconds');
210
+
item.addClass('aiomatic-comparison-result');
211
+
item.attr('data-tokens',res.tokens);
212
+
item.attr('data-cost',res.cost);
213
+
item.attr('data-words',res.words);
214
+
item.attr('data-duration',timeDiff);
215
+
aiomaticCompareResult();
216
+
}
217
+
else{
218
+
form.find('.aiomatic-comparison-output').val(res.msg);
219
+
aiomaticCompareResult();
220
+
}
221
+
}
222
+
})
223
+
}
224
+
else{
225
+
alert(has_error);
226
+
}
227
+
});
228
+
});