Spaces:
Sleeping
Sleeping
| /** | |
| * Ejemplo de código para integrar BITER en justbyte.es | |
| * Este archivo muestra cómo implementar la comunicación con la API de BITER | |
| * desde tu sitio web. | |
| */ | |
| // URL de tu Hugging Face Space | |
| const BITER_API_URL = "https://tu-usuario-huggingface.hf.space/generate" | |
| // Elementos del DOM | |
| const chatForm = document.getElementById("chat-form") | |
| const userInput = document.getElementById("user-input") | |
| const chatMessages = document.getElementById("chat-messages") | |
| const loadingIndicator = document.getElementById("loading-indicator") | |
| // Manejar envío del formulario | |
| chatForm.addEventListener("submit", async (e) => { | |
| e.preventDefault() | |
| // Obtener mensaje del usuario | |
| const userMessage = userInput.value.trim() | |
| if (!userMessage) return | |
| // Limpiar input | |
| userInput.value = "" | |
| // Mostrar mensaje del usuario | |
| appendMessage("user", userMessage) | |
| // Mostrar indicador de carga | |
| loadingIndicator.style.display = "block" | |
| try { | |
| // Enviar solicitud a la API de BITER | |
| const response = await fetch(BITER_API_URL, { | |
| method: "POST", | |
| headers: { | |
| "Content-Type": "application/json", | |
| }, | |
| body: JSON.stringify({ | |
| message: userMessage, | |
| }), | |
| }) | |
| // Verificar si la respuesta es exitosa | |
| if (!response.ok) { | |
| throw new Error("Error en la respuesta de la API") | |
| } | |
| // Obtener datos de la respuesta | |
| const data = await response.json() | |
| // Mostrar respuesta de BITER | |
| appendMessage("assistant", data.response) | |
| } catch (error) { | |
| console.error("Error:", error) | |
| appendMessage( | |
| "system", | |
| "Lo siento, ha ocurrido un error al conectar con BITER. Por favor, intenta de nuevo más tarde.", | |
| ) | |
| } finally { | |
| // Ocultar indicador de carga | |
| loadingIndicator.style.display = "none" | |
| } | |
| }) | |
| // Función para añadir mensajes al chat | |
| function appendMessage(role, content) { | |
| const messageDiv = document.createElement("div") | |
| messageDiv.className = `message ${role}-message` | |
| // Crear avatar | |
| const avatar = document.createElement("div") | |
| avatar.className = "avatar" | |
| // Icono según el rol | |
| if (role === "user") { | |
| avatar.innerHTML = "👤" | |
| } else if (role === "assistant") { | |
| avatar.innerHTML = "🤖" | |
| } else { | |
| avatar.innerHTML = "⚠️" | |
| } | |
| // Crear contenido del mensaje | |
| const messageContent = document.createElement("div") | |
| messageContent.className = "message-content" | |
| messageContent.textContent = content | |
| // Añadir elementos al mensaje | |
| messageDiv.appendChild(avatar) | |
| messageDiv.appendChild(messageContent) | |
| // Añadir mensaje al contenedor | |
| chatMessages.appendChild(messageDiv) | |
| // Scroll al último mensaje | |
| chatMessages.scrollTop = chatMessages.scrollHeight | |
| } |