Skip to content

Commit 4f558c3

Browse files
authored
Update script.js
1 parent ad94b13 commit 4f558c3

File tree

1 file changed

+28
-20
lines changed

1 file changed

+28
-20
lines changed

script.js

Lines changed: 28 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,6 @@ const input = document.getElementById("user-input");
44

55
let threadId = null; // Slaat de thread_id lokaal op
66

7-
// Welkomstbericht tonen bij opstart
8-
window.addEventListener("DOMContentLoaded", () => {
9-
const welcomeMessage = `
10-
Welkom bij de AI Indicatiehulp! Ik ben jouw digitale adviseur voor het stellen van de juiste indicatie en het opstellen van een conceptadvies voor de zorgexpert (Kim Brand).<br><br>
11-
<strong>Kies een optie om te starten:</strong><br>
12-
1. In kaart brengen cliëntsituatie<br>
13-
2. Bekijk richtlijnen<br>
14-
3. Contact opnemen met de zorgexpert<br><br>
15-
Wil je direct een indicatieadvies laten opstellen? Dan heb ik meer informatie nodig over de cliënt.<br>
16-
Met welke optie wil je verder?<br>
17-
Geef bij voorkeur ook je naam en een e-mail of telefoonnummer, zodat we het conceptadvies voor beoordeling kunnen indienen.
18-
`;
19-
appendMessage("agent", welcomeMessage);
20-
});
21-
227
form.addEventListener("submit", async (e) => {
238
e.preventDefault();
249
const message = input.value.trim();
@@ -41,18 +26,41 @@ form.addEventListener("submit", async (e) => {
4126
}
4227

4328
const data = await response.json();
44-
appendMessage("agent", data.reply);
45-
threadId = data.thread_id; // Bewaar voor vervolgvragen
29+
const agentMsg = appendMessage("agent", "");
30+
simulateStreamingText(data.reply,
31+
(partial) => {
32+
agentMsg.textContent = partial;
33+
},
34+
() => {
35+
console.log("Volledig antwoord weergegeven");
36+
}
37+
);
38+
threadId = data.thread_id; // Bewaar thread_id voor vervolgvragen
4639
} catch (err) {
4740
appendMessage("agent", "Er ging iets mis.");
4841
console.error("Fout in fetch:", err);
4942
}
5043
});
5144

52-
function appendMessage(role, text) {
45+
function appendMessage(sender, text) {
5346
const msg = document.createElement("div");
54-
msg.classList.add("message", role === "user" ? "user-message" : "agent-message");
55-
msg.innerHTML = text; // HTML renderen i.p.v. tekst
47+
msg.classList.add("message", sender === "user" ? "user-message" : "agent-message");
48+
msg.textContent = text;
5649
chat.appendChild(msg);
5750
chat.scrollTop = chat.scrollHeight;
51+
return msg;
52+
}
53+
54+
function simulateStreamingText(fullText, updateCallback, doneCallback) {
55+
let index = 0;
56+
const interval = setInterval(() => {
57+
if (index < fullText.length) {
58+
updateCallback(fullText.slice(0, index + 1));
59+
index++;
60+
} else {
61+
clearInterval(interval);
62+
doneCallback();
63+
}
64+
}, 20);
5865
}
66+

0 commit comments

Comments
 (0)