Django Поддерживайте связь с маршрутом через отдельный фронтенд
Я работаю над чатботом и хочу развернуть его на Django, но я использую отдельный фронтенд. Я практически ничего не знаю о JavaScript и скопировал этот скрипт откуда-то:
onSendButton(chatbox) {
var textField=chatbox.querySelector('input');
let text1=textField.value
if(text1==="") {
return;
}
let msg1={name: "User", message: text1}
this.messages.push(msg1);
this.updateChatText(chatbox)
textField.value=''
fetch('http://localhost:8000/chat', {
method: 'POST',
body: JSON.stringify({message: text1}),
mode: 'cors',
headers: {
'Content-Type': 'application/json'
},
})
.then(r => r.json())
.then(r => {
console.log(r)
let msg2={name: "CareAll", message: r.answer};
this.messages.push(msg2);
if("follow_up" in r) {
let msg3={name: "CareAll", message: r.follow_up};
this.messages.push(msg3)
}
this.updateChatText(chatbox)
textField.value=''
}).catch((error) => {
console.error('Error:', error);
this.updateChatText(chatbox)
textField.value=''
});
}
Эта функция предназначена для маршрута /chat
def chat_bot_response(request):
if request.method == "POST":
u_msg = json.loads(request.body)["message"]
ints = predict_class(u_msg, cb_model)
resp = {"answer": getResponse(ints, intents)}
maxConf = max(ints, key=lambda x: x["probability"])
if maxConf["intent"] not in [
"greeting",
"farewell",
"about_self",
"about_self_function",
"question",
"unknown",
"yes_to_symptom",
"no_to_symptom",
]:
RESP_LIST.append(resp["answer"])
resp["answer"] = "Do You Have other symptoms?"
if maxConf["intent"] == "yes_to_symptom":
print(RESP_LIST)
elif maxConf["intent"] == "no_to_symptom":
resp["answer"] = RESP_LIST[0]
return JsonResponse(resp)
Что я пытаюсь сделать, я хочу оставаться в этой функции, когда чатбокс открыт, пока пользователь не покинет страницу. Нужно ли мне улучшить JavaScript? Использовать шаблон Django? Каково возможное решение.