Spaces:
Running
Running
File size: 2,718 Bytes
a22cbd1 aad0ff4 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
/**
* 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
} |