Test1 / script.js
Anky0613's picture
Update script.js
a54222f verified
Raw
History Blame Contribute Delete
1.97 kB
// Hugging Face Router Chat Endpoint
const API_URL = "https://router.huggingface.co/v1/chat/completions";
const MODEL_NAME = "openai/gpt-oss-20b:fastest";
async function sendMessage() {
const apiKeyInput = document.getElementById("api-key-input");
const userInput = document.getElementById("user-input");
const apiKey = apiKeyInput ? apiKeyInput.value.trim() : "";
const text = userInput ? userInput.value.trim() : "";
if (!apiKey) {
alert("Please enter a valid Hugging Face API key.");
return;
}
if (!text) return;
// Render user prompt in chat
appendMessage(text, "user-message");
userInput.value = "";
// Show status indicator
const loadingMessage = appendMessage("Thinking...", "bot-message");
try {
const response = await fetch(API_URL, {
method: "POST",
headers: {
"Authorization": `Bearer ${apiKey}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
model: MODEL_NAME,
messages: [{ role: "user", content: text }],
max_tokens: 300
})
});
const data = await response.json();
if (response.ok) {
// Parse OpenAI-style chat response format
const reply = data.choices?.[0]?.message?.content || "No response generated.";
loadingMessage.textContent = reply;
} else {
loadingMessage.textContent = `Error (${response.status}): ${data.error?.message || data.error || "Request failed"}`;
}
} catch (error) {
loadingMessage.textContent = "Network error. Please check your browser connection or API key.";
console.error("Chatbot API Error:", error);
}
}
function appendMessage(text, className) {
const chatBox = document.getElementById("chat-box");
const messageDiv = document.createElement("div");
messageDiv.classList.add("message", className);
messageDiv.textContent = text;
chatBox.appendChild(messageDiv);
chatBox.scrollTop = chatBox.scrollHeight;
return messageDiv;
}