MEO1 commited on
Commit
fa0d552
·
verified ·
1 Parent(s): 3ce525b

Update index.html

Browse files
Files changed (1) hide show
  1. index.html +43 -24
index.html CHANGED
@@ -85,8 +85,7 @@
85
 
86
  // Hugging Face NLI API ile çelişki tespiti
87
  async function analyzeContradictionWithNLI(sentence1, sentence2, apiKey, modelName) {
88
- const premise = sentence1;
89
- const hypothesis = sentence2;
90
 
91
  const response = await fetch(`https://api-inference.huggingface.co/models/${modelName}`, {
92
  method: 'POST',
@@ -95,9 +94,9 @@
95
  'Content-Type': 'application/json',
96
  },
97
  body: JSON.stringify({
98
- inputs: {
99
- premise: premise,
100
- hypothesis: hypothesis
101
  }
102
  })
103
  });
@@ -105,10 +104,20 @@
105
  if (!response.ok) {
106
  if (response.status === 503) {
107
  // Model loading, retry after delay
108
- await new Promise(resolve => setTimeout(resolve, 2000));
 
109
  return await analyzeContradictionWithNLI(sentence1, sentence2, apiKey, modelName);
110
  }
111
- throw new Error(`API Error: ${response.status} - ${response.statusText}`);
 
 
 
 
 
 
 
 
 
112
  }
113
 
114
  const result = await response.json();
@@ -208,20 +217,26 @@
208
  // Sonucu işle
209
  let contradictionScore = 0;
210
 
211
- if (Array.isArray(result)) {
212
- // Eski format: array of objects
 
 
 
 
 
 
 
 
 
 
213
  const contradictionResult = result.find(r =>
214
- r.label === 'CONTRADICTION' ||
215
- r.label === 'contradiction' ||
216
- r.label === 'CONTRADICTORY'
217
  );
218
  contradictionScore = contradictionResult?.score || 0;
219
- } else if (result.labels && result.scores) {
220
- // Yeni format: object with labels and scores arrays
221
  const contradictionIndex = result.labels.findIndex(label =>
222
- label === 'CONTRADICTION' ||
223
- label === 'contradiction' ||
224
- label === 'CONTRADICTORY'
225
  );
226
  if (contradictionIndex !== -1) {
227
  contradictionScore = result.scores[contradictionIndex];
@@ -230,8 +245,8 @@
230
 
231
  console.log(`Analiz: "${sentence1.substring(0, 30)}..." vs "${sentence2.substring(0, 30)}..." - Çelişki: ${(contradictionScore * 100).toFixed(1)}%`);
232
 
233
- // Çelişki eşiği
234
- if (contradictionScore > 0.7) { // %70'den yüksek çelişki skoru
235
  potentialContradictions.push({
236
  sentence1: sentence1,
237
  sentence2: sentence2,
@@ -307,11 +322,11 @@
307
  if (results.length === 0) {
308
  let message = '<div style="text-align: center; padding: 20px;">';
309
  message += '<h3>🎉 Analiz Tamamlandı</h3>';
310
- message += '<p>Belirlenen eşik değerinde (%70) potansiyel çelişki bulunamadı.</p>';
311
  message += `<div style="background-color: #f3f4f6; padding: 15px; border-radius: 5px; margin-top: 15px;">
312
  <h4>${modelName} Modeli Sonucu</h4>
313
  <p>Bu model özellikle çelişki tespiti için optimize edilmiştir.</p>
314
- <p>%70'den yüksek çelişki skoru aranan eşik değeridir.</p>
315
  <p>Sonuç: Metninizde güçlü çelişkiler tespit edilmemiştir.</p>
316
  </div>`;
317
  message += '</div>';
@@ -324,7 +339,7 @@
324
  headerText = `<h3>🚨 Toplam ${totalFound} çelişki bulundu - En güçlü ${results.length} tanesi gösteriliyor:</h3>`;
325
  }
326
 
327
- headerText += `<p style="color: #6b7280; margin-bottom: 20px;">Model: <strong>${modelName}</strong> | Eşik: <strong>%70</strong></p>`;
328
  resultsDiv.innerHTML = headerText;
329
 
330
  // Sonuçları çelişki skoruna göre sırala
@@ -346,10 +361,14 @@
346
  severityColor = '#ef4444';
347
  severityText = 'Yüksek';
348
  bgColor = '#fef2f2';
349
- } else if (item.contradictionScore > 0.7) {
350
  severityColor = '#f59e0b';
351
  severityText = 'Orta-Yüksek';
352
  bgColor = '#fef3c7';
 
 
 
 
353
  }
354
 
355
  div.style.backgroundColor = bgColor;
@@ -372,7 +391,7 @@
372
  <p><strong>Gösterilen:</strong> ${results.length}</p>
373
  <p><strong>En Yüksek Skor:</strong> ${(results[0].contradictionScore * 100).toFixed(1)}%</p>
374
  <p style="margin-top: 15px; color: #6b7280; font-size: 14px;">
375
- <em>Not: Çelişki skoru %70'in üzerindeki cümle çiftleri potansiyel çelişki olarak değerlendirilmiştir.</em>
376
  </p>
377
  `;
378
  resultsDiv.appendChild(summaryDiv);
 
85
 
86
  // Hugging Face NLI API ile çelişki tespiti
87
  async function analyzeContradictionWithNLI(sentence1, sentence2, apiKey, modelName) {
88
+ const inputText = `${sentence1} [SEP] ${sentence2}`;
 
89
 
90
  const response = await fetch(`https://api-inference.huggingface.co/models/${modelName}`, {
91
  method: 'POST',
 
94
  'Content-Type': 'application/json',
95
  },
96
  body: JSON.stringify({
97
+ inputs: inputText,
98
+ parameters: {
99
+ candidate_labels: ["contradiction", "entailment", "neutral"]
100
  }
101
  })
102
  });
 
104
  if (!response.ok) {
105
  if (response.status === 503) {
106
  // Model loading, retry after delay
107
+ statusDiv.textContent = 'Model yükleniyor, lütfen bekleyin...';
108
+ await new Promise(resolve => setTimeout(resolve, 3000));
109
  return await analyzeContradictionWithNLI(sentence1, sentence2, apiKey, modelName);
110
  }
111
+
112
+ // Hata detayını almak için response text'ini oku
113
+ let errorText = '';
114
+ try {
115
+ errorText = await response.text();
116
+ } catch (e) {
117
+ errorText = response.statusText;
118
+ }
119
+
120
+ throw new Error(`API Error: ${response.status} - ${errorText}`);
121
  }
122
 
123
  const result = await response.json();
 
217
  // Sonucu işle
218
  let contradictionScore = 0;
219
 
220
+ console.log('API Response:', result);
221
+
222
+ if (result.labels && result.scores) {
223
+ // Zero-shot classification format
224
+ const contradictionIndex = result.labels.findIndex(label =>
225
+ label.toLowerCase().includes('contradiction')
226
+ );
227
+ if (contradictionIndex !== -1) {
228
+ contradictionScore = result.scores[contradictionIndex];
229
+ }
230
+ } else if (Array.isArray(result)) {
231
+ // Array format - classification result
232
  const contradictionResult = result.find(r =>
233
+ r.label && r.label.toLowerCase().includes('contradiction')
 
 
234
  );
235
  contradictionScore = contradictionResult?.score || 0;
236
+ } else if (result.sequence && result.labels) {
237
+ // Sequence classification format
238
  const contradictionIndex = result.labels.findIndex(label =>
239
+ label.toLowerCase().includes('contradiction')
 
 
240
  );
241
  if (contradictionIndex !== -1) {
242
  contradictionScore = result.scores[contradictionIndex];
 
245
 
246
  console.log(`Analiz: "${sentence1.substring(0, 30)}..." vs "${sentence2.substring(0, 30)}..." - Çelişki: ${(contradictionScore * 100).toFixed(1)}%`);
247
 
248
+ // Çelişki eşiği - daha düşük bir eşik deneyelim
249
+ if (contradictionScore > 0.4) { // %40'dan yüksek çelişki skoru
250
  potentialContradictions.push({
251
  sentence1: sentence1,
252
  sentence2: sentence2,
 
322
  if (results.length === 0) {
323
  let message = '<div style="text-align: center; padding: 20px;">';
324
  message += '<h3>🎉 Analiz Tamamlandı</h3>';
325
+ message += '<p>Belirlenen eşik değerinde (%40) potansiyel çelişki bulunamadı.</p>';
326
  message += `<div style="background-color: #f3f4f6; padding: 15px; border-radius: 5px; margin-top: 15px;">
327
  <h4>${modelName} Modeli Sonucu</h4>
328
  <p>Bu model özellikle çelişki tespiti için optimize edilmiştir.</p>
329
+ <p>%40'dan yüksek çelişki skoru aranan eşik değeridir.</p>
330
  <p>Sonuç: Metninizde güçlü çelişkiler tespit edilmemiştir.</p>
331
  </div>`;
332
  message += '</div>';
 
339
  headerText = `<h3>🚨 Toplam ${totalFound} çelişki bulundu - En güçlü ${results.length} tanesi gösteriliyor:</h3>`;
340
  }
341
 
342
+ headerText += `<p style="color: #6b7280; margin-bottom: 20px;">Model: <strong>${modelName}</strong> | Eşik: <strong>%40</strong></p>`;
343
  resultsDiv.innerHTML = headerText;
344
 
345
  // Sonuçları çelişki skoruna göre sırala
 
361
  severityColor = '#ef4444';
362
  severityText = 'Yüksek';
363
  bgColor = '#fef2f2';
364
+ } else if (item.contradictionScore > 0.5) {
365
  severityColor = '#f59e0b';
366
  severityText = 'Orta-Yüksek';
367
  bgColor = '#fef3c7';
368
+ } else if (item.contradictionScore > 0.4) {
369
+ severityColor = '#eab308';
370
+ severityText = 'Orta';
371
+ bgColor = '#fefce8';
372
  }
373
 
374
  div.style.backgroundColor = bgColor;
 
391
  <p><strong>Gösterilen:</strong> ${results.length}</p>
392
  <p><strong>En Yüksek Skor:</strong> ${(results[0].contradictionScore * 100).toFixed(1)}%</p>
393
  <p style="margin-top: 15px; color: #6b7280; font-size: 14px;">
394
+ <em>Not: Çelişki skoru %40'ın üzerindeki cümle çiftleri potansiyel çelişki olarak değerlendirilmiştir.</em>
395
  </p>
396
  `;
397
  resultsDiv.appendChild(summaryDiv);