Hallo forumleden,

Ik wil een chatbot maken. Deze chatbot moet dan reageren op keywords. Als hij een keyword herkent zal hij een antwoord geven. Ik heb de volgende code al op internet gevonden, en naar mijn wensen aangepast. Nu staat er alleen nog gebruiker. Ik zou graag willen toevoegen dat er een naam komt te staan die de gebruiker kan toevoegen. De eerste vraag die de chatbot dan zou moeten stellen is Hallo wat is je naam?. De opgegeven naam komt dan te staan ipv gebruiker. Dit is mijn javascript code:


/* Scroll textbox to bottom */
window.setInterval(function() {
	var elem = document.getElementById("response");
	elem.scrollTop = elem.scrollHeight;
}, 500);

/*Enter button to Submit*/
document.addEventListener("keyup", function(e) {
	if (e.keyCode == 13) {
		reply();
	}
});

function reply() {
	var input = document.getElementById("userInput").value;
	var chatbox = document.getElementById("response");
	var userInput = input.toUpperCase();

	/* Display user message */
	chatbox.innerHTML += "<br/> <span style='color: blue;'>Gebruiker:</span> " + input;

	/* Check for keywords */
	var vocab = ["HOI", "HALLO", "DOEI"];

	/* Responses to keywords */
	var ans = [
		"Hoi",
		"Hallo",
		"Doei"
	];

	/* Megbot Re: format */
	i = 0;
	while (i < vocab.length) {
		var mb = "<br/><span style='color: red;'>Bot: </span> ";
		var n = userInput.includes(vocab);

		if (n === true) {
			chatbox.innerHTML += mb + ans;
			break;
		}

		i++;

		if (n === false && i === vocab.length) {
			chatbox.innerHTML += mb + "Sorry, ik begrijp je niet.";
		}
	}
	document.getElementById("userInput").value = '';
}


Zou iemand zo vriendelijk willen zijn om mij hiermee te helpen?
Alvast bedankt voor je tijd en moeite!

Groetjes Maarten

========
edit:
========

En dat de tekst Hallo, wat is je naam? veranderd in Hallo wat wil je me vragen?. Dit is mijn html code:

<h2>Chatbot</h2>
<div class="containerchat">
	<div id="response"><span class="red">Chatbot</span> Hallo, wat is je naam?</div>
<center>	
	<input  id="userInput" type="text" placeholder="Vertel"/>

	<input type="submit" id="chatSend" value="Vertel" onclick="reply()" onkeydown="enter()"/>
		
</div>
De voornaam is iets wat je dan op moet slaan. Dit zou in een localstorage met JavaScript kunnen.

Verder is het wel een leuke opzet, maar is het niet makkelijker om het beter beheersbaar te maken, door de keyworden en de reacties uit een database op te halen?

Reageren