reach-vb HF Staff commited on
Commit
efd4ae9
·
verified ·
1 Parent(s): 86a4e7b

The login button doesn't work anymore - Follow Up Deployment

Browse files
Files changed (1) hide show
  1. index.html +47 -32
index.html CHANGED
@@ -128,7 +128,10 @@
128
  let messageCount = 0;
129
 
130
  // Initialize
131
- checkAuth();
 
 
 
132
 
133
  // Event Listeners
134
  loginBtn.addEventListener('click', handleLogin);
@@ -161,23 +164,35 @@
161
  }
162
  }
163
 
164
- function handleLogin() {
165
- // In a real app, you would use OAuth flow
166
- // For demo purposes, we'll simulate it with a prompt
167
- const token = prompt("Enter your Hugging Face token:");
168
 
169
- if (token) {
170
- // Simulate getting user info
 
 
 
 
 
 
 
 
171
  const demoUser = {
172
- name: "Demo User",
173
- avatar: "https://ui-avatars.com/api/?name=Demo+User&background=3b82f6&color=fff"
174
  };
175
 
176
  localStorage.setItem('hf_token', token);
177
  localStorage.setItem('hf_user', JSON.stringify(demoUser));
178
  currentUser = demoUser;
 
 
179
 
180
- setupAuthenticatedUI(token);
 
 
 
 
181
  }
182
  }
183
 
@@ -198,21 +213,24 @@
198
  messageCount = 0;
199
  }
200
 
201
- function setupAuthenticatedUI(token) {
202
- // Initialize HF client
203
- hfClient = new HuggingFace.inference.InferenceApi(token);
204
-
 
205
  // Update UI
206
  loginBtn.classList.add('hidden');
207
  userInfo.classList.remove('hidden');
208
  userAvatar.src = currentUser.avatar;
209
  username.textContent = currentUser.name;
210
  messageInput.disabled = false;
 
211
 
212
  // Show welcome message if first time
213
  if (messageCount === 0) {
214
  addMessage('assistant', "Hello! I'm an AI assistant. How can I help you today?");
215
  }
 
216
  }
217
 
218
  async function sendMessage() {
@@ -231,39 +249,36 @@
231
  try {
232
  isGenerating = true;
233
 
234
- // Get selected model
235
- const model = modelSelect.value;
 
 
236
 
237
- // Prepare messages for API
238
- const messages = getConversationHistory();
 
 
239
 
240
- // Stream the response
241
  const response = await hfClient.conversational({
242
  model: model,
243
  inputs: {
244
- past_user_inputs: messages.filter(m => m.role === 'user').map(m => m.content),
245
- generated_responses: messages.filter(m => m.role === 'assistant').map(m => m.content),
246
- text: message
247
  }
248
  });
249
 
250
  updateMessage(loadingId, response.generated_text);
251
  chatMessages.scrollTop = chatMessages.scrollHeight;
252
-
253
- // Update token count (approximate)
254
- const tokens = Math.ceil(response.generated_text.length / 4);
255
- tokenCounter.textContent = `${tokens} tokens`;
256
-
257
- // Update token count (approximate)
258
- const tokens = Math.ceil(fullResponse.length / 4);
259
- tokenCounter.textContent = `${tokens} tokens`;
260
 
261
  } catch (error) {
262
  console.error("Error:", error);
263
- updateMessage(loadingId, "Sorry, I encountered an error. Please try again.");
264
  } finally {
265
  isGenerating = false;
266
- currentStream = null;
267
  }
268
  }
269
 
 
128
  let messageCount = 0;
129
 
130
  // Initialize
131
+ document.addEventListener('DOMContentLoaded', () => {
132
+ checkAuth();
133
+ messageInput.disabled = false; // Always enable input
134
+ });
135
 
136
  // Event Listeners
137
  loginBtn.addEventListener('click', handleLogin);
 
164
  }
165
  }
166
 
167
+ async function handleLogin() {
168
+ const token = prompt("Enter your Hugging Face API token (get it from https://huggingface.co/settings/tokens):");
 
 
169
 
170
+ if (!token) return;
171
+
172
+ try {
173
+ // Test the token by making a simple request
174
+ const testClient = new HuggingFaceInference(token);
175
+ await testClient.textGeneration({
176
+ model: "gpt2",
177
+ inputs: "test"
178
+ }, { wait_for_model: true });
179
+
180
  const demoUser = {
181
+ name: "Hugging Face User",
182
+ avatar: "https://huggingface.co/front/assets/huggingface_logo-noborder.svg"
183
  };
184
 
185
  localStorage.setItem('hf_token', token);
186
  localStorage.setItem('hf_user', JSON.stringify(demoUser));
187
  currentUser = demoUser;
188
+ hfClient = testClient;
189
+ setupAuthenticatedUI();
190
 
191
+ // Show success message
192
+ addMessage('assistant', "Successfully logged in! How can I help you today?");
193
+ } catch (error) {
194
+ console.error("Login failed:", error);
195
+ alert("Invalid token. Please check your token and try again.");
196
  }
197
  }
198
 
 
213
  messageCount = 0;
214
  }
215
 
216
+ function setupAuthenticatedUI() {
217
+ const token = localStorage.getItem('hf_token');
218
+ if (token) {
219
+ hfClient = new HuggingFaceInference(token);
220
+ }
221
  // Update UI
222
  loginBtn.classList.add('hidden');
223
  userInfo.classList.remove('hidden');
224
  userAvatar.src = currentUser.avatar;
225
  username.textContent = currentUser.name;
226
  messageInput.disabled = false;
227
+ sendBtn.disabled = false;
228
 
229
  // Show welcome message if first time
230
  if (messageCount === 0) {
231
  addMessage('assistant', "Hello! I'm an AI assistant. How can I help you today?");
232
  }
233
+
234
  }
235
 
236
  async function sendMessage() {
 
249
  try {
250
  isGenerating = true;
251
 
252
+ const token = localStorage.getItem('hf_token');
253
+ if (!token || !hfClient) {
254
+ throw new Error("Not authenticated. Please login first.");
255
+ }
256
 
257
+ // Initialize client if not already done
258
+ if (!hfClient) {
259
+ hfClient = new HuggingFaceInference(token);
260
+ }
261
 
262
+ const model = modelSelect.value;
263
  const response = await hfClient.conversational({
264
  model: model,
265
  inputs: {
266
+ text: message,
267
+ past_user_inputs: [],
268
+ generated_responses: []
269
  }
270
  });
271
 
272
  updateMessage(loadingId, response.generated_text);
273
  chatMessages.scrollTop = chatMessages.scrollHeight;
274
+ tokenCounter.textContent = `${response.conversation.generated_responses[0].length} tokens`;
 
 
 
 
 
 
 
275
 
276
  } catch (error) {
277
  console.error("Error:", error);
278
+ updateMessage(loadingId, `Error: ${error.message}`);
279
  } finally {
280
  isGenerating = false;
281
+ sendBtn.disabled = false;
282
  }
283
  }
284