Adicionar web/main.js
This commit is contained in:
+63
@@ -0,0 +1,63 @@
|
|||||||
|
const messagesEl = document.getElementById("messages");
|
||||||
|
const inputEl = document.getElementById("input");
|
||||||
|
const sendBtn = document.getElementById("send");
|
||||||
|
const quickActionsEl = document.getElementById("quick-actions");
|
||||||
|
|
||||||
|
function addMessage(role, text) {
|
||||||
|
const div = document.createElement("div");
|
||||||
|
div.className = "message " + role;
|
||||||
|
div.innerText = text;
|
||||||
|
messagesEl.appendChild(div);
|
||||||
|
messagesEl.scrollTop = messagesEl.scrollHeight;
|
||||||
|
}
|
||||||
|
|
||||||
|
async function sendMessage(text) {
|
||||||
|
const res = await fetch("http://localhost:5000/api/conversation", {
|
||||||
|
method: "POST",
|
||||||
|
headers: {"Content-Type": "application/json"},
|
||||||
|
body: JSON.stringify({message: text})
|
||||||
|
});
|
||||||
|
|
||||||
|
const data = await res.json();
|
||||||
|
|
||||||
|
addMessage("assistant", data.reply);
|
||||||
|
|
||||||
|
renderQuickActions(data.quick_actions);
|
||||||
|
renderSuggestions(data.suggestions);
|
||||||
|
}
|
||||||
|
|
||||||
|
function renderQuickActions(actions) {
|
||||||
|
quickActionsEl.innerHTML = "";
|
||||||
|
actions.forEach(a => {
|
||||||
|
const btn = document.createElement("button");
|
||||||
|
btn.innerText = a.label;
|
||||||
|
btn.onclick = () => handleQuickAction(a);
|
||||||
|
quickActionsEl.appendChild(btn);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function renderSuggestions(suggestions) {
|
||||||
|
if (!suggestions || !suggestions.length) return;
|
||||||
|
suggestions.forEach(s => addMessage("assistant", "Sugestão: " + s));
|
||||||
|
}
|
||||||
|
|
||||||
|
function handleQuickAction(action) {
|
||||||
|
addMessage("user", `[Ação rápida] ${action.label}`);
|
||||||
|
sendMessage(action.label);
|
||||||
|
}
|
||||||
|
|
||||||
|
sendBtn.onclick = () => {
|
||||||
|
const text = inputEl.value.trim();
|
||||||
|
if (!text) return;
|
||||||
|
addMessage("user", text);
|
||||||
|
inputEl.value = "";
|
||||||
|
sendMessage(text);
|
||||||
|
};
|
||||||
|
|
||||||
|
window.onload = () => {
|
||||||
|
addMessage("assistant",
|
||||||
|
"{user.name}, como você quer trabalhar hoje?\n\n" +
|
||||||
|
"- Modo Advogado\n- Modo Corporativo\n- Apenas Conversar\n\n" +
|
||||||
|
"Me diga qual modo você prefere agora."
|
||||||
|
);
|
||||||
|
};
|
||||||
Reference in New Issue
Block a user