Clemylia commited on
Commit
92c31ea
·
verified ·
1 Parent(s): f0961c6

Update index.html

Browse files
Files changed (1) hide show
  1. index.html +64 -62
index.html CHANGED
@@ -3,7 +3,7 @@
3
  <head>
4
  <meta charset="UTF-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>Prenma - Générateur de noms</title>
7
  <style>
8
  body {
9
  font-family: Arial, sans-serif;
@@ -91,7 +91,7 @@
91
  border-radius: 5px;
92
  font-size: 24px;
93
  color: #fff;
94
- word-wrap: break-word; /* Pour les longs noms */
95
  }
96
  </style>
97
  </head>
@@ -119,79 +119,81 @@
119
  <label for="includeNumbers">Inclure des chiffres</label>
120
  </div>
121
 
122
- <button onclick="generateName()">Générer</button>
123
 
124
  <div id="result">
125
  Nom généré :
126
  </div>
127
  </div>
128
 
129
- <script>
130
- const vowels = 'aeiouy';
131
- const consonants = 'bcdfghjklmnpqrstvwxyz';
132
- const numbers = '0123456789';
133
-
134
- function getRandomChar(str) {
135
- return str[Math.floor(Math.random() * str.length)];
136
- }
137
-
138
- function generateFantasyName(length) {
139
- let name = '';
140
- let lastCharType = Math.random() < 0.5 ? 'vowel' : 'consonant';
141
-
142
- for (let i = 0; i < length; i++) {
143
- if (lastCharType === 'vowel') {
144
- name += getRandomChar(consonants);
145
- lastCharType = 'consonant';
146
- } else {
147
- name += getRandomChar(vowels);
148
- lastCharType = 'vowel';
149
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
150
  }
151
- return name.charAt(0).toUpperCase() + name.slice(1);
152
- }
153
-
154
- function generateRealName() {
155
- // Liste de prénoms et noms de familles
156
- const firstNames = ['Alex', 'Léa', 'Lucas', 'Emma', 'Hugo', 'Chloé', 'Théo', 'Manon', 'Louise', 'Clementine', 'charlotte', 'Nicole', 'Rose', 'Françoise', 'Elsa', 'Julie', 'Karine', 'Emylie', 'Sylvie', 'Antoine', 'Mïa', "Elena", 'Mathieu', 'Clemence', 'Xavier', 'Laura', 'Veronique', 'Gloria', 'Louna', 'Oceanne', 'Violetine', 'Nora', 'Leo', 'Valentina', 'Nina', 'Lora', 'Dania', 'Sandra', 'Anaselia', 'Anastasia', 'Vincent', 'Olga', 'Maya', 'Lucie', 'Sindy', 'Sandy', 'Wendy', 'Julien', 'Clementine', 'Xavier', 'Georgia'];
157
- const lastNames = ['Martin', 'Dubois', 'Thomas', 'Robert', 'Petit', 'Durand', 'Leroy', 'Moreau', 'Garcia', 'Bonnet', 'Castorina', 'Baril', 'Geneviere', 'Jonia', 'Mazoo', 'Noca', 'Cary', 'Astro', 'Grosiel', 'Lebois', 'Marte', 'Reno', 'Luminis', 'Zexir', 'Norza', 'Zilda', 'Kachallit', 'Vanilla', 'Durand', 'Bonnard', 'Le marseille', 'Nicotouche', 'Montaise', 'Dubeure', 'Carco', 'Tary'];
158
-
159
- const randomFirstName = firstNames[Math.floor(Math.random() * firstNames.length)];
160
- const randomLastName = lastNames[Math.floor(Math.random() * lastNames.length)];
161
-
162
- return randomFirstName + ' ' + randomLastName;
163
  }
164
 
165
- function addNumbers(name) {
166
- let numLength = Math.floor(Math.random() * 4) + 1; // 1 à 4 chiffres
167
- let numbersPart = '';
168
- for (let i = 0; i < numLength; i++) {
169
- numbersPart += getRandomChar(numbers);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
170
  }
171
- return name + numbersPart;
172
  }
 
 
 
173
 
174
- function generateName() {
175
- const length = document.getElementById('nameLength').value;
176
- const style = document.getElementById('nameStyle').value;
177
- const includeNumbers = document.getElementById('includeNumbers').checked;
178
- const resultDiv = document.getElementById('result');
179
-
180
- let generatedName;
181
-
182
- if (style === 'fantasy') {
183
- generatedName = generateFantasyName(length);
184
- } else {
185
- generatedName = generateRealName();
186
- }
187
-
188
- if (includeNumbers) {
189
- generatedName = addNumbers(generatedName);
190
- }
191
-
192
- resultDiv.textContent = 'Nom généré : ' + generatedName;
193
- }
194
  </script>
195
 
196
  </body>
197
- </html>
 
3
  <head>
4
  <meta charset="UTF-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Prenma - Générateur de noms (modèle)</title>
7
  <style>
8
  body {
9
  font-family: Arial, sans-serif;
 
91
  border-radius: 5px;
92
  font-size: 24px;
93
  color: #fff;
94
+ word-wrap: break-word;
95
  }
96
  </style>
97
  </head>
 
119
  <label for="includeNumbers">Inclure des chiffres</label>
120
  </div>
121
 
122
+ <button id="generateBtn">Générer</button>
123
 
124
  <div id="result">
125
  Nom généré :
126
  </div>
127
  </div>
128
 
129
+ <script type="module">
130
+ // Remplacez 'Clemylia/Prenma-model' par le nom de votre modèle s'il est différent
131
+ const modelName = 'Clemylia/Prenma-model';
132
+ let prenmaModel = null;
133
+ let isModelReady = false;
134
+
135
+ // Récupération des éléments HTML
136
+ const resultDiv = document.getElementById('result');
137
+ const nameLengthInput = document.getElementById('nameLength');
138
+ const nameStyleSelect = document.getElementById('nameStyle');
139
+ const includeNumbersCheckbox = document.getElementById('includeNumbers');
140
+ const generateBtn = document.getElementById('generateBtn');
141
+
142
+ // Fonction pour charger le modèle
143
+ async function initializeModel() {
144
+ resultDiv.textContent = 'Chargement du modèle...';
145
+ try {
146
+ const response = await fetch(`https://huggingface.co/${modelName}/raw/main/prenma-model.js`);
147
+ if (!response.ok) {
148
+ throw new Error(`Erreur de téléchargement : ${response.statusText}`);
149
  }
150
+ const scriptText = await response.text();
151
+
152
+ const scriptBlob = new Blob([scriptText], { type: 'application/javascript' });
153
+ const scriptUrl = URL.createObjectURL(scriptBlob);
154
+
155
+ const module = await import(scriptUrl);
156
+
157
+ prenmaModel = new module.default();
158
+ isModelReady = true;
159
+ resultDiv.textContent = 'Modèle Prenma prêt !';
160
+ } catch (error) {
161
+ resultDiv.textContent = `Erreur de chargement : ${error.message}`;
162
+ console.error(error);
163
  }
 
 
 
 
 
 
 
 
 
 
 
 
164
  }
165
 
166
+ // Fonction pour obtenir les options de l'interface et appeler le modèle
167
+ async function getModelResponse() {
168
+ if (!isModelReady) {
169
+ resultDiv.textContent = "Le modèle n'est pas encore prêt. Veuillez patienter.";
170
+ return;
171
+ }
172
+
173
+ resultDiv.textContent = 'Génération en cours...';
174
+
175
+ // Création de l'objet d'options
176
+ const options = {
177
+ length: parseInt(nameLengthInput.value),
178
+ style: nameStyleSelect.value,
179
+ includeNumbers: includeNumbersCheckbox.checked,
180
+ };
181
+
182
+ try {
183
+ const result = await prenmaModel.generate(options);
184
+ resultDiv.textContent = 'Nom généré : ' + result[0].generated_text;
185
+ } catch (error) {
186
+ resultDiv.textContent = `Erreur de génération : ${error.message}`;
187
+ console.error(error);
188
  }
 
189
  }
190
+
191
+ // Attacher l'écouteur d'événement au bouton
192
+ generateBtn.addEventListener('click', getModelResponse);
193
 
194
+ // Lancer le chargement du modèle au début
195
+ initializeModel();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
196
  </script>
197
 
198
  </body>
199
+ </html>