boazchung commited on
Commit
d8d37b0
1 Parent(s): fb44f9a

Upload 25 files

Browse files
.gitattributes CHANGED
@@ -33,3 +33,5 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ audio/jfk.wav filter=lfs diff=lfs merge=lfs -text
37
+ audio/ted_60.wav filter=lfs diff=lfs merge=lfs -text
asr-english.html ADDED
@@ -0,0 +1,222 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <title>Automatic Speech Recognition - Hugging Face Transformers.js</title>
7
+
8
+ <script type="module">
9
+ // Import the library
10
+ import { pipeline } from 'https://cdn.jsdelivr.net/npm/@xenova/[email protected]';
11
+
12
+ // Make it available globally
13
+ window.pipeline = pipeline;
14
+ </script>
15
+
16
+ <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
17
+
18
+ <link rel="stylesheet" href="css/styles.css">
19
+ </head>
20
+
21
+ <body>
22
+ <div class="container-main">
23
+ <!-- Page Header -->
24
+ <div class="header">
25
+ <div class="header-logo">
26
+ <img src="images/logo.png" alt="logo">
27
+ </div>
28
+ <div class="header-main-text">
29
+ <h1>Hugging Face Transformers.js</h1>
30
+ </div>
31
+ <div class="header-sub-text">
32
+ <h3>Free AI Models for JavaScript Web Development</h3>
33
+ </div>
34
+ </div>
35
+ <hr> <!-- Separator -->
36
+
37
+ <!-- Back to Home button -->
38
+ <div class="row mt-5">
39
+ <div class="col-md-12 text-center">
40
+ <a href="index.html" class="btn btn-outline-secondary"
41
+ style="color: #3c650b; border-color: #3c650b;">Back to Main Page</a>
42
+ </div>
43
+ </div>
44
+
45
+ <!-- Content -->
46
+ <div class="container mt-5">
47
+ <!-- Centered Titles -->
48
+ <div class="text-center">
49
+ <h2>Audio</h2>
50
+ <h4>Automatic Speech Recognition - English</h4>
51
+ </div>
52
+
53
+ <!-- Actual Content of this page -->
54
+ <div id="transcribe-english-container" class="container mt-4">
55
+ <h5>Transcribe English:</h5>
56
+ <div class="d-flex align-items-center">
57
+ <label for="transcribeEnglishURLText" class="mb-0 text-nowrap" style="margin-right: 15px;">Enter
58
+ audio URL:</label>
59
+ <input type="text" class="form-control flex-grow-1" id="transcribeEnglishURLText"
60
+ value="https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/jfk.wav"
61
+ placeholder="Enter audio" style="margin-right: 15px; margin-left: 15px;">
62
+ <button id="TranscribeEnglishButton" class="btn btn-primary"
63
+ onclick="transcribeEnglish()">Transcribe</button>
64
+ </div>
65
+ <div class="mt-4">
66
+ <h4>Output:</h4>
67
+ <pre id="outputArea"></pre>
68
+ </div>
69
+ </div>
70
+
71
+ <hr> <!-- Line Separator -->
72
+
73
+ <div id="transcribe-english-local-container" class="container mt-4">
74
+ <h5>Transcribe English a Local File:</h5>
75
+ <div class="d-flex align-items-center">
76
+ <label for="transcribeEnglishLocalFile" class="mb-0 text-nowrap" style="margin-right: 15px;">Select
77
+ Local Audio:</label>
78
+ <input type="file" id="transcribeEnglishLocalFile" accept="audio/*" />
79
+ <button id="TranscribeEnglishButtonLocal" class="btn btn-primary"
80
+ onclick="transcribeEnglishLocal()">Transcribe</button>
81
+ </div>
82
+ <div class="mt-4">
83
+ <h4>Output:</h4>
84
+ <pre id="outputAreaLocal"></pre>
85
+ </div>
86
+ </div>
87
+
88
+ <hr> <!-- Line Separator -->
89
+
90
+ <div id="transcribe-english-timestamps-container" class="container mt-4">
91
+ <h5>Transcribe English with Timestamps:</h5>
92
+ <div class="d-flex align-items-center">
93
+ <label for="transcribeEnglishTimestampsURLText" class="mb-0 text-nowrap"
94
+ style="margin-right: 15px;">Enter
95
+ audio URL:</label>
96
+ <input type="text" class="form-control flex-grow-1" id="transcribeEnglishTimestampsURLText"
97
+ value="https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/jfk.wav"
98
+ placeholder="Enter audio" style="margin-right: 15px; margin-left: 15px;">
99
+ <button id="TranscribeEnglishTimestampsButton" class="btn btn-primary"
100
+ onclick="transcribeEnglishTimestamps()">Transcribe</button>
101
+ </div>
102
+ <div class="mt-4">
103
+ <h4>Output:</h4>
104
+ <pre id="outputAreaTimestamps"></pre>
105
+ </div>
106
+ </div>
107
+
108
+ <hr> <!-- Line Separator -->
109
+
110
+ <div id="transcribe-english-word-level-timestamps-container" class="container mt-4">
111
+ <h5>Transcribe English with Word-level Timestamps:</h5>
112
+ <div class="d-flex align-items-center">
113
+ <label for="transcribeEnglishWordlevelTimestampsURLText" class="mb-0 text-nowrap"
114
+ style="margin-right: 15px;">Enter
115
+ audio URL:</label>
116
+ <input type="text" class="form-control flex-grow-1" id="transcribeEnglishWordlevelTimestampsURLText"
117
+ value="https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/jfk.wav"
118
+ placeholder="Enter audio" style="margin-right: 15px; margin-left: 15px;">
119
+ <button id="TranscribeEnglishWord-levelTimestampsButton" class="btn btn-primary"
120
+ onclick="transcribeEnglishWordlevelTimestamps()">Transcribe</button>
121
+ </div>
122
+ <div class="mt-4">
123
+ <h4>Output:</h4>
124
+ <pre id="outputAreaWordlevelTimestamps"></pre>
125
+ </div>
126
+ </div>
127
+
128
+ <hr> <!-- Line Separator -->
129
+
130
+ <div id="transcribe-english-30-container" class="container mt-4">
131
+ <h5>Transcribe/Translate Audio Longer Than 30 Seconds:</h5>
132
+ <div class="d-flex align-items-center">
133
+ <label for="transcribeEnglish30URLText" class="mb-0 text-nowrap" style="margin-right: 15px;">Enter
134
+ audio URL:</label>
135
+ <input type="text" class="form-control flex-grow-1" id="transcribeEnglish30URLText"
136
+ value="https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/ted_60.wav"
137
+ placeholder="Enter audio" style="margin-right: 15px; margin-left: 15px;">
138
+ <button id="TranscribeEnglish30Button" class="btn btn-primary"
139
+ onclick="transcribeEnglish30()">Transcribe</button>
140
+ </div>
141
+ <div class="mt-4">
142
+ <h4>Output:</h4>
143
+ <pre id="outputArea30"></pre>
144
+ </div>
145
+ </div>
146
+
147
+ <!-- Back to Home button -->
148
+ <div class="row mt-5">
149
+ <div class="col-md-12 text-center">
150
+ <a href="index.html" class="btn btn-outline-secondary"
151
+ style="color: #3c650b; border-color: #3c650b;">Back to Main Page</a>
152
+ </div>
153
+ </div>
154
+ </div>
155
+ </div>
156
+
157
+ <script>
158
+
159
+ let transcriber;
160
+
161
+ // Initialize the sentiment analysis model
162
+ async function initializeModel() {
163
+ transcriber = await pipeline('automatic-speech-recognition', 'Xenova/whisper-tiny.en');
164
+
165
+ }
166
+
167
+ async function transcribeEnglish() {
168
+ const textFieldValue = document.getElementById("transcribeEnglishURLText").value.trim();
169
+
170
+ let result = await transcriber(textFieldValue);
171
+
172
+ document.getElementById("outputArea").innerText = JSON.stringify(result, null, 2);
173
+ }
174
+
175
+ async function transcribeEnglishLocal() {
176
+ const fileInput = document.getElementById("transcribeEnglishLocalFile");
177
+ const file = fileInput.files[0];
178
+
179
+ if (!file) {
180
+ alert('Please select an audio file first.');
181
+ return;
182
+ }
183
+
184
+ // Create a Blob URL from the file
185
+ const url = URL.createObjectURL(file);
186
+
187
+ let result = await transcriber(url);
188
+
189
+ document.getElementById("outputAreaLocal").innerText = JSON.stringify(result, null, 2);
190
+ }
191
+
192
+ async function transcribeEnglishTimestamps() {
193
+ const textFieldValue = document.getElementById("transcribeEnglishTimestampsURLText").value.trim();
194
+
195
+ let result = await transcriber(textFieldValue, { return_timestamps: true });
196
+
197
+ document.getElementById("outputAreaTimestamps").innerText = JSON.stringify(result, null, 2);
198
+ }
199
+
200
+ async function transcribeEnglishWordlevelTimestamps() {
201
+ const textFieldValue = document.getElementById("transcribeEnglishWordlevelTimestampsURLText").value.trim();
202
+
203
+ let result = await transcriber(textFieldValue, { return_timestamps: 'word' });
204
+
205
+ document.getElementById("outputAreaWordlevelTimestamps").innerText = JSON.stringify(result, null, 2);
206
+ }
207
+
208
+
209
+ async function transcribeEnglish30() {
210
+ const textFieldValue = document.getElementById("transcribeEnglish30URLText").value.trim();
211
+
212
+ let result = await transcriber(textFieldValue, { chunk_length_s: 30, stride_length_s: 5 });
213
+
214
+ document.getElementById("outputArea30").innerText = JSON.stringify(result, null, 2);
215
+ }
216
+
217
+ // Initialize the model after the DOM is completely loaded
218
+ window.addEventListener("DOMContentLoaded", initializeModel);
219
+ </script>
220
+ </body>
221
+
222
+ </html>
asr-non-english.html ADDED
@@ -0,0 +1,163 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <title>Automatic Speech Recognition - Hugging Face Transformers.js</title>
7
+
8
+ <script type="module">
9
+ // Import the library
10
+ import { pipeline } from 'https://cdn.jsdelivr.net/npm/@xenova/[email protected]';
11
+
12
+ // Make it available globally
13
+ window.pipeline = pipeline;
14
+ </script>
15
+
16
+ <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
17
+
18
+ <link rel="stylesheet" href="css/styles.css">
19
+ </head>
20
+
21
+ <body>
22
+ <div class="container-main">
23
+ <!-- Page Header -->
24
+ <div class="header">
25
+ <div class="header-logo">
26
+ <img src="images/logo.png" alt="logo">
27
+ </div>
28
+ <div class="header-main-text">
29
+ <h1>Hugging Face Transformers.js</h1>
30
+ </div>
31
+ <div class="header-sub-text">
32
+ <h3>Free AI Models for JavaScript Web Development</h3>
33
+ </div>
34
+ </div>
35
+ <hr> <!-- Separator -->
36
+
37
+ <!-- Back to Home button -->
38
+ <div class="row mt-5">
39
+ <div class="col-md-12 text-center">
40
+ <a href="index.html" class="btn btn-outline-secondary"
41
+ style="color: #3c650b; border-color: #3c650b;">Back to Main Page</a>
42
+ </div>
43
+ </div>
44
+
45
+ <!-- Content -->
46
+ <div class="container mt-5">
47
+ <!-- Centered Titles -->
48
+ <div class="text-center">
49
+ <h2>Audio</h2>
50
+ <h4>Automatic Speech Recognition - French</h4>
51
+ </div>
52
+
53
+ <!-- Actual Content of this page -->
54
+ <div id="transcribe-non-english-container" class="container mt-4">
55
+ <h5>Transcribe French:</h5>
56
+ <div class="d-flex align-items-center">
57
+ <label for="transcribeNonEnglishURLText" class="mb-0 text-nowrap" style="margin-right: 15px;">Enter
58
+ audio URL:</label>
59
+ <input type="text" class="form-control flex-grow-1" id="transcribeNonEnglishURLText"
60
+ value="https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/french-audio.mp3"
61
+ placeholder="Enter audio" style="margin-right: 15px; margin-left: 15px;">
62
+ <button id="TranscribeNonEnglishButton" class="btn btn-primary" onclick="transcribeNonEnglish()">Transcribe</button>
63
+ </div>
64
+ <div class="mt-4">
65
+ <h4>Output:</h4>
66
+ <pre id="outputArea"></pre>
67
+ </div>
68
+ </div>
69
+
70
+ <hr> <!-- Line Separator -->
71
+
72
+ <div id="transcribe-non-english-local-container" class="container mt-4">
73
+ <h5>Transcribe French a Local File:</h5>
74
+ <div class="d-flex align-items-center">
75
+ <label for="transcribeNonEnglishLocalFile" class="mb-0 text-nowrap"
76
+ style="margin-right: 15px;">Select Local Audio:</label>
77
+ <input type="file" id="transcribeNonEnglishLocalFile" accept="audio/*" />
78
+ <button id="TranscribeNonEnglishButtonLocal" class="btn btn-primary"
79
+ onclick="transcribeNonEnglishLocal()">Transcribe</button>
80
+ </div>
81
+ <div class="mt-4">
82
+ <h4>Output:</h4>
83
+ <pre id="outputAreaLocal"></pre>
84
+ </div>
85
+ </div>
86
+
87
+ <hr> <!-- Line Separator -->
88
+
89
+ <div id="transcribe-to-english-container" class="container mt-4">
90
+ <h5>Translate French to English:</h5>
91
+ <div class="d-flex align-items-center">
92
+ <label for="transcribeToEnglishURLText" class="mb-0 text-nowrap" style="margin-right: 15px;">Enter
93
+ audio URL:</label>
94
+ <input type="text" class="form-control flex-grow-1" id="transcribeToEnglishURLText"
95
+ value="https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/french-audio.mp3"
96
+ placeholder="Enter audio" style="margin-right: 15px; margin-left: 15px;">
97
+ <button id="TranscribeToEnglishButton" class="btn btn-primary" onclick="transcribeToEnglish()">Transcribe</button>
98
+ </div>
99
+ <div class="mt-4">
100
+ <h4>Output:</h4>
101
+ <pre id="outputAreaToEnglish"></pre>
102
+ </div>
103
+ </div>
104
+
105
+ <!-- Back to Home button -->
106
+ <div class="row mt-5">
107
+ <div class="col-md-12 text-center">
108
+ <a href="index.html" class="btn btn-outline-secondary"
109
+ style="color: #3c650b; border-color: #3c650b;">Back to Main Page</a>
110
+ </div>
111
+ </div>
112
+ </div>
113
+ </div>
114
+
115
+ <script>
116
+
117
+ let transcriber;
118
+
119
+ // Initialize the sentiment analysis model
120
+ async function initializeModel() {
121
+ transcriber = await pipeline('automatic-speech-recognition', 'Xenova/whisper-small');
122
+
123
+ }
124
+
125
+ async function transcribeNonEnglish() {
126
+ const textFieldValue = document.getElementById("transcribeNonEnglishURLText").value.trim();
127
+
128
+ let result = await transcriber(textFieldValue, { language: 'french', task: 'transcribe' })
129
+
130
+ document.getElementById("outputArea").innerText = JSON.stringify(result, null, 2);
131
+ }
132
+
133
+ async function transcribeNonEnglishLocal() {
134
+ const fileInput = document.getElementById("transcribeNonEnglishLocalFile");
135
+ const file = fileInput.files[0];
136
+
137
+ if (!file) {
138
+ alert('Please select an audio file first.');
139
+ return;
140
+ }
141
+
142
+ // Create a Blob URL from the file
143
+ const url = URL.createObjectURL(file);
144
+
145
+ let result = await transcriber(url, { language: 'french', task: 'transcribe' })
146
+
147
+ document.getElementById("outputAreaLocal").innerText = JSON.stringify(result, null, 2);
148
+ }
149
+
150
+ async function transcribeToEnglish() {
151
+ const textFieldValue = document.getElementById("transcribeToEnglishURLText").value.trim();
152
+
153
+ let result = await transcriber(textFieldValue, { language: 'french', task: 'translate' })
154
+
155
+ document.getElementById("outputAreaToEnglish").innerText = JSON.stringify(result, null, 2);
156
+ }
157
+
158
+ // Initialize the model after the DOM is completely loaded
159
+ window.addEventListener("DOMContentLoaded", initializeModel);
160
+ </script>
161
+ </body>
162
+
163
+ </html>
audio-classification.html ADDED
@@ -0,0 +1,138 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <title>Audio Classification - Hugging Face Transformers.js</title>
7
+
8
+ <script type="module">
9
+ // Import the library
10
+ import { pipeline } from 'https://cdn.jsdelivr.net/npm/@xenova/[email protected]';
11
+
12
+ // Make it available globally
13
+ window.pipeline = pipeline;
14
+ </script>
15
+
16
+ <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
17
+
18
+ <link rel="stylesheet" href="css/styles.css">
19
+ </head>
20
+
21
+ <body>
22
+ <div class="container-main">
23
+ <!-- Page Header -->
24
+ <div class="header">
25
+ <div class="header-logo">
26
+ <img src="images/logo.png" alt="logo">
27
+ </div>
28
+ <div class="header-main-text">
29
+ <h1>Hugging Face Transformers.js</h1>
30
+ </div>
31
+ <div class="header-sub-text">
32
+ <h3>Free AI Models for JavaScript Web Development</h3>
33
+ </div>
34
+ </div>
35
+ <hr> <!-- Separator -->
36
+
37
+ <!-- Back to Home button -->
38
+ <div class="row mt-5">
39
+ <div class="col-md-12 text-center">
40
+ <a href="index.html" class="btn btn-outline-secondary"
41
+ style="color: #3c650b; border-color: #3c650b;">Back to Main Page</a>
42
+ </div>
43
+ </div>
44
+
45
+ <!-- Content -->
46
+ <div class="container mt-5">
47
+ <!-- Centered Titles -->
48
+ <div class="text-center">
49
+ <h2>Audio</h2>
50
+ <h4>Audio Classification</h4>
51
+ </div>
52
+
53
+ <!-- Actual Content of this page -->
54
+ <div id="audio-classification-container" class="container mt-4">
55
+ <h5>Perform Audio Classification:</h5>
56
+ <div class="d-flex align-items-center">
57
+ <label for="audioClassificationURLText" class="mb-0 text-nowrap" style="margin-right: 15px;">Enter
58
+ audio URL:</label>
59
+ <input type="text" class="form-control flex-grow-1" id="audioClassificationURLText"
60
+ value="https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/jfk.wav"
61
+ placeholder="Enter audio" style="margin-right: 15px; margin-left: 15px;">
62
+ <button id="AudioClassificationButton" class="btn btn-primary"
63
+ onclick="audioClassification()">Classify</button>
64
+ </div>
65
+ <div class="mt-4">
66
+ <h4>Output:</h4>
67
+ <pre id="outputArea"></pre>
68
+ </div>
69
+ </div>
70
+
71
+ <hr> <!-- Line Separator -->
72
+
73
+ <div id="audio-classification-local-container" class="container mt-4">
74
+ <h5>Perform Audio Classification on a Local File:</h5>
75
+ <div class="d-flex align-items-center">
76
+ <label for="audioClassificationLocalFile" class="mb-0 text-nowrap" style="margin-right: 15px;">Select
77
+ Local Audio:</label>
78
+ <input type="file" id="audioClassificationLocalFile" accept="audio/*" />
79
+ <button id="audioClassificationButtonLocal" class="btn btn-primary"
80
+ onclick="audioClassificationLocal()">Classify</button>
81
+ </div>
82
+ <div class="mt-4">
83
+ <h4>Output:</h4>
84
+ <pre id="outputAreaLocal"></pre>
85
+ </div>
86
+ </div>
87
+
88
+ <!-- Back to Home button -->
89
+ <div class="row mt-5">
90
+ <div class="col-md-12 text-center">
91
+ <a href="index.html" class="btn btn-outline-secondary"
92
+ style="color: #3c650b; border-color: #3c650b;">Back to Main Page</a>
93
+ </div>
94
+ </div>
95
+ </div>
96
+ </div>
97
+
98
+ <script>
99
+
100
+ let classifier;
101
+
102
+ // Initialize the sentiment analysis model
103
+ async function initializeModel() {
104
+ classifier = await pipeline('audio-classification', 'Xenova/wav2vec2-large-xlsr-53-gender-recognition-librispeech');
105
+
106
+ }
107
+
108
+ async function audioClassification() {
109
+ const textFieldValue = document.getElementById("audioClassificationURLText").value.trim();
110
+
111
+ let result = await classifier(textFieldValue);
112
+
113
+ document.getElementById("outputArea").innerText = JSON.stringify(result, null, 2);
114
+ }
115
+
116
+ async function audioClassificationLocal() {
117
+ const fileInput = document.getElementById("audioClassificationLocalFile");
118
+ const file = fileInput.files[0];
119
+
120
+ if (!file) {
121
+ alert('Please select an audio file first.');
122
+ return;
123
+ }
124
+
125
+ // Create a Blob URL from the file
126
+ const url = URL.createObjectURL(file);
127
+
128
+ let result = await classifier(url);
129
+
130
+ document.getElementById("outputAreaLocal").innerText = JSON.stringify(result, null, 2);
131
+ }
132
+
133
+ // Initialize the model after the DOM is completely loaded
134
+ window.addEventListener("DOMContentLoaded", initializeModel);
135
+ </script>
136
+ </body>
137
+
138
+ </html>
audio/french-audio.mp3 ADDED
Binary file (99.9 kB). View file
 
audio/jfk.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:aa81c2552465568567e670f3823117e633900d16bd6202346a72f3c8464c74c8
3
+ size 1940478
audio/ted_60.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7795cbebcdf651ebbe4b1d8f36d7cde2286d482b800670c70bf7ce449c9f1ed5
3
+ size 11520078
css/styles.css ADDED
@@ -0,0 +1,94 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ body {
2
+ background-color: lightgrey;
3
+ }
4
+
5
+ .container-main {
6
+ background-color: darkgrey;
7
+ padding: 20px;
8
+ margin: 25px auto;
9
+ width: 80%;
10
+ /* Changed from 90% to 80% */
11
+ border-radius: 10px;
12
+ /* Rounded Corners */
13
+ border: 2px solid #3c650b;
14
+ /* Add a border with a shade of blue */
15
+ }
16
+
17
+ hr {
18
+ border-top: 1px solid #3c650b;
19
+ /* Change the <hr> line color to a shade of blue */
20
+ }
21
+
22
+ .header-logo,
23
+ .header-main-text,
24
+ .header-sub-text {
25
+ text-align: center;
26
+ }
27
+
28
+ .header-main-text h1,
29
+ .header-sub-text h3 {
30
+ color: #3c650b;
31
+ /* Green color */
32
+ }
33
+
34
+ h2 {
35
+ font-size: 1.4rem;
36
+ /* Makes the text smaller */
37
+ color: #3c650b;
38
+ /* Sets the text color to a shade of blue */
39
+ }
40
+
41
+
42
+ h4 {
43
+ font-size: 1.2rem;
44
+ /* Adjust font size */
45
+ color: #3c650b;
46
+ /* Set the text color to a shade of green */
47
+ margin-top: 10px;
48
+ /* Add some margin to separate from h2 */
49
+ font-weight: 400;
50
+ /* Adjust the font weight */
51
+ }
52
+
53
+ .card {
54
+ border: 2px solid #3c650b;
55
+ /* Change the border color to #3c650b */
56
+ }
57
+
58
+ .card-title {
59
+ color: #3c650b;
60
+ /* Change the title color to #3c650b */
61
+ }
62
+
63
+ .card-body {
64
+ text-align: center;
65
+ display: flex;
66
+ /* Added flexbox layout */
67
+ flex-direction: column;
68
+ /* Direction */
69
+ justify-content: center;
70
+ /* Vertical centering */
71
+ }
72
+
73
+ .row {
74
+ margin-bottom: 15px;
75
+ /* Margin between rows */
76
+ }
77
+
78
+ .col-md-3 {
79
+ padding: 5px;
80
+ /* Margin between cards */
81
+ }
82
+
83
+ .card-custom-height {
84
+ height: 75px;
85
+ display: flex;
86
+ flex-direction: column;
87
+ justify-content: space-between;
88
+ }
89
+
90
+ .card-body {
91
+ padding: 10px;
92
+ /* Reduced padding to make more cards visible */
93
+ text-align: center;
94
+ }
fill-mask.html ADDED
@@ -0,0 +1,128 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <title>Fill Mask - Hugging Face Transformers.js</title>
7
+
8
+ <script type="module">
9
+ // Import the library
10
+ import { pipeline } from 'https://cdn.jsdelivr.net/npm/@xenova/[email protected]';
11
+
12
+ // Make it available globally
13
+ window.pipeline = pipeline;
14
+ </script>
15
+
16
+ <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
17
+
18
+ <link rel="stylesheet" href="css/styles.css">
19
+ </head>
20
+
21
+ <body>
22
+ <div class="container-main">
23
+ <!-- Page Header -->
24
+ <div class="header">
25
+ <div class="header-logo">
26
+ <img src="images/logo.png" alt="logo">
27
+ </div>
28
+ <div class="header-main-text">
29
+ <h1>Hugging Face Transformers.js</h1>
30
+ </div>
31
+ <div class="header-sub-text">
32
+ <h3>Free AI Models for JavaScript Web Development</h3>
33
+ </div>
34
+ </div>
35
+ <hr> <!-- Separator -->
36
+
37
+ <!-- Back to Home button -->
38
+ <div class="row mt-5">
39
+ <div class="col-md-12 text-center">
40
+ <a href="index.html" class="btn btn-outline-secondary"
41
+ style="color: #3c650b; border-color: #3c650b;">Back to Main Page</a>
42
+ </div>
43
+ </div>
44
+
45
+ <!-- Content -->
46
+ <div class="container mt-5">
47
+ <!-- Centered Titles -->
48
+ <div class="text-center">
49
+ <h2>Natural Language Processing</h2>
50
+ <h4>Fill Mask</h4>
51
+ </div>
52
+
53
+ <!-- Actual Content of this page -->
54
+ <div id="fill-mask-container" class="container mt-4">
55
+ <h5>Unmask with bert-base-uncased:</h5>
56
+ <div class="d-flex align-items-center">
57
+ <label for="fillMaskText" class="mb-0 text-nowrap" style="margin-right: 15px;">Enter Text with
58
+ Mask:</label>
59
+ <input type="text" class="form-control flex-grow-1" id="fillMaskText" value="The goal of life is [MASK]."
60
+ placeholder="Enter text" style="margin-right: 15px; margin-left: 15px;">
61
+ <button id="fillMaskButton" class="btn btn-primary" onclick="fillMask()">Unmask</button>
62
+ </div>
63
+ <div class="mt-4">
64
+ <h4>Output:</h4>
65
+ <pre id="outputArea"></pre>
66
+ </div>
67
+ </div>
68
+
69
+ <hr> <!-- Line Separator -->
70
+
71
+ <div id="fill-mask-container2" class="container mt-4">
72
+ <h5>Unmask with bert-base-cased (Return Top Result):</h5>
73
+ <div class="d-flex align-items-center">
74
+ <label for="fillMaskText2" class="mb-0 text-nowrap" style="margin-right: 15px;">Enter Text with
75
+ Mask:</label>
76
+ <input type="text" class="form-control flex-grow-1" id="fillMaskText2" value="The Milky Way is a [MASK] galaxy"
77
+ placeholder="Enter text" style="margin-right: 15px; margin-left: 15px;">
78
+ <button id="fillMaskButton2" class="btn btn-primary" onclick="fillMaskTopResult()">Unmask</button>
79
+ </div>
80
+ <div class="mt-4">
81
+ <h4>Output:</h4>
82
+ <pre id="outputArea2"></pre>
83
+ </div>
84
+ </div>
85
+
86
+ <!-- Back to Home button -->
87
+ <div class="row mt-5">
88
+ <div class="col-md-12 text-center">
89
+ <a href="index.html" class="btn btn-outline-secondary"
90
+ style="color: #3c650b; border-color: #3c650b;">Back to Main Page</a>
91
+ </div>
92
+ </div>
93
+ </div>
94
+ </div>
95
+
96
+ <script>
97
+
98
+ let unmaskeruncased;
99
+ let unmaskerncased;
100
+
101
+ // Initialize the sentiment analysis model
102
+ async function initializeModel() {
103
+ unmaskeruncased = await pipeline('fill-mask', 'Xenova/bert-base-uncased');
104
+ unmaskerncased = await pipeline('fill-mask', 'Xenova/bert-base-cased');
105
+ }
106
+
107
+ async function fillMask() {
108
+ const textFieldValue = document.getElementById("fillMaskText").value.trim();
109
+
110
+ const result = await unmaskeruncased(textFieldValue);
111
+
112
+ document.getElementById("outputArea").innerText = JSON.stringify(result, null, 2);
113
+ }
114
+
115
+ async function fillMaskTopResult() {
116
+ const textFieldValue = document.getElementById("fillMaskText2").value.trim();
117
+
118
+ const result = await unmaskerncased(textFieldValue, { topk: 1 });
119
+
120
+ document.getElementById("outputArea2").innerText = JSON.stringify(result, null, 2);
121
+ }
122
+
123
+ // Initialize the model after the DOM is completely loaded
124
+ window.addEventListener("DOMContentLoaded", initializeModel);
125
+ </script>
126
+ </body>
127
+
128
+ </html>
image-classification.html ADDED
@@ -0,0 +1,163 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <title>Image Classification - Hugging Face Transformers.js</title>
7
+
8
+ <script type="module">
9
+ // Import the library
10
+ import { pipeline } from 'https://cdn.jsdelivr.net/npm/@xenova/[email protected]';
11
+
12
+ // Make it available globally
13
+ window.pipeline = pipeline;
14
+ </script>
15
+
16
+ <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
17
+
18
+ <link rel="stylesheet" href="css/styles.css">
19
+ </head>
20
+
21
+ <body>
22
+ <div class="container-main">
23
+ <!-- Page Header -->
24
+ <div class="header">
25
+ <div class="header-logo">
26
+ <img src="images/logo.png" alt="logo">
27
+ </div>
28
+ <div class="header-main-text">
29
+ <h1>Hugging Face Transformers.js</h1>
30
+ </div>
31
+ <div class="header-sub-text">
32
+ <h3>Free AI Models for JavaScript Web Development</h3>
33
+ </div>
34
+ </div>
35
+ <hr> <!-- Separator -->
36
+
37
+ <!-- Back to Home button -->
38
+ <div class="row mt-5">
39
+ <div class="col-md-12 text-center">
40
+ <a href="index.html" class="btn btn-outline-secondary"
41
+ style="color: #3c650b; border-color: #3c650b;">Back to Main Page</a>
42
+ </div>
43
+ </div>
44
+
45
+ <!-- Content -->
46
+ <div class="container mt-5">
47
+ <!-- Centered Titles -->
48
+ <div class="text-center">
49
+ <h2>Computer Vision</h2>
50
+ <h4>Image Classification</h4>
51
+ </div>
52
+
53
+ <!-- Actual Content of this page -->
54
+ <div id="image-classification-container" class="container mt-4">
55
+ <h5>Classify an Image:</h5>
56
+ <div class="d-flex align-items-center">
57
+ <label for="imageClassificationURLText" class="mb-0 text-nowrap" style="margin-right: 15px;">Enter
58
+ image URL:</label>
59
+ <input type="text" class="form-control flex-grow-1" id="imageClassificationURLText"
60
+ value="https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/tiger.jpg"
61
+ placeholder="Enter image" style="margin-right: 15px; margin-left: 15px;">
62
+ <button id="ClassifyButton" class="btn btn-primary" onclick="classifyImage()">Classify</button>
63
+ </div>
64
+ <div class="mt-4">
65
+ <h4>Output:</h4>
66
+ <pre id="outputArea"></pre>
67
+ </div>
68
+ </div>
69
+
70
+ <hr> <!-- Line Separator -->
71
+
72
+ <div id="image-classification-local-container" class="container mt-4">
73
+ <h5>Classify a Local Image:</h5>
74
+ <div class="d-flex align-items-center">
75
+ <label for="imageClassificationLocalFile" class="mb-0 text-nowrap"
76
+ style="margin-right: 15px;">Select Local Image:</label>
77
+ <input type="file" id="imageClassificationLocalFile" accept="image/*" />
78
+ <button id="ClassifyButtonLocal" class="btn btn-primary"
79
+ onclick="classifyImageLocal()">Classify</button>
80
+ </div>
81
+ <div class="mt-4">
82
+ <h4>Output:</h4>
83
+ <pre id="outputAreaLocal"></pre>
84
+ </div>
85
+ </div>
86
+
87
+ <hr> <!-- Line Separator -->
88
+
89
+ <div id="image-classification-top-container" class="container mt-4">
90
+ <h5>Classify an Image and Return Top n Classes:</h5>
91
+ <div class="d-flex align-items-center">
92
+ <label for="imageClassificationTopURLText" class="mb-0 text-nowrap" style="margin-right: 15px;">Enter
93
+ image URL:</label>
94
+ <input type="text" class="form-control flex-grow-1" id="imageClassificationTopURLText"
95
+ value="https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/tiger.jpg"
96
+ placeholder="Enter image" style="margin-right: 15px; margin-left: 15px;">
97
+ <button id="ClassifyTopButton" class="btn btn-primary" onclick="classifyTopImage()">Classify</button>
98
+ </div>
99
+ <div class="mt-4">
100
+ <h4>Output:</h4>
101
+ <pre id="outputAreaTop"></pre>
102
+ </div>
103
+ </div>
104
+
105
+ <!-- Back to Home button -->
106
+ <div class="row mt-5">
107
+ <div class="col-md-12 text-center">
108
+ <a href="index.html" class="btn btn-outline-secondary"
109
+ style="color: #3c650b; border-color: #3c650b;">Back to Main Page</a>
110
+ </div>
111
+ </div>
112
+ </div>
113
+ </div>
114
+
115
+ <script>
116
+
117
+ let classifier;
118
+
119
+ // Initialize the sentiment analysis model
120
+ async function initializeModel() {
121
+ classifier = await pipeline('image-classification', 'Xenova/vit-base-patch16-224');
122
+
123
+ }
124
+
125
+ async function classifyImage() {
126
+ const textFieldValue = document.getElementById("imageClassificationURLText").value.trim();
127
+
128
+ const result = await classifier(textFieldValue);
129
+
130
+ document.getElementById("outputArea").innerText = JSON.stringify(result, null, 2);
131
+ }
132
+
133
+ async function classifyImageLocal() {
134
+ const fileInput = document.getElementById("imageClassificationLocalFile");
135
+ const file = fileInput.files[0];
136
+
137
+ if (!file) {
138
+ alert('Please select an image file first.');
139
+ return;
140
+ }
141
+
142
+ // Create a Blob URL from the file
143
+ const url = URL.createObjectURL(file);
144
+
145
+ const result = await classifier(url);
146
+
147
+ document.getElementById("outputAreaLocal").innerText = JSON.stringify(result, null, 2);
148
+ }
149
+
150
+ async function classifyTopImage() {
151
+ const textFieldValue = document.getElementById("imageClassificationTopURLText").value.trim();
152
+
153
+ const result = await classifier(textFieldValue, { topk: 3 });
154
+
155
+ document.getElementById("outputAreaTop").innerText = JSON.stringify(result, null, 2);
156
+ }
157
+
158
+ // Initialize the model after the DOM is completely loaded
159
+ window.addEventListener("DOMContentLoaded", initializeModel);
160
+ </script>
161
+ </body>
162
+
163
+ </html>
image-to-text.html ADDED
@@ -0,0 +1,135 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <title>Image to Text - Hugging Face Transformers.js</title>
7
+
8
+ <script type="module">
9
+ // Import the library
10
+ import { pipeline } from 'https://cdn.jsdelivr.net/npm/@xenova/[email protected]';
11
+
12
+ // Make it available globally
13
+ window.pipeline = pipeline;
14
+ </script>
15
+
16
+ <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
17
+
18
+ <link rel="stylesheet" href="css/styles.css"></head>
19
+ <body>
20
+ <div class="container-main">
21
+ <!-- Page Header -->
22
+ <div class="header">
23
+ <div class="header-logo">
24
+ <img src="images/logo.png" alt="logo">
25
+ </div>
26
+ <div class="header-main-text">
27
+ <h1>Hugging Face Transformers.js</h1>
28
+ </div>
29
+ <div class="header-sub-text">
30
+ <h3>Free AI Models for JavaScript Web Development</h3>
31
+ </div>
32
+ </div>
33
+ <hr> <!-- Separator -->
34
+
35
+ <!-- Back to Home button -->
36
+ <div class="row mt-5">
37
+ <div class="col-md-12 text-center">
38
+ <a href="index.html" class="btn btn-outline-secondary"
39
+ style="color: #3c650b; border-color: #3c650b;">Back to Main Page</a>
40
+ </div>
41
+ </div>
42
+
43
+ <!-- Content -->
44
+ <div class="container mt-5">
45
+ <!-- Centered Titles -->
46
+ <div class="text-center">
47
+ <h2>Computer Vision</h2>
48
+ <h4>Image to Text</h4>
49
+ </div>
50
+
51
+ <!-- Actual Content of this page -->
52
+ <div id="image-to-text-container" class="container mt-4">
53
+ <h5>Generate a Caption for an Image w/ Xenova/vit-gpt2-image-captionin:</h5>
54
+ <div class="d-flex align-items-center">
55
+ <label for="imageToTextURLText" class="mb-0 text-nowrap" style="margin-right: 15px;">Enter
56
+ image to Caption URL:</label>
57
+ <input type="text" class="form-control flex-grow-1" id="imageToTextURLText"
58
+ value="https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/cats.jpg"
59
+ placeholder="Enter image" style="margin-right: 15px; margin-left: 15px;">
60
+ <button id="ImagetoTextButton" class="btn btn-primary" onclick="captionImage()">Caption</button>
61
+ </div>
62
+ <div class="mt-4">
63
+ <h4>Output:</h4>
64
+ <pre id="outputArea"></pre>
65
+ </div>
66
+ </div>
67
+
68
+ <hr> <!-- Line Separator -->
69
+
70
+ <div id="image-to-text-local-container" class="container mt-4">
71
+ <h5>Generate a Caption for a Local Image:</h5>
72
+ <div class="d-flex align-items-center">
73
+ <label for="imagetoTextLocalFile" class="mb-0 text-nowrap"
74
+ style="margin-right: 15px;">Select Local Image:</label>
75
+ <input type="file" id="imagetoTextLocalFile" accept="image/*" />
76
+ <button id="CaptionButtonLocal" class="btn btn-primary"
77
+ onclick="captionImageLocal()">Caption</button>
78
+ </div>
79
+ <div class="mt-4">
80
+ <h4>Output:</h4>
81
+ <pre id="outputAreaLocal"></pre>
82
+ </div>
83
+ </div>
84
+
85
+ <!-- Back to Home button -->
86
+ <div class="row mt-5">
87
+ <div class="col-md-12 text-center">
88
+ <a href="index.html" class="btn btn-outline-secondary"
89
+ style="color: #3c650b; border-color: #3c650b;">Back to Main Page</a>
90
+ </div>
91
+ </div>
92
+ </div>
93
+ </div>
94
+
95
+ <script>
96
+
97
+ let captioner;
98
+
99
+ // Initialize the sentiment analysis model
100
+ async function initializeModel() {
101
+ captioner = await pipeline('image-to-text', 'Xenova/vit-gpt2-image-captioning');
102
+
103
+ }
104
+
105
+ async function captionImage() {
106
+ const textFieldValue = document.getElementById("imageToTextURLText").value.trim();
107
+
108
+ const result = await captioner(textFieldValue);
109
+
110
+ document.getElementById("outputArea").innerText = JSON.stringify(result, null, 2);
111
+ }
112
+
113
+ async function captionImageLocal() {
114
+ const fileInput = document.getElementById("imagetoTextLocalFile");
115
+ const file = fileInput.files[0];
116
+
117
+ if (!file) {
118
+ alert('Please select an image file first.');
119
+ return;
120
+ }
121
+
122
+ // Create a Blob URL from the file
123
+ const url = URL.createObjectURL(file);
124
+
125
+ const result = await captioner(url);
126
+
127
+ document.getElementById("outputAreaLocal").innerText = JSON.stringify(result, null, 2);
128
+ }
129
+
130
+ // Initialize the model after the DOM is completely loaded
131
+ window.addEventListener("DOMContentLoaded", initializeModel);
132
+ </script>
133
+ </body>
134
+
135
+ </html>
images/cats.jpg ADDED
images/logo.png ADDED
images/tiger.jpg ADDED
index.html ADDED
@@ -0,0 +1,211 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <title>Hugging Face Transformers.js</title>
7
+ <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
8
+
9
+ <link rel="stylesheet" href="css/styles.css">
10
+ </head>
11
+
12
+ <body>
13
+
14
+ <div class="container-main">
15
+ <!-- Page Header -->
16
+ <div class="header">
17
+ <div class="header-logo">
18
+ <img src="images/logo.png" alt="logo">
19
+ </div>
20
+ <div class="header-main-text">
21
+ <h1>Hugging Face Transformers.js</h1>
22
+ </div>
23
+ <div class="header-sub-text">
24
+ <h3>Free AI Models for JavaScript Web Development</h3>
25
+ </div>
26
+ </div>
27
+
28
+ <hr> <!-- Separator -->
29
+
30
+ <!-- Content -->
31
+ <div class="container mt-5">
32
+ <!-- Natural Language Processing Section -->
33
+ <h2>Natural Language Processing</h2>
34
+ <div class="row">
35
+ <div class="col-md-3">
36
+ <a href="sentiments.html" class="text-decoration-none text-dark"> <!-- Hyperlink wrapping the card -->
37
+ <div class="card card-custom-height">
38
+ <div class="card-body">
39
+ <h5 class="card-title">Sentiment Analysis <br> (Text Classification)</h5>
40
+ </div>
41
+ </div>
42
+ </a>
43
+ </div>
44
+ <div class="col-md-3">
45
+ <a href="zero-shot-classification.html" class="text-decoration-none text-dark"> <!-- Hyperlink wrapping the card -->
46
+ <div class="card card-custom-height">
47
+ <div class="card-body">
48
+ <h5 class="card-title">Zero Shot Classification</h5>
49
+ </div>
50
+ </div>
51
+ </a>
52
+ </div>
53
+ <div class="col-md-3">
54
+ <a href="token-classification.html" class="text-decoration-none text-dark"> <!-- Hyperlink wrapping the card -->
55
+ <div class="card card-custom-height">
56
+ <div class="card-body">
57
+ <h5 class="card-title">Token Classification <br> (Named Entity Rec)</h5>
58
+ </div>
59
+ </div>
60
+ </a>
61
+ </div>
62
+ <div class="col-md-3">
63
+ <a href="fill-mask.html" class="text-decoration-none text-dark"> <!-- Hyperlink wrapping the card -->
64
+ <div class="card card-custom-height">
65
+ <div class="card-body">
66
+ <h5 class="card-title">Fill Mask</h5>
67
+ </div>
68
+ </div>
69
+ </a>
70
+ </div>
71
+ </div>
72
+ <div class="row">
73
+ <div class="col-md-3">
74
+ <a href="text-generation.html" class="text-decoration-none text-dark"> <!-- Hyperlink wrapping the card -->
75
+ <div class="card card-custom-height">
76
+ <div class="card-body">
77
+ <h5 class="card-title">Text Generation</h5>
78
+ </div>
79
+ </div>
80
+ </a>
81
+ </div>
82
+ <div class="col-md-3">
83
+ <a href="question-answering.html" class="text-decoration-none text-dark"> <!-- Hyperlink wrapping the card -->
84
+ <div class="card card-custom-height">
85
+ <div class="card-body">
86
+ <h5 class="card-title">Question Answering</h5>
87
+ </div>
88
+ </div>
89
+ </a>
90
+ </div>
91
+ <div class="col-md-3">
92
+ <a href="summarization.html" class="text-decoration-none text-dark"> <!-- Hyperlink wrapping the card -->
93
+ <div class="card card-custom-height">
94
+ <div class="card-body">
95
+ <h5 class="card-title">Summarization</h5>
96
+ </div>
97
+ </div>
98
+ </a>
99
+ </div>
100
+ <div class="col-md-3">
101
+ <a href="text-to-text-generation.html" class="text-decoration-none text-dark"> <!-- Hyperlink wrapping the card -->
102
+ <div class="card card-custom-height">
103
+ <div class="card-body">
104
+ <h5 class="card-title">Text-to-text Generation</h5>
105
+ </div>
106
+ </div>
107
+ </a>
108
+ </div>
109
+ </div>
110
+ <div class="row">
111
+ <div class="col-md-3">
112
+ <a href="translation.html" class="text-decoration-none text-dark"> <!-- Hyperlink wrapping the card -->
113
+ <div class="card card-custom-height">
114
+ <div class="card-body">
115
+ <h5 class="card-title">Translation</h5>
116
+ </div>
117
+ </div>
118
+ </a>
119
+ </div>
120
+ <div class="col-md-3">
121
+ <a href="translation-tok-model.html" class="text-decoration-none text-dark"> <!-- Hyperlink wrapping the card -->
122
+ <div class="card card-custom-height">
123
+ <div class="card-body">
124
+ <h5 class="card-title">Translation <br> (Tokenizer & Model)</h5>
125
+ </div>
126
+ </div>
127
+ </a>
128
+ </div>
129
+ </div>
130
+
131
+ <!-- Computer Vision Section -->
132
+ <h2>Computer Vision</h2>
133
+ <div class="row">
134
+ <div class="col-md-3">
135
+ <a href="image-classification.html" class="text-decoration-none text-dark"> <!-- Hyperlink wrapping the card -->
136
+ <div class="card card-custom-height">
137
+ <div class="card-body">
138
+ <h5 class="card-title">Image Classification</h5>
139
+ </div>
140
+ </div>
141
+ </a>
142
+ </div>
143
+ <div class="col-md-3">
144
+ <a href="zeroshotimageclassification.html" class="text-decoration-none text-dark"> <!-- Hyperlink wrapping the card -->
145
+ <div class="card card-custom-height">
146
+ <div class="card-body">
147
+ <h5 class="card-title">Zero Shot Image Classification</h5>
148
+ </div>
149
+ </div>
150
+ </a>
151
+ </div>
152
+ <div class="col-md-3">
153
+ <a href="object-detection.html" class="text-decoration-none text-dark"> <!-- Hyperlink wrapping the card -->
154
+ <div class="card card-custom-height">
155
+ <div class="card-body">
156
+ <h5 class="card-title">Object Detection</h5>
157
+ </div>
158
+ </div>
159
+ </a>
160
+ </div>
161
+ <div class="col-md-3">
162
+ <a href="image-to-text.html" class="text-decoration-none text-dark"> <!-- Hyperlink wrapping the card -->
163
+ <div class="card card-custom-height">
164
+ <div class="card-body">
165
+ <h5 class="card-title">Image to Text</h5>
166
+ </div>
167
+ </div>
168
+ </a>
169
+ </div>
170
+ </div>
171
+
172
+ <!-- Audio Section -->
173
+ <h2>Audio</h2>
174
+ <div class="row">
175
+ <div class="col-md-3">
176
+ <a href="asr-english.html" class="text-decoration-none text-dark"> <!-- Hyperlink wrapping the card -->
177
+ <div class="card card-custom-height">
178
+ <div class="card-body">
179
+ <h5 class="card-title">Automatic Speech Recognition - English</h5>
180
+ </div>
181
+ </div>
182
+ </a>
183
+ </div>
184
+ <div class="col-md-3">
185
+ <a href="asr-non-english.html" class="text-decoration-none text-dark"> <!-- Hyperlink wrapping the card -->
186
+ <div class="card card-custom-height">
187
+ <div class="card-body">
188
+ <h5 class="card-title">Automatic Speech Recognition - French</h5>
189
+ </div>
190
+ </div>
191
+ </a>
192
+ </div>
193
+ <div class="col-md-3">
194
+ <a href="audio-classification.html" class="text-decoration-none text-dark"> <!-- Hyperlink wrapping the card -->
195
+ <div class="card card-custom-height">
196
+ <div class="card-body">
197
+ <h5 class="card-title">Audio Classification</h5>
198
+ </div>
199
+ </div>
200
+ </a>
201
+ </div>
202
+ </div>
203
+ </div>
204
+ </div>
205
+
206
+ <script>
207
+ // Vanilla JavaScript code here
208
+ </script>
209
+ </body>
210
+
211
+ </html>
object-detection.html ADDED
@@ -0,0 +1,137 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <title>Object Detection - Hugging Face Transformers.js</title>
7
+
8
+ <script type="module">
9
+ // Import the library
10
+ import { pipeline } from 'https://cdn.jsdelivr.net/npm/@xenova/[email protected]';
11
+
12
+ // Make it available globally
13
+ window.pipeline = pipeline;
14
+ </script>
15
+
16
+ <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
17
+
18
+ <link rel="stylesheet" href="css/styles.css">
19
+ </head>
20
+
21
+ <body>
22
+ <div class="container-main">
23
+ <!-- Page Header -->
24
+ <div class="header">
25
+ <div class="header-logo">
26
+ <img src="images/logo.png" alt="logo">
27
+ </div>
28
+ <div class="header-main-text">
29
+ <h1>Hugging Face Transformers.js</h1>
30
+ </div>
31
+ <div class="header-sub-text">
32
+ <h3>Free AI Models for JavaScript Web Development</h3>
33
+ </div>
34
+ </div>
35
+ <hr> <!-- Separator -->
36
+
37
+ <!-- Back to Home button -->
38
+ <div class="row mt-5">
39
+ <div class="col-md-12 text-center">
40
+ <a href="index.html" class="btn btn-outline-secondary"
41
+ style="color: #3c650b; border-color: #3c650b;">Back to Main Page</a>
42
+ </div>
43
+ </div>
44
+
45
+ <!-- Content -->
46
+ <div class="container mt-5">
47
+ <!-- Centered Titles -->
48
+ <div class="text-center">
49
+ <h2>Computer Vision</h2>
50
+ <h4>Object Detection</h4>
51
+ </div>
52
+
53
+ <!-- Actual Content of this page -->
54
+ <div id="object-detection-container" class="container mt-4">
55
+ <h5>Run Object Detection with facebook/detr-resnet-50:</h5>
56
+ <div class="d-flex align-items-center">
57
+ <label for="objectDetectionURLText" class="mb-0 text-nowrap" style="margin-right: 15px;">Enter
58
+ image URL:</label>
59
+ <input type="text" class="form-control flex-grow-1" id="objectDetectionURLText"
60
+ value="https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/cats.jpg"
61
+ placeholder="Enter image" style="margin-right: 15px; margin-left: 15px;">
62
+ <button id="DetectButton" class="btn btn-primary" onclick="detectImage()">Detect</button>
63
+ </div>
64
+ <div class="mt-4">
65
+ <h4>Output:</h4>
66
+ <pre id="outputArea"></pre>
67
+ </div>
68
+ </div>
69
+
70
+ <hr> <!-- Line Separator -->
71
+
72
+ <div id="object-detection-local-container" class="container mt-4">
73
+ <h5>Detect a Local Image:</h5>
74
+ <div class="d-flex align-items-center">
75
+ <label for="objectDetectionLocalFile" class="mb-0 text-nowrap"
76
+ style="margin-right: 15px;">Select Local Image:</label>
77
+ <input type="file" id="objectDetectionLocalFile" accept="image/*" />
78
+ <button id="DetectButtonLocal" class="btn btn-primary"
79
+ onclick="detectImageLocal()">Detect</button>
80
+ </div>
81
+ <div class="mt-4">
82
+ <h4>Output:</h4>
83
+ <pre id="outputAreaLocal"></pre>
84
+ </div>
85
+ </div>
86
+
87
+ <!-- Back to Home button -->
88
+ <div class="row mt-5">
89
+ <div class="col-md-12 text-center">
90
+ <a href="index.html" class="btn btn-outline-secondary"
91
+ style="color: #3c650b; border-color: #3c650b;">Back to Main Page</a>
92
+ </div>
93
+ </div>
94
+ </div>
95
+ </div>
96
+
97
+ <script>
98
+
99
+ let detector;
100
+
101
+ // Initialize the sentiment analysis model
102
+ async function initializeModel() {
103
+ detector = await pipeline('object-detection', 'Xenova/detr-resnet-50');
104
+
105
+ }
106
+
107
+ async function detectImage() {
108
+ const textFieldValue = document.getElementById("objectDetectionURLText").value.trim();
109
+
110
+ const result = await detector(textFieldValue, { threshold: 0.9 });
111
+
112
+ document.getElementById("outputArea").innerText = JSON.stringify(result, null, 2);
113
+ }
114
+
115
+ async function detectImageLocal() {
116
+ const fileInput = document.getElementById("objectDetectionLocalFile");
117
+ const file = fileInput.files[0];
118
+
119
+ if (!file) {
120
+ alert('Please select an image file first.');
121
+ return;
122
+ }
123
+
124
+ // Create a Blob URL from the file
125
+ const url = URL.createObjectURL(file);
126
+
127
+ const result = await detector(url, { threshold: 0.9 });
128
+
129
+ document.getElementById("outputAreaLocal").innerText = JSON.stringify(result, null, 2);
130
+ }
131
+
132
+ // Initialize the model after the DOM is completely loaded
133
+ window.addEventListener("DOMContentLoaded", initializeModel);
134
+ </script>
135
+ </body>
136
+
137
+ </html>
question-answering.html ADDED
@@ -0,0 +1,139 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <title>Question Answering - Hugging Face Transformers.js</title>
7
+
8
+ <script type="module">
9
+ // Import the library
10
+ import { pipeline } from 'https://cdn.jsdelivr.net/npm/@xenova/[email protected]';
11
+
12
+ // Make it available globally
13
+ window.pipeline = pipeline;
14
+ </script>
15
+
16
+ <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
17
+
18
+ <link rel="stylesheet" href="css/styles.css">
19
+ </head>
20
+
21
+ <body>
22
+ <div class="container-main">
23
+ <!-- Page Header -->
24
+ <div class="header">
25
+ <div class="header-logo">
26
+ <img src="images/logo.png" alt="logo">
27
+ </div>
28
+ <div class="header-main-text">
29
+ <h1>Hugging Face Transformers.js</h1>
30
+ </div>
31
+ <div class="header-sub-text">
32
+ <h3>Free AI Models for JavaScript Web Development</h3>
33
+ </div>
34
+ </div>
35
+ <hr> <!-- Separator -->
36
+
37
+ <!-- Back to Home button -->
38
+ <div class="row mt-5">
39
+ <div class="col-md-12 text-center">
40
+ <a href="index.html" class="btn btn-outline-secondary"
41
+ style="color: #3c650b; border-color: #3c650b;">Back to Main Page</a>
42
+ </div>
43
+ </div>
44
+
45
+ <!-- Content -->
46
+ <div class="container mt-5">
47
+ <!-- Centered Titles -->
48
+ <div class="text-center">
49
+ <h2>Natural Language Processing</h2>
50
+ <h4>Question Answering</h4>
51
+ </div>
52
+
53
+ <!-- Actual Content of this page -->
54
+ <div id="question-answering-container" class="container mt-4">
55
+ <h5>Question Answering:</h5>
56
+ <div class="d-flex align-items-center mb-2">
57
+ <label for="questionText" class="mb-0 text-nowrap" style="margin-right: 15px;">Enter Question:</label>
58
+ <input type="text" class="form-control flex-grow-1" id="questionText" value="Who was Jim Henson?"
59
+ placeholder="Enter question text" style="margin-right: 15px; margin-left: 15px;">
60
+ </div>
61
+ <div class="d-flex align-items-center">
62
+ <label for="contextText" class="mb-0 text-nowrap" style="margin-right: 15px;">Enter Context:</label>
63
+ <input type="text" class="form-control flex-grow-1" id="contextText" value="Jim Henson was a nice puppet."
64
+ placeholder="Enter context text" style="margin-right: 15px; margin-left: 15px;">
65
+ <button id="answerButton" class="btn btn-primary ml-2"
66
+ onclick="answerQuestion()">Answer</button>
67
+ </div>
68
+ <div class="mt-4">
69
+ <h4>Output:</h4>
70
+ <pre id="outputArea"></pre>
71
+ </div>
72
+ </div>
73
+
74
+ <hr> <!-- Line Separator -->
75
+
76
+ <div id="question-answering-container2" class="container mt-4">
77
+ <h5>Question Answering (Top Results):</h5>
78
+ <div class="d-flex align-items-center mb-2">
79
+ <label for="questionTopText" class="mb-0 text-nowrap" style="margin-right: 15px;">Enter Question:</label>
80
+ <input type="text" class="form-control flex-grow-1" id="questionTopText" value="What is the temperature today?"
81
+ placeholder="Enter question text" style="margin-right: 15px; margin-left: 15px;">
82
+ </div>
83
+ <div class="d-flex align-items-center">
84
+ <label for="contextTopText" class="mb-0 text-nowrap" style="margin-right: 15px;">Enter Context:</label>
85
+ <input type="text" class="form-control flex-grow-1" id="contextTopText" value="It is very hot today."
86
+ placeholder="Enter context text" style="margin-right: 15px; margin-left: 15px;">
87
+ <button id="answerTopButton" class="btn btn-primary ml-2"
88
+ onclick="answerQuestionTop()">Answer</button>
89
+ </div>
90
+ <div class="mt-4">
91
+ <h4>Output:</h4>
92
+ <pre id="outputTopArea"></pre>
93
+ </div>
94
+ </div>
95
+
96
+ <!-- Back to Home button -->
97
+ <div class="row mt-5">
98
+ <div class="col-md-12 text-center">
99
+ <a href="index.html" class="btn btn-outline-secondary"
100
+ style="color: #3c650b; border-color: #3c650b;">Back to Main Page</a>
101
+ </div>
102
+ </div>
103
+ </div>
104
+ </div>
105
+
106
+ <script>
107
+
108
+ let answerer;
109
+
110
+ // Initialize the sentiment analysis model
111
+ async function initializeModel() {
112
+ answerer = await pipeline('question-answering', 'Xenova/distilbert-base-uncased-distilled-squad');
113
+
114
+ }
115
+
116
+ async function answerQuestion() {
117
+ const question = document.getElementById("questionText").value.trim();
118
+ const context = document.getElementById("contextText").value.trim();
119
+
120
+ const result = await answerer(question, context);
121
+
122
+ document.getElementById("outputArea").innerText = JSON.stringify(result, null, 2);
123
+ }
124
+
125
+ async function answerQuestionTop() {
126
+ const question = document.getElementById("questionTopText").value.trim();
127
+ const context = document.getElementById("contextTopText").value.trim();
128
+
129
+ const result = await answerer(question, context, { topk: 3 });
130
+
131
+ document.getElementById("outputTopArea").innerText = JSON.stringify(result, null, 2);
132
+ }
133
+
134
+ // Initialize the model after the DOM is completely loaded
135
+ window.addEventListener("DOMContentLoaded", initializeModel);
136
+ </script>
137
+ </body>
138
+
139
+ </html>
sentiments.html ADDED
@@ -0,0 +1,224 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <title>Sentiment Analysis - Hugging Face Transformers.js</title>
7
+
8
+ <script type="module">
9
+ // Import the library
10
+ import { pipeline } from 'https://cdn.jsdelivr.net/npm/@xenova/[email protected]';
11
+
12
+ // Make it available globally
13
+ window.pipeline = pipeline;
14
+ </script>
15
+
16
+ <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
17
+
18
+ <link rel="stylesheet" href="css/styles.css">
19
+ </head>
20
+
21
+ <body>
22
+ <div class="container-main">
23
+ <!-- Page Header -->
24
+ <div class="header">
25
+ <div class="header-logo">
26
+ <img src="images/logo.png" alt="logo">
27
+ </div>
28
+ <div class="header-main-text">
29
+ <h1>Hugging Face Transformers.js</h1>
30
+ </div>
31
+ <div class="header-sub-text">
32
+ <h3>Free AI Models for JavaScript Web Development</h3>
33
+ </div>
34
+ </div>
35
+ <hr> <!-- Separator -->
36
+
37
+ <!-- Back to Home button -->
38
+ <div class="row mt-5">
39
+ <div class="col-md-12 text-center">
40
+ <a href="index.html" class="btn btn-outline-secondary"
41
+ style="color: #3c650b; border-color: #3c650b;">Back to Main Page</a>
42
+ </div>
43
+ </div>
44
+
45
+ <!-- Content -->
46
+ <div class="container mt-5">
47
+ <!-- Centered Titles -->
48
+ <div class="text-center">
49
+ <h2>Natural Language Processing</h2>
50
+ <h4>Sentiment Analysis (Text Classification)</h4>
51
+ </div>
52
+
53
+ <!-- Actual Content of this page -->
54
+ <div id="sentiment-analyzer-container" class="container mt-4">
55
+ <h5>Single Input:</h5>
56
+ <div class="d-flex align-items-center">
57
+ <label for="sentimentText" class="mb-0 text-nowrap" style="margin-right: 15px;">Enter Text to
58
+ Analyze:</label>
59
+ <input type="text" class="form-control flex-grow-1" id="sentimentText" value="I love transformers!"
60
+ placeholder="Enter text" style="margin-right: 15px; margin-left: 15px;">
61
+ <button id="analyzeButton" class="btn btn-primary" onclick="analyzeSentiment()">Analyze</button>
62
+ </div>
63
+ <div class="mt-4">
64
+ <h4>Output:</h4>
65
+ <pre id="outputArea"></pre>
66
+ </div>
67
+ </div>
68
+
69
+ <hr> <!-- Line Separator -->
70
+
71
+ <div id="sentiment-analyzer-container2" class="container mt-4">
72
+ <h5>Multiple Inputs:</h5>
73
+ <div class="d-flex align-items-center mb-2">
74
+ <label for="sentimentText1" class="mb-0 text-nowrap" style="margin-right: 15px;">Enter Text to
75
+ Analyze 1:</label>
76
+ <input type="text" class="form-control flex-grow-1" id="sentimentText1" value="I love transformers!"
77
+ placeholder="Enter text" style="margin-right: 15px; margin-left: 15px;">
78
+ </div>
79
+ <div class="d-flex align-items-center">
80
+ <label for="sentimentText2" class="mb-0 text-nowrap" style="margin-right: 15px;">Enter Text to
81
+ Analyze 2:</label>
82
+ <input type="text" class="form-control flex-grow-1" id="sentimentText2" value="I hate transformers!"
83
+ placeholder="Enter text" style="margin-right: 15px; margin-left: 15px;">
84
+ <button id="analyzeButton" class="btn btn-primary ml-2"
85
+ onclick="analyzeSentimentMulti()">Analyze</button>
86
+ </div>
87
+ <div class="mt-4">
88
+ <h4>Output:</h4>
89
+ <pre id="outputArea2"></pre>
90
+ </div>
91
+ </div>
92
+
93
+ <hr> <!-- Line Separator -->
94
+
95
+ <!-- Reviewer -->
96
+ <div id="reviewer-container" class="container mt-4">
97
+ <h5>Load a Specific Model (Xenova/bert-base-multilingual-uncased-sentiment):</h5>
98
+ <div class="d-flex align-items-center">
99
+ <label for="reviewText" class="mb-0 text-nowrap" style="margin-right: 15px;">Enter Text to
100
+ Review:</label>
101
+ <input type="text" class="form-control flex-grow-1" id="reviewText"
102
+ value="The Shawshank Redemption is a true masterpiece of cinema." placeholder="Enter text"
103
+ style="margin-right: 15px; margin-left: 15px;">
104
+ <button id="reviewButton" class="btn btn-primary" onclick="analyzeReview()">Review</button>
105
+ </div>
106
+ <div class="mt-4">
107
+ <h4>Output:</h4>
108
+ <pre id="reviewOutputArea"></pre>
109
+ </div>
110
+ </div>
111
+
112
+ <hr> <!-- Line Separator -->
113
+
114
+ <!-- Reviewer2 -->
115
+ <div id="reviewer-container2" class="container mt-4">
116
+ <h5>Return Top 5 Classes:</h5>
117
+ <div class="d-flex align-items-center">
118
+ <label for="reviewText2" class="mb-0 text-nowrap" style="margin-right: 15px;">Enter Text to
119
+ Review:</label>
120
+ <input type="text" class="form-control flex-grow-1" id="reviewText2"
121
+ value="Le meilleur film de tous les temps." placeholder="Enter text"
122
+ style="margin-right: 15px; margin-left: 15px;">
123
+ <button id="reviewButton2" class="btn btn-primary" onclick="analyzeReview2()">Review</button>
124
+ </div>
125
+ <div class="mt-4">
126
+ <h4>Output:</h4>
127
+ <pre id="reviewOutputArea2"></pre>
128
+ </div>
129
+ </div>
130
+
131
+ <hr> <!-- Line Separator -->
132
+
133
+ <!-- Toxic Comment Classification -->
134
+ <div id="toxic-container" class="container mt-4">
135
+ <h5>Toxic Comment Classification (Return All Classes):</h5>
136
+ <div class="d-flex align-items-center">
137
+ <label for="toxicText" class="mb-0 text-nowrap" style="margin-right: 15px;">Enter Toxic
138
+ Text:</label>
139
+ <input type="text" class="form-control flex-grow-1" id="toxicText" value="I hate you!"
140
+ placeholder="Enter text" style="margin-right: 15px; margin-left: 15px;">
141
+ <button id="toxicButton" class="btn btn-primary" onclick="toxicReview()">Review</button>
142
+ </div>
143
+ <div class="mt-4">
144
+ <h4>Output:</h4>
145
+ <pre id="toxicOutputArea"></pre>
146
+ </div>
147
+ </div>
148
+
149
+ <!-- Back to Home button -->
150
+ <div class="row mt-5">
151
+ <div class="col-md-12 text-center">
152
+ <a href="index.html" class="btn btn-outline-secondary"
153
+ style="color: #3c650b; border-color: #3c650b;">Back to Main Page</a>
154
+ </div>
155
+ </div>
156
+ </div>
157
+ </div>
158
+
159
+ <script>
160
+
161
+ let sentimentAnalysis;
162
+ let reviewer;
163
+ let toxic_classifier;
164
+
165
+ // Initialize the sentiment analysis model
166
+ async function initializeModel() {
167
+ sentimentAnalysis = await pipeline("sentiment-analysis");
168
+ reviewer = await pipeline('sentiment-analysis', 'Xenova/bert-base-multilingual-uncased-sentiment');
169
+ toxic_classifier = await pipeline('text-classification', 'Xenova/toxic-bert');
170
+ }
171
+
172
+ async function analyzeSentiment() {
173
+ const textFieldValue = document.getElementById("sentimentText").value.trim();
174
+
175
+ const result = await sentimentAnalysis(textFieldValue);
176
+
177
+ document.getElementById("outputArea").innerText = JSON.stringify(result, null, 2);
178
+ }
179
+
180
+ async function analyzeSentimentMulti() {
181
+ const textFieldValue1 = document.getElementById("sentimentText1").value.trim();
182
+ const textFieldValue2 = document.getElementById("sentimentText2").value.trim();
183
+
184
+ const result = await sentimentAnalysis([textFieldValue1, textFieldValue2]);
185
+
186
+ document.getElementById("outputArea2").innerText = JSON.stringify(result, null, 2);
187
+ }
188
+
189
+ async function analyzeReview() {
190
+
191
+ const textFieldValue = document.getElementById("reviewText").value.trim();
192
+
193
+ const result = await reviewer(textFieldValue);
194
+
195
+ document.getElementById("reviewOutputArea").innerText = JSON.stringify(result, null, 2);
196
+
197
+ }
198
+
199
+ async function analyzeReview2() {
200
+
201
+ const textFieldValue = document.getElementById("reviewText2").value.trim();
202
+
203
+ const result = await reviewer(textFieldValue, { topk: 5 });
204
+
205
+ document.getElementById("reviewOutputArea2").innerText = JSON.stringify(result, null, 2);
206
+
207
+ }
208
+
209
+ async function toxicReview() {
210
+
211
+ const textFieldValue = document.getElementById("toxicText").value.trim();
212
+
213
+ const result = await toxic_classifier(textFieldValue, { topk: null });
214
+
215
+ document.getElementById("toxicOutputArea").innerText = JSON.stringify(result, null, 2);
216
+
217
+ }
218
+
219
+ // Initialize the model after the DOM is completely loaded
220
+ window.addEventListener("DOMContentLoaded", initializeModel);
221
+ </script>
222
+ </body>
223
+
224
+ </html>
summarization.html ADDED
@@ -0,0 +1,122 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <title>Summarization - Hugging Face Transformers.js</title>
7
+
8
+ <script type="module">
9
+ // Import the library
10
+ import { pipeline } from 'https://cdn.jsdelivr.net/npm/@xenova/[email protected]';
11
+
12
+ // Make it available globally
13
+ window.pipeline = pipeline;
14
+ </script>
15
+
16
+ <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
17
+
18
+ <link rel="stylesheet" href="css/styles.css">
19
+ </head>
20
+
21
+ <body>
22
+ <div class="container-main">
23
+ <!-- Page Header -->
24
+ <div class="header">
25
+ <div class="header-logo">
26
+ <img src="images/logo.png" alt="logo">
27
+ </div>
28
+ <div class="header-main-text">
29
+ <h1>Hugging Face Transformers.js</h1>
30
+ </div>
31
+ <div class="header-sub-text">
32
+ <h3>Free AI Models for JavaScript Web Development</h3>
33
+ </div>
34
+ </div>
35
+ <hr> <!-- Separator -->
36
+
37
+ <!-- Back to Home button -->
38
+ <div class="row mt-5">
39
+ <div class="col-md-12 text-center">
40
+ <a href="index.html" class="btn btn-outline-secondary"
41
+ style="color: #3c650b; border-color: #3c650b;">Back to Main Page</a>
42
+ </div>
43
+ </div>
44
+
45
+ <!-- Content -->
46
+ <div class="container mt-5">
47
+ <!-- Centered Titles -->
48
+ <div class="text-center">
49
+ <h2>Natural Language Processing</h2>
50
+ <h4>Summarization</h4>
51
+ </div>
52
+
53
+ <!-- Actual Content of this page -->
54
+ <div id="summarization-container" class="container mt-4">
55
+ <h5>Summarization with a Specific Model:</h5>
56
+ <div class="d-flex flex-column align-items-start">
57
+ <label for="summarizationText" class="mb-0 text-nowrap" style="margin-right: 15px;">Enter Text to
58
+ Summarize:</label>
59
+ <textarea class="form-control flex-grow-1 mb-2" id="summarizationText" rows="6"
60
+ style="margin-right: 15px; margin-left: 15px;">The tower is 324 metres (1,063 ft) tall, about the same height as an 81-storey building, and the tallest structure in Paris. Its base is square, measuring 125 metres (410 ft) on each side. During its construction, the Eiffel Tower surpassed the Washington Monument to become the tallest man-made structure in the world, a title it held for 41 years until the Chrysler Building in New York City was finished in 1930. It was the first structure to reach a height of 300 metres. Due to the addition of a broadcasting aerial at the top of the tower in 1957, it is now taller than the Chrysler Building by 5.2 metres (17 ft). Excluding transmitters, the Eiffel Tower is the second tallest free-standing structure in France after the Millau Viaduct.</textarea>
61
+
62
+ <button id="summarizeButton" class="btn btn-primary" onclick="summarizeText()">Summarize</button>
63
+ </div>
64
+ <div class="mt-4">
65
+ <h4>Output:</h4>
66
+ <pre id="summarizationOutputArea"></pre>
67
+ </div>
68
+ </div>
69
+
70
+ <!-- Back to Home button -->
71
+ <div class="row mt-5">
72
+ <div class="col-md-12 text-center">
73
+ <a href="index.html" class="btn btn-outline-secondary"
74
+ style="color: #3c650b; border-color: #3c650b;">Back to Main Page</a>
75
+ </div>
76
+ </div>
77
+ </div>
78
+ </div>
79
+
80
+ <script>
81
+
82
+ let generator;
83
+
84
+ // Initialize the sentiment analysis model
85
+ async function initializeModel() {
86
+ generator = await pipeline('summarization', 'Xenova/distilbart-cnn-6-6');
87
+ }
88
+
89
+ async function summarizeText() {
90
+
91
+ // Reference to the textarea and the button
92
+ const textArea = document.getElementById("summarizationText");
93
+ const summarizeButton = document.getElementById("summarizeButton");
94
+
95
+ const textAreaValue = textArea.value.trim();
96
+
97
+ document.getElementById("summarizationOutputArea").innerText = ""
98
+
99
+ // Disable textarea and button, and set cursor to hourglass
100
+ textArea.disabled = true;
101
+ summarizeButton.disabled = true;
102
+ document.body.style.cursor = "wait";
103
+
104
+ // Ensure the DOM updates before making the API call
105
+ setTimeout(async () => {
106
+ let summary = await generator(textAreaValue, { max_new_tokens: 100 });
107
+
108
+ document.getElementById("summarizationOutputArea").innerText = JSON.stringify(summary, null, 2);
109
+
110
+ // Re-enable textarea and button, and reset cursor
111
+ textArea.disabled = false;
112
+ summarizeButton.disabled = false;
113
+ document.body.style.cursor = "default";
114
+ }, 10);
115
+ }
116
+
117
+ // Initialize the model after the DOM is completely loaded
118
+ window.addEventListener("DOMContentLoaded", initializeModel);
119
+ </script>
120
+ </body>
121
+
122
+ </html>
text-generation.html ADDED
@@ -0,0 +1,164 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <title>Text Generation - Hugging Face Transformers.js</title>
7
+
8
+ <script type="module">
9
+ // Import the library
10
+ import { pipeline } from 'https://cdn.jsdelivr.net/npm/@xenova/[email protected]';
11
+
12
+ // Make it available globally
13
+ window.pipeline = pipeline;
14
+ </script>
15
+
16
+ <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
17
+
18
+ <link rel="stylesheet" href="css/styles.css">
19
+ </head>
20
+
21
+ <body>
22
+ <div class="container-main">
23
+ <!-- Page Header -->
24
+ <div class="header">
25
+ <div class="header-logo">
26
+ <img src="images/logo.png" alt="logo">
27
+ </div>
28
+ <div class="header-main-text">
29
+ <h1>Hugging Face Transformers.js</h1>
30
+ </div>
31
+ <div class="header-sub-text">
32
+ <h3>Free AI Models for JavaScript Web Development</h3>
33
+ </div>
34
+ </div>
35
+ <hr> <!-- Separator -->
36
+
37
+ <!-- Back to Home button -->
38
+ <div class="row mt-5">
39
+ <div class="col-md-12 text-center">
40
+ <a href="index.html" class="btn btn-outline-secondary"
41
+ style="color: #3c650b; border-color: #3c650b;">Back to Main Page</a>
42
+ </div>
43
+ </div>
44
+
45
+ <!-- Content -->
46
+ <div class="container mt-5">
47
+ <!-- Centered Titles -->
48
+ <div class="text-center">
49
+ <h2>Natural Language Processing</h2>
50
+ <h4>Text Generation</h4>
51
+ </div>
52
+
53
+ <!-- Actual Content of this page -->
54
+ <div id="text-generation-container" class="container mt-4">
55
+ <h5>Text Generation with Xenova/distilgpt2 (Default Settings):</h5>
56
+ <div class="d-flex align-items-center">
57
+ <label for="generationText" class="mb-0 text-nowrap" style="margin-right: 15px;">Enter Text to
58
+ Generate:</label>
59
+ <input type="text" class="form-control flex-grow-1" id="generationText"
60
+ value="I enjoy walking with my cute dog," placeholder="Enter text"
61
+ style="margin-right: 15px; margin-left: 15px;">
62
+ <button id="generateButton" class="btn btn-primary" onclick="generateText()">Generate</button>
63
+ </div>
64
+ <div class="mt-4">
65
+ <h4>Output:</h4>
66
+ <pre id="outputArea"></pre>
67
+ </div>
68
+ </div>
69
+
70
+ <hr> <!-- Line Separator -->
71
+
72
+ <div id="text-generation-container2" class="container mt-4">
73
+ <h5>Text Generation with Xenova/distilgpt2 (Custom Settings):</h5>
74
+ <div class="d-flex align-items-center">
75
+ <label for="generationText2" class="mb-0 text-nowrap" style="margin-right: 15px;">Enter Text to
76
+ Generate:</label>
77
+ <input type="text" class="form-control flex-grow-1" id="generationText2"
78
+ value="Once upon a time, there was" placeholder="Enter text"
79
+ style="margin-right: 15px; margin-left: 15px;">
80
+ <button id="generateButton2" class="btn btn-primary" onclick="generateText2()">Generate</button>
81
+ </div>
82
+ <div class="mt-4">
83
+ <h4>Output:</h4>
84
+ <pre id="outputArea2"></pre>
85
+ </div>
86
+ </div>
87
+
88
+ <hr> <!-- Line Separator -->
89
+
90
+ <div id="code-generation-container" class="container mt-4">
91
+ <h5>Code Generation with Xenova/codegen-350M-mono:</h5>
92
+ <div class="d-flex align-items-center">
93
+ <label for="generationCode" class="mb-0 text-nowrap" style="margin-right: 15px;">Enter code to
94
+ Generate:</label>
95
+ <input type="text" class="form-control flex-grow-1" id="generationCode"
96
+ value="def fib(n):" placeholder="Enter code"
97
+ style="margin-right: 15px; margin-left: 15px;">
98
+ <button id="generateCodeButton" class="btn btn-primary" onclick="generateCode()">Generate Code</button>
99
+ </div>
100
+ <div class="mt-4">
101
+ <h4>Output:</h4>
102
+ <pre id="outputAreaCode"></pre>
103
+ </div>
104
+ </div>
105
+
106
+ <!-- Back to Home button -->
107
+ <div class="row mt-5">
108
+ <div class="col-md-12 text-center">
109
+ <a href="index.html" class="btn btn-outline-secondary"
110
+ style="color: #3c650b; border-color: #3c650b;">Back to Main Page</a>
111
+ </div>
112
+ </div>
113
+ </div>
114
+ </div>
115
+
116
+ <script>
117
+
118
+ let generator;
119
+ let code_generator;
120
+
121
+ // Initialize the sentiment analysis model
122
+ async function initializeModel() {
123
+ generator = await pipeline('text-generation', 'Xenova/distilgpt2');
124
+ code_generator = await pipeline('text-generation', 'Xenova/codegen-350M-mono');
125
+
126
+ }
127
+
128
+ async function generateText() {
129
+ const textFieldValue = document.getElementById("generationText").value.trim();
130
+
131
+ const result = await generator(textFieldValue);
132
+
133
+ document.getElementById("outputArea").innerText = JSON.stringify(result, null, 2);
134
+ }
135
+
136
+ async function generateText2() {
137
+ const textFieldValue = document.getElementById("generationText2").value.trim();
138
+
139
+ const result = await generator(textFieldValue, {
140
+ temperature: 2,
141
+ max_new_tokens: 20,
142
+ repetition_penalty: 1.5,
143
+ no_repeat_ngram_size: 2,
144
+ num_beams: 2,
145
+ num_return_sequences: 3,
146
+ });
147
+
148
+ document.getElementById("outputArea2").innerText = JSON.stringify(result, null, 2);
149
+ }
150
+
151
+ async function generateCode() {
152
+ const textFieldValue = document.getElementById("generationCode").value.trim();
153
+
154
+ const result = await code_generator(textFieldValue);
155
+
156
+ document.getElementById("outputAreaCode").innerText = JSON.stringify(result, null, 2);
157
+ }
158
+
159
+ // Initialize the model after the DOM is completely loaded
160
+ window.addEventListener("DOMContentLoaded", initializeModel);
161
+ </script>
162
+ </body>
163
+
164
+ </html>
text-to-text-generation.html ADDED
@@ -0,0 +1,140 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <title>Text-to-text Generation - Hugging Face Transformers.js</title>
7
+
8
+ <script type="module">
9
+ // Import the library
10
+ import { pipeline } from 'https://cdn.jsdelivr.net/npm/@xenova/[email protected]';
11
+
12
+ // Make it available globally
13
+ window.pipeline = pipeline;
14
+ </script>
15
+
16
+ <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
17
+
18
+ <link rel="stylesheet" href="css/styles.css">
19
+ </head>
20
+
21
+ <body>
22
+ <div class="container-main">
23
+ <!-- Page Header -->
24
+ <div class="header">
25
+ <div class="header-logo">
26
+ <img src="images/logo.png" alt="logo">
27
+ </div>
28
+ <div class="header-main-text">
29
+ <h1>Hugging Face Transformers.js</h1>
30
+ </div>
31
+ <div class="header-sub-text">
32
+ <h3>Free AI Models for JavaScript Web Development</h3>
33
+ </div>
34
+ </div>
35
+ <hr> <!-- Separator -->
36
+
37
+ <!-- Back to Home button -->
38
+ <div class="row mt-5">
39
+ <div class="col-md-12 text-center">
40
+ <a href="index.html" class="btn btn-outline-secondary"
41
+ style="color: #3c650b; border-color: #3c650b;">Back to Main Page</a>
42
+ </div>
43
+ </div>
44
+
45
+ <!-- Content -->
46
+ <div class="container mt-5">
47
+ <!-- Centered Titles -->
48
+ <div class="text-center">
49
+ <h2>Natural Language Processing</h2>
50
+ <h4>Text-to-text Generation</h4>
51
+ </div>
52
+
53
+ <!-- Actual Content of this page -->
54
+ <div id="text-to-text-generation-container" class="container mt-4">
55
+ <h5>Text-to-text generation w/ Xenova/LaMini-Flan-T5-783M:</h5>
56
+ <div class="d-flex align-items-center">
57
+ <label for="text-to-textGenerationText" class="mb-0 text-nowrap" style="margin-right: 15px;">Enter
58
+ input text sequence:</label>
59
+ <input type="text" class="form-control flex-grow-1" id="text-to-textGenerationText"
60
+ value="how can I become more healthy?" placeholder="Enter text"
61
+ style="margin-right: 15px; margin-left: 15px;">
62
+ <button id="generateButton" class="btn btn-primary" onclick="generateText()">Generate</button>
63
+ </div>
64
+ <div class="mt-4">
65
+ <h4>Output:</h4>
66
+ <pre id="outputArea"></pre>
67
+ </div>
68
+ </div>
69
+
70
+ <hr> <!-- Line Separator -->
71
+
72
+ <div id="text-to-text-generation-container2" class="container mt-4">
73
+ <h5>Generate a Poem Using LaMini-Flan-T5-783M:</h5>
74
+ <div class="d-flex align-items-center">
75
+ <label for="text-to-textGenerationText2" class="mb-0 text-nowrap" style="margin-right: 15px;">Enter
76
+ Poem to
77
+ Generate:</label>
78
+ <input type="text" class="form-control flex-grow-1" id="text-to-textGenerationText2"
79
+ value="Write me a love poem about cheese." placeholder="Enter text"
80
+ style="margin-right: 15px; margin-left: 15px;">
81
+ <button id="generateButton2" class="btn btn-primary" onclick="generateText2()">Generate</button>
82
+ </div>
83
+ <div class="mt-4">
84
+ <h4>Output:</h4>
85
+ <pre id="outputArea2"></pre>
86
+ </div>
87
+ </div>
88
+
89
+ <!-- Back to Home button -->
90
+ <div class="row mt-5">
91
+ <div class="col-md-12 text-center">
92
+ <a href="index.html" class="btn btn-outline-secondary"
93
+ style="color: #3c650b; border-color: #3c650b;">Back to Main Page</a>
94
+ </div>
95
+ </div>
96
+ </div>
97
+ </div>
98
+
99
+ <script>
100
+
101
+ let generator;
102
+
103
+ // Initialize the sentiment analysis model
104
+ async function initializeModel() {
105
+ generator = await pipeline('text2text-generation', 'Xenova/LaMini-Flan-T5-783M');
106
+
107
+ }
108
+
109
+ async function generateText() {
110
+ const textFieldValue = document.getElementById("text-to-textGenerationText").value.trim();
111
+
112
+ const result = await generator(textFieldValue, {
113
+ max_new_tokens: 100,
114
+ });
115
+
116
+ document.getElementById("outputArea").innerText = JSON.stringify(result, null, 2);
117
+ }
118
+
119
+ async function generateText2() {
120
+ const textFieldValue = document.getElementById("text-to-textGenerationText2").value.trim();
121
+
122
+ const result = await generator(textFieldValue, {
123
+ max_new_tokens: 200,
124
+ temperature: 0.9,
125
+ repetition_penalty: 2.0,
126
+ no_repeat_ngram_size: 3,
127
+
128
+ // top_k: 20,
129
+ // do_sample: true,
130
+ });
131
+
132
+ document.getElementById("outputArea2").innerText = JSON.stringify(result, null, 2);
133
+ }
134
+
135
+ // Initialize the model after the DOM is completely loaded
136
+ window.addEventListener("DOMContentLoaded", initializeModel);
137
+ </script>
138
+ </body>
139
+
140
+ </html>
token-classification.html ADDED
@@ -0,0 +1,127 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <title>Token Classification - Hugging Face Transformers.js</title>
7
+
8
+ <script type="module">
9
+ // Import the library
10
+ import { pipeline } from 'https://cdn.jsdelivr.net/npm/@xenova/[email protected]';
11
+
12
+ // Make it available globally
13
+ window.pipeline = pipeline;
14
+ </script>
15
+
16
+ <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
17
+
18
+ <link rel="stylesheet" href="css/styles.css">
19
+ </head>
20
+
21
+ <body>
22
+ <div class="container-main">
23
+ <!-- Page Header -->
24
+ <div class="header">
25
+ <div class="header-logo">
26
+ <img src="images/logo.png" alt="logo">
27
+ </div>
28
+ <div class="header-main-text">
29
+ <h1>Hugging Face Transformers.js</h1>
30
+ </div>
31
+ <div class="header-sub-text">
32
+ <h3>Free AI Models for JavaScript Web Development</h3>
33
+ </div>
34
+ </div>
35
+ <hr> <!-- Separator -->
36
+
37
+ <!-- Back to Home button -->
38
+ <div class="row mt-5">
39
+ <div class="col-md-12 text-center">
40
+ <a href="index.html" class="btn btn-outline-secondary"
41
+ style="color: #3c650b; border-color: #3c650b;">Back to Main Page</a>
42
+ </div>
43
+ </div>
44
+
45
+ <!-- Content -->
46
+ <div class="container mt-5">
47
+ <!-- Centered Titles -->
48
+ <div class="text-center">
49
+ <h2>Natural Language Processing</h2>
50
+ <h4>Token Classification (Named Entity Recognition)</h4>
51
+ </div>
52
+
53
+ <!-- Actual Content of this page -->
54
+ <div id="token-classification-container" class="container mt-4">
55
+ <h5>Perform Named Entity Recognition with Xenova/bert-base-NER:</h5>
56
+ <div class="d-flex align-items-center">
57
+ <label for="tokenClassificationText" class="mb-0 text-nowrap" style="margin-right: 15px;">Enter Text to Recognize:</label>
58
+ <input type="text" class="form-control flex-grow-1" id="tokenClassificationText"
59
+ value="My name is Sarah and I live in London" placeholder="Enter text"
60
+ style="margin-right: 15px; margin-left: 15px;">
61
+ <button id="classifyButton" class="btn btn-primary" onclick="analyzeText()">analyze</button>
62
+ </div>
63
+ <div class="mt-4">
64
+ <h4>Output:</h4>
65
+ <pre id="outputArea"></pre>
66
+ </div>
67
+ </div>
68
+
69
+ <hr> <!-- Line Separator -->
70
+
71
+ <div id="token-classification-container2" class="container mt-4">
72
+ <h5>Perform Named Entity Recognition with Xenova/bert-base-NER (Return all Labels):</h5>
73
+ <div class="d-flex align-items-center">
74
+ <label for="tokenClassificationText2" class="mb-0 text-nowrap" style="margin-right: 15px;">Enter Text to Recognize:</label>
75
+ <input type="text" class="form-control flex-grow-1" id="tokenClassificationText2"
76
+ value="Sarah lives in the United States of America" placeholder="Enter text"
77
+ style="margin-right: 15px; margin-left: 15px;">
78
+ <button id="classifyButton2" class="btn btn-primary" onclick="analyzeText2()">analyze</button>
79
+ </div>
80
+ <div class="mt-4">
81
+ <h4>Output:</h4>
82
+ <pre id="outputArea2"></pre>
83
+ </div>
84
+ </div>
85
+
86
+ <!-- Back to Home button -->
87
+ <div class="row mt-5">
88
+ <div class="col-md-12 text-center">
89
+ <a href="index.html" class="btn btn-outline-secondary"
90
+ style="color: #3c650b; border-color: #3c650b;">Back to Main Page</a>
91
+ </div>
92
+ </div>
93
+ </div>
94
+ </div>
95
+
96
+ <script>
97
+
98
+ let classifier;
99
+
100
+ // Initialize the sentiment analysis model
101
+ async function initializeModel() {
102
+ classifier = await pipeline('token-classification', 'Xenova/bert-base-NER');
103
+
104
+ }
105
+
106
+ async function analyzeText() {
107
+ const textFieldValue = document.getElementById("tokenClassificationText").value.trim();
108
+
109
+ const result = await classifier(textFieldValue);
110
+
111
+ document.getElementById("outputArea").innerText = JSON.stringify(result, null, 2);
112
+ }
113
+
114
+ async function analyzeText2() {
115
+ const textFieldValue = document.getElementById("tokenClassificationText2").value.trim();
116
+
117
+ const result = await classifier(textFieldValue, { ignore_labels: [] });
118
+
119
+ document.getElementById("outputArea2").innerText = JSON.stringify(result, null, 2);
120
+ }
121
+
122
+ // Initialize the model after the DOM is completely loaded
123
+ window.addEventListener("DOMContentLoaded", initializeModel);
124
+ </script>
125
+ </body>
126
+
127
+ </html>
translation-tok-model.html ADDED
@@ -0,0 +1,115 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <title>Translation (Tokenizer & Model) - Hugging Face Transformers.js</title>
7
+
8
+ <script type="module">
9
+ // Import the library
10
+ import { AutoTokenizer, AutoModelForSeq2SeqLM } from 'https://cdn.jsdelivr.net/npm/@xenova/[email protected]';
11
+
12
+ // Make them available globally
13
+ window.AutoTokenizer = AutoTokenizer;
14
+ window.AutoModelForSeq2SeqLM = AutoModelForSeq2SeqLM;
15
+ </script>
16
+
17
+ <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
18
+
19
+ <link rel="stylesheet" href="css/styles.css">
20
+ </head>
21
+
22
+ <body>
23
+ <div class="container-main">
24
+ <!-- Page Header -->
25
+ <div class="header">
26
+ <div class="header-logo">
27
+ <img src="images/logo.png" alt="logo">
28
+ </div>
29
+ <div class="header-main-text">
30
+ <h1>Hugging Face Transformers.js</h1>
31
+ </div>
32
+ <div class="header-sub-text">
33
+ <h3>Free AI Models for JavaScript Web Development</h3>
34
+ </div>
35
+ </div>
36
+ <hr> <!-- Separator -->
37
+
38
+ <!-- Back to Home button -->
39
+ <div class="row mt-5">
40
+ <div class="col-md-12 text-center">
41
+ <a href="index.html" class="btn btn-outline-secondary"
42
+ style="color: #3c650b; border-color: #3c650b;">Back to Main Page</a>
43
+ </div>
44
+ </div>
45
+
46
+ <!-- Content -->
47
+ <div class="container mt-5">
48
+ <!-- Centered Titles -->
49
+ <div class="text-center">
50
+ <h2>Natural Language Processing</h2>
51
+ <h4>Translation (Using Tokenizers and Models))</h4>
52
+ </div>
53
+
54
+ <!-- Actual Content of this page -->
55
+ <div id="translation-container" class="container mt-4">
56
+ <h5>Load and run an AutoModelForSeq2SeqLM Model and an AutoTokenizer:</h5>
57
+ <div class="d-flex align-items-center">
58
+ <label for="translationText" class="mb-0 text-nowrap" style="margin-right: 15px;">Enter Text to
59
+ Translate:</label>
60
+ <input type="text" class="form-control flex-grow-1" id="translationText"
61
+ value="I love transformers!" placeholder="Enter text"
62
+ style="margin-right: 15px; margin-left: 15px;">
63
+ <button id="translateButton" class="btn btn-primary" onclick="translateText()">Translate</button>
64
+ </div>
65
+ <div class="mt-4">
66
+ <h4>Output:</h4>
67
+ <pre id="outputArea"></pre>
68
+ </div>
69
+ </div>
70
+
71
+ <!-- Back to Home button -->
72
+ <div class="row mt-5">
73
+ <div class="col-md-12 text-center">
74
+ <a href="index.html" class="btn btn-outline-secondary"
75
+ style="color: #3c650b; border-color: #3c650b;">Back to Main Page</a>
76
+ </div>
77
+ </div>
78
+ </div>
79
+ </div>
80
+
81
+ <script>
82
+
83
+ let tokenizer;
84
+ let model;
85
+
86
+ // Initialize the sentiment analysis model
87
+ async function initializeModel() {
88
+ tokenizer = await AutoTokenizer.from_pretrained('Xenova/t5-small');
89
+ model = await AutoModelForSeq2SeqLM.from_pretrained('Xenova/t5-small');
90
+
91
+ }
92
+
93
+ async function translateText() {
94
+
95
+ const textFieldValue = document.getElementById("translationText").value.trim();
96
+ let { input_ids } = await tokenizer(textFieldValue);
97
+
98
+ console.log("input_ids: " + input_ids);
99
+
100
+ let outputs = await model.generate(input_ids);
101
+
102
+ let decoded = tokenizer.decode(outputs[0], { skip_special_tokens: true });
103
+
104
+ console.log("outputs: " + outputs);
105
+ console.log("decoded: " + decoded);
106
+
107
+ document.getElementById("outputArea").innerText = JSON.stringify(decoded, null, 2);
108
+ }
109
+
110
+ // Initialize the model after the DOM is completely loaded
111
+ window.addEventListener("DOMContentLoaded", initializeModel);
112
+ </script>
113
+ </body>
114
+
115
+ </html>
translation.html ADDED
@@ -0,0 +1,136 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <title>Translation - Hugging Face Transformers.js</title>
7
+
8
+ <script type="module">
9
+ // Import the library
10
+ import { pipeline } from 'https://cdn.jsdelivr.net/npm/@xenova/[email protected]';
11
+
12
+ // Make it available globally
13
+ window.pipeline = pipeline;
14
+ </script>
15
+
16
+ <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
17
+
18
+ <link rel="stylesheet" href="css/styles.css">
19
+ </head>
20
+
21
+ <body>
22
+ <div class="container-main">
23
+ <!-- Page Header -->
24
+ <div class="header">
25
+ <div class="header-logo">
26
+ <img src="images/logo.png" alt="logo">
27
+ </div>
28
+ <div class="header-main-text">
29
+ <h1>Hugging Face Transformers.js</h1>
30
+ </div>
31
+ <div class="header-sub-text">
32
+ <h3>Free AI Models for JavaScript Web Development</h3>
33
+ </div>
34
+ </div>
35
+ <hr> <!-- Separator -->
36
+
37
+ <!-- Back to Home button -->
38
+ <div class="row mt-5">
39
+ <div class="col-md-12 text-center">
40
+ <a href="index.html" class="btn btn-outline-secondary"
41
+ style="color: #3c650b; border-color: #3c650b;">Back to Main Page</a>
42
+ </div>
43
+ </div>
44
+
45
+ <!-- Content -->
46
+ <div class="container mt-5">
47
+ <!-- Centered Titles -->
48
+ <div class="text-center">
49
+ <h2>Natural Language Processing</h2>
50
+ <h4>Translation</h4>
51
+ </div>
52
+
53
+ <!-- Actual Content of this page -->
54
+ <div id="translation-container" class="container mt-4">
55
+ <h5>Multilingual Translation w/ Xenova/nllb-200-distilled-600M:</h5>
56
+ <div class="d-flex align-items-center">
57
+ <label for="translationText" class="mb-0 text-nowrap" style="margin-right: 15px;">Enter Text to
58
+ Translate:</label>
59
+ <input type="text" class="form-control flex-grow-1" id="translationText"
60
+ value="जीवन एक चॉकलेट बॉक्स की तरह है।" placeholder="Enter text"
61
+ style="margin-right: 15px; margin-left: 15px;">
62
+ <button id="translateButton" class="btn btn-primary" onclick="translateText()">Translate</button>
63
+ </div>
64
+ <div class="mt-4">
65
+ <h4>Output:</h4>
66
+ <pre id="outputArea"></pre>
67
+ </div>
68
+ </div>
69
+
70
+ <hr> <!-- Line Separator -->
71
+
72
+ <div id="translation-container" class="container mt-4">
73
+ <h5>Multilingual Translation w/ Xenova/m2m100_418M:</h5>
74
+ <div class="d-flex align-items-center">
75
+ <label for="translationText2" class="mb-0 text-nowrap" style="margin-right: 15px;">Enter Text to
76
+ Translate:</label>
77
+ <input type="text" class="form-control flex-grow-1" id="translationText2" value="生活就像一盒巧克力。"
78
+ placeholder="Enter text" style="margin-right: 15px; margin-left: 15px;">
79
+ <button id="translateButton2" class="btn btn-primary" onclick="translateText2()">Translate</button>
80
+ </div>
81
+ <div class="mt-4">
82
+ <h4>Output:</h4>
83
+ <pre id="outputArea2"></pre>
84
+ </div>
85
+ </div>
86
+
87
+ <!-- Back to Home button -->
88
+ <div class="row mt-5">
89
+ <div class="col-md-12 text-center">
90
+ <a href="index.html" class="btn btn-outline-secondary"
91
+ style="color: #3c650b; border-color: #3c650b;">Back to Main Page</a>
92
+ </div>
93
+ </div>
94
+ </div>
95
+ </div>
96
+
97
+ <script>
98
+
99
+ let translator;
100
+ let translator2;
101
+
102
+ // Initialize the sentiment analysis model
103
+ async function initializeModel() {
104
+ translator = await pipeline('translation', 'Xenova/nllb-200-distilled-600M');
105
+ translator2 = await pipeline('translation', 'Xenova/m2m100_418M');
106
+
107
+ }
108
+
109
+ async function translateText() {
110
+ const textFieldValue = document.getElementById("translationText").value.trim();
111
+
112
+ let result = await translator(textFieldValue, {
113
+ src_lang: 'hin_Deva', // Hindi
114
+ tgt_lang: 'fra_Latn', // French
115
+ });
116
+
117
+ document.getElementById("outputArea").innerText = JSON.stringify(result, null, 2);
118
+ }
119
+
120
+ async function translateText2() {
121
+ const textFieldValue = document.getElementById("translationText2").value.trim();
122
+
123
+ let result = await translator2(textFieldValue, {
124
+ src_lang: 'zh', // Chinese
125
+ tgt_lang: 'en', // English
126
+ })
127
+
128
+ document.getElementById("outputArea2").innerText = JSON.stringify(result, null, 2);
129
+ }
130
+
131
+ // Initialize the model after the DOM is completely loaded
132
+ window.addEventListener("DOMContentLoaded", initializeModel);
133
+ </script>
134
+ </body>
135
+
136
+ </html>
zero-shot-classification.html ADDED
@@ -0,0 +1,141 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <title>Zero Shot Classification - Hugging Face Transformers.js</title>
7
+
8
+ <script type="module">
9
+ // Import the library
10
+ import { pipeline } from 'https://cdn.jsdelivr.net/npm/@xenova/[email protected]';
11
+
12
+ // Make it available globally
13
+ window.pipeline = pipeline;
14
+ </script>
15
+
16
+ <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
17
+
18
+ <link rel="stylesheet" href="css/styles.css">
19
+ </head>
20
+
21
+ <body>
22
+ <div class="container-main">
23
+ <!-- Page Header -->
24
+ <div class="header">
25
+ <div class="header-logo">
26
+ <img src="images/logo.png" alt="logo">
27
+ </div>
28
+ <div class="header-main-text">
29
+ <h1>Hugging Face Transformers.js</h1>
30
+ </div>
31
+ <div class="header-sub-text">
32
+ <h3>Free AI Models for JavaScript Web Development</h3>
33
+ </div>
34
+ </div>
35
+ <hr> <!-- Separator -->
36
+
37
+ <!-- Back to Home button -->
38
+ <div class="row mt-5">
39
+ <div class="col-md-12 text-center">
40
+ <a href="index.html" class="btn btn-outline-secondary"
41
+ style="color: #3c650b; border-color: #3c650b;">Back to Main Page</a>
42
+ </div>
43
+ </div>
44
+
45
+ <!-- Content -->
46
+ <div class="container mt-5">
47
+ <!-- Centered Titles -->
48
+ <div class="text-center">
49
+ <h2>Natural Language Processing</h2>
50
+ <h4>Zero Shot Classification</h4>
51
+ </div>
52
+
53
+ <!-- Actual Content of this page -->
54
+ <div id="zero-shot-classification-container" class="container mt-4">
55
+ <h5>Zero Shot Classification with Xenova/mobilebert-uncased-mnli:</h5>
56
+ <div class="d-flex align-items-center mb-2">
57
+ <label for="textText" class="mb-0 text-nowrap" style="margin-right: 15px;">Enter Text:</label>
58
+ <input type="text" class="form-control flex-grow-1" id="textText" value="Last week I upgraded my iOS version and ever since then my phone has been overheating whenever I use your app."
59
+ placeholder="Enter text" style="margin-right: 15px; margin-left: 15px;">
60
+ </div>
61
+ <div class="d-flex align-items-center">
62
+ <label for="labelsText" class="mb-0 text-nowrap" style="margin-right: 15px;">Enter Labels (comma separated):</label>
63
+ <input type="text" class="form-control flex-grow-1" id="labelsText" value="mobile, billing, website, account access"
64
+ placeholder="Enter labels (comma separated)" style="margin-right: 15px; margin-left: 15px;">
65
+ <button id="classifyButton" class="btn btn-primary ml-2"
66
+ onclick="classifyText()">Classify</button>
67
+ </div>
68
+ <div class="mt-4">
69
+ <h4>Output:</h4>
70
+ <pre id="outputArea"></pre>
71
+ </div>
72
+ </div>
73
+
74
+ <hr> <!-- Line Separator -->
75
+
76
+ <div id="zero-shot-classification-container-multi" class="container mt-4">
77
+ <h5>Zero Shot Classification with Xenova/nli-deberta-v3-xsmall (Multi-Label):</h5>
78
+ <div class="d-flex align-items-center mb-2">
79
+ <label for="textTextMulti" class="mb-0 text-nowrap" style="margin-right: 15px;">Enter Text:</label>
80
+ <input type="text" class="form-control flex-grow-1" id="textTextMulti" value="I have a problem with my iphone that needs to be resolved asap!"
81
+ placeholder="Enter text" style="margin-right: 15px; margin-left: 15px;">
82
+ </div>
83
+ <div class="d-flex align-items-center">
84
+ <label for="labelsTextMulti" class="mb-0 text-nowrap" style="margin-right: 15px;">Enter Labels (comma separated):</label>
85
+ <input type="text" class="form-control flex-grow-1" id="labelsTextMulti" value="urgent, not urgent, phone, tablet, computer"
86
+ placeholder="Enter labels (comma separated)" style="margin-right: 15px; margin-left: 15px;">
87
+ <button id="classifyButtonMulti" class="btn btn-primary ml-2"
88
+ onclick="classifyTextMulti()">Classify</button>
89
+ </div>
90
+ <div class="mt-4">
91
+ <h4>Output:</h4>
92
+ <pre id="outputAreaMulti"></pre>
93
+ </div>
94
+ </div>
95
+
96
+ <!-- Back to Home button -->
97
+ <div class="row mt-5">
98
+ <div class="col-md-12 text-center">
99
+ <a href="index.html" class="btn btn-outline-secondary"
100
+ style="color: #3c650b; border-color: #3c650b;">Back to Main Page</a>
101
+ </div>
102
+ </div>
103
+ </div>
104
+ </div>
105
+
106
+ <script>
107
+
108
+ let classifier;
109
+ let classifierMulti;
110
+
111
+ // Initialize the sentiment analysis model
112
+ async function initializeModel() {
113
+ classifier = await pipeline('zero-shot-classification', 'Xenova/mobilebert-uncased-mnli');
114
+ classifierMulti = await pipeline('zero-shot-classification', 'Xenova/nli-deberta-v3-xsmall');
115
+
116
+ }
117
+
118
+ async function classifyText() {
119
+ const text = document.getElementById("textText").value.trim();
120
+ const labels = document.getElementById("labelsText").value.trim().split(",").map(item => item.trim());
121
+
122
+ const result = await classifier(text, labels);
123
+
124
+ document.getElementById("outputArea").innerText = JSON.stringify(result, null, 2);
125
+ }
126
+
127
+ async function classifyTextMulti() {
128
+ const text = document.getElementById("textTextMulti").value.trim();
129
+ const labels = document.getElementById("labelsTextMulti").value.trim().split(",").map(item => item.trim());
130
+
131
+ const result = await classifierMulti(text, labels, { multi_label: true });
132
+
133
+ document.getElementById("outputAreaMulti").innerText = JSON.stringify(result, null, 2);
134
+ }
135
+
136
+ // Initialize the model after the DOM is completely loaded
137
+ window.addEventListener("DOMContentLoaded", initializeModel);
138
+ </script>
139
+ </body>
140
+
141
+ </html>
zeroshotimageclassification.html ADDED
@@ -0,0 +1,153 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <title>Zero Shot Image Classification - Hugging Face Transformers.js</title>
7
+
8
+ <script type="module">
9
+ // Import the library
10
+ import { pipeline } from 'https://cdn.jsdelivr.net/npm/@xenova/[email protected]';
11
+
12
+ // Make it available globally
13
+ window.pipeline = pipeline;
14
+ </script>
15
+
16
+ <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
17
+
18
+ <link rel="stylesheet" href="css/styles.css">
19
+ </head>
20
+
21
+ <body>
22
+ <div class="container-main">
23
+ <!-- Page Header -->
24
+ <div class="header">
25
+ <div class="header-logo">
26
+ <img src="images/logo.png" alt="logo">
27
+ </div>
28
+ <div class="header-main-text">
29
+ <h1>Hugging Face Transformers.js</h1>
30
+ </div>
31
+ <div class="header-sub-text">
32
+ <h3>Free AI Models for JavaScript Web Development</h3>
33
+ </div>
34
+ </div>
35
+ <hr> <!-- Separator -->
36
+
37
+ <!-- Back to Home button -->
38
+ <div class="row mt-5">
39
+ <div class="col-md-12 text-center">
40
+ <a href="index.html" class="btn btn-outline-secondary"
41
+ style="color: #3c650b; border-color: #3c650b;">Back to Main Page</a>
42
+ </div>
43
+ </div>
44
+
45
+ <!-- Content -->
46
+ <div class="container mt-5">
47
+ <!-- Centered Titles -->
48
+ <div class="text-center">
49
+ <h2>Computer Vision</h2>
50
+ <h4>Zero Shot Image Classification</h4>
51
+ </div>
52
+
53
+ <!-- Actual Content of this page -->
54
+ <div id="zero-shot-image-classification-container" class="container mt-4">
55
+ <h5>Zero Shot Image Classification w/ Xenova/clip-vit-base-patch32:</h5>
56
+ <div class="d-flex align-items-center mb-2">
57
+ <label for="zeroShotImageClassificationURLText" class="mb-0 text-nowrap"
58
+ style="margin-right: 15px;">Enter
59
+ image URL:</label>
60
+ <input type="text" class="form-control flex-grow-1" id="zeroShotImageClassificationURLText"
61
+ value="https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/tiger.jpg"
62
+ placeholder="Enter image" style="margin-right: 15px; margin-left: 15px;">
63
+ </div>
64
+ <div class="d-flex align-items-center">
65
+ <label for="labelsText" class="mb-0 text-nowrap" style="margin-right: 15px;">Enter Labels (comma
66
+ separated):</label>
67
+ <input type="text" class="form-control flex-grow-1" id="labelsText" value="tiger, horse, dog"
68
+ placeholder="Enter labels (comma separated)" style="margin-right: 15px; margin-left: 15px;">
69
+ <button id="classifyButton" class="btn btn-primary ml-2" onclick="classifyImage()">Classify</button>
70
+ </div>
71
+ <div class="mt-4">
72
+ <h4>Output:</h4>
73
+ <pre id="outputArea"></pre>
74
+ </div>
75
+ </div>
76
+
77
+ <hr> <!-- Line Separator -->
78
+
79
+ <div id="zero-shot-image-classification-local-container" class="container mt-4">
80
+ <h5>Zero Shot Image Classification Local File:</h5>
81
+ <div class="d-flex align-items-center mb-2">
82
+ <label for="imageClassificationLocalFile" class="mb-0 text-nowrap"
83
+ style="margin-right: 15px;">Select Local Image:</label>
84
+ <input type="file" id="imageClassificationLocalFile" accept="image/*" />
85
+ </div>
86
+ <div class="d-flex align-items-center">
87
+ <label for="labelsLocalText" class="mb-0 text-nowrap" style="margin-right: 15px;">Enter Labels (comma
88
+ separated):</label>
89
+ <input type="text" class="form-control flex-grow-1" id="labelsLocalText" value="tiger, horse, dog"
90
+ placeholder="Enter labels (comma separated)" style="margin-right: 15px; margin-left: 15px;">
91
+ <button id="classifyLocalButton" class="btn btn-primary ml-2" onclick="classifyLocalImage()">Classify</button>
92
+ </div>
93
+ <div class="mt-4">
94
+ <h4>Output:</h4>
95
+ <pre id="outputAreaLocal"></pre>
96
+ </div>
97
+ </div>
98
+
99
+ </div>
100
+
101
+ <!-- Back to Home button -->
102
+ <div class="row mt-5">
103
+ <div class="col-md-12 text-center">
104
+ <a href="index.html" class="btn btn-outline-secondary"
105
+ style="color: #3c650b; border-color: #3c650b;">Back to Main Page</a>
106
+ </div>
107
+ </div>
108
+ </div>
109
+ </div>
110
+
111
+ <script>
112
+
113
+ let classifier;
114
+
115
+ // Initialize the sentiment analysis model
116
+ async function initializeModel() {
117
+ classifier = await pipeline('zero-shot-image-classification', 'Xenova/clip-vit-base-patch32');
118
+
119
+ }
120
+
121
+ async function classifyImage() {
122
+ const textFieldValue = document.getElementById("zeroShotImageClassificationURLText").value.trim();
123
+ const labels = document.getElementById("labelsText").value.trim().split(",").map(item => item.trim());
124
+
125
+ const result = await classifier(textFieldValue, labels);
126
+
127
+ document.getElementById("outputArea").innerText = JSON.stringify(result, null, 2);
128
+ }
129
+
130
+ async function classifyLocalImage() {
131
+ const fileInput = document.getElementById("imageClassificationLocalFile");
132
+ const file = fileInput.files[0];
133
+
134
+ if (!file) {
135
+ alert('Please select an image file first.');
136
+ return;
137
+ }
138
+
139
+ // Create a Blob URL from the file
140
+ const url = URL.createObjectURL(file);
141
+ const labels = document.getElementById("labelsLocalText").value.trim().split(",").map(item => item.trim());
142
+
143
+ const result = await classifier(url, labels);
144
+
145
+ document.getElementById("outputAreaLocal").innerText = JSON.stringify(result, null, 2);
146
+ }
147
+
148
+ // Initialize the model after the DOM is completely loaded
149
+ window.addEventListener("DOMContentLoaded", initializeModel);
150
+ </script>
151
+ </body>
152
+
153
+ </html>