v10: шағым боты — мазь/укол/жаттығу бөлімдеріне сілтемелер
This commit is contained in:
parent
ad995c251d
commit
ec67d847a4
30
script.js
30
script.js
@ -192,6 +192,34 @@ function addMsg(who, text) {
|
||||
chatBox.scrollTop = chatBox.scrollHeight;
|
||||
}
|
||||
|
||||
function addQuickLinks(text) {
|
||||
var t = text.toLowerCase();
|
||||
var links = [];
|
||||
if (t.indexOf("жаттығу") !== -1 || t.indexOf("жаттыгу") !== -1 || t.indexOf("қозғал") !== -1 || t.indexOf("козгал") !== -1) {
|
||||
links.push({ href: "#timer", label: "▶ Жаттығу бөлімі" });
|
||||
}
|
||||
if (t.indexOf("мазь") !== -1 || t.indexOf("укол") !== -1 || t.indexOf("дәрі") !== -1 || t.indexOf("дәр") !== -1 || t.indexOf("дори") !== -1 || t.indexOf("гель") !== -1) {
|
||||
links.push({ href: "#drugs", label: "💊 Дәрілер бөлімі" });
|
||||
links.push({ href: "#pharm", label: "🛒 Онлайн-аптека" });
|
||||
}
|
||||
if (!links.length) return;
|
||||
var row = document.createElement("div");
|
||||
row.className = "msg-quick";
|
||||
links.forEach(function (l) {
|
||||
var a = document.createElement("a");
|
||||
a.className = "btn btn-ghost btn-quick";
|
||||
a.href = l.href;
|
||||
a.textContent = l.label;
|
||||
a.addEventListener("click", function () {
|
||||
var sec = document.querySelector(l.href);
|
||||
if (sec) sec.scrollIntoView({ behavior: "smooth" });
|
||||
});
|
||||
row.appendChild(a);
|
||||
});
|
||||
chatBox.appendChild(row);
|
||||
chatBox.scrollTop = chatBox.scrollHeight;
|
||||
}
|
||||
|
||||
async function sendChat() {
|
||||
var text = chatInput.value.trim();
|
||||
if (!text) return;
|
||||
@ -210,7 +238,7 @@ async function sendChat() {
|
||||
});
|
||||
var j = await r.json();
|
||||
waiting.remove();
|
||||
if (j.ok) addMsg("bot", j.answer);
|
||||
if (j.ok) { addMsg("bot", j.answer); addQuickLinks(j.answer); }
|
||||
else addMsg("bot", "Кешіріңіз, жауап қазір келмеді. Кейінірек қайталап көріңіз немесе шағымыңды басқаша жазып жіберіңіз.");
|
||||
} catch (e) {
|
||||
waiting.remove();
|
||||
|
||||
@ -22,7 +22,7 @@ async function ai(prompt) {
|
||||
model: process.env.AI_MODEL,
|
||||
temperature: 0.4,
|
||||
messages: [
|
||||
{ role: "system", content: "Сен — артрит, артроз және анкилозды спондилит (Бехтерев ауруы) бар адамдарға арналған көмекші-кеңесші. Қазақ тілінде, жай сөзбен, қысқа әрі нақты жауап бер. Жауабыңда мыналар болсын: 1) шағымды қалай бағалауға болады; 2) қазір не істеу керек (жеңіл қозғалыс, жылу/суық, тыныштық) — жаттығуды тек ауырсынбай ғана орындау керектігін ескерт; 3) дәрі-дәрмекті тек дәрігер тағайындайтынын еске сал, дәрі атын ұсынба; 4) қандай белгілер кезінде дәрігерге шұғыл қаралу керектігін анық жаз (қатты күшейген ауырсыну, қатты ісіну, қызба, аяқ-қолды қозғалта алмау, сезімталдық жоғалуы). Ақырында: «Бұл ақпарат дәрігер кеңесінің орнын баспайды» деп қос. Сен медициналық маман емессің." },
|
||||
{ role: "system", content: "Сен — артрит, артроз және анкилозды спондилит (Бехтерев ауруы) бар адамдарға арналған көмекші-кеңесші. Қазақ тілінде, жай сөзбен, қысқа әрі нақты жауап бер. Жауабыңда мыналар болсын: 1) шағымды қалай бағалауға болады; 2) қазір не істеу керек (жеңіл қозғалыс, жылу/суық, тыныштық) — жаттығуды тек ауырсынбай ғана орындау керектігін ескерт; 3) дәрі-дәрмекті тек дәрігер тағайындайтынын еске сал, дәрі атын ұсынба; 4) қандай белгілер кезінде дәрігерге шұғыл қаралу керектігін анық жаз (қатты күшейген ауырсыну, қатты ісіну, қызба, аяқ-қолды қозғалта алмау, сезімталдық жоғалуы). Шағымға байланысты пайдалы болса, осы бөлімдерге сілтеме ата: жаттығуларға — «Сайттағы Жаттығу бөлімінде дайын кешен бар» деп, дәрі/мазь/уколға — «Дәрілер және Аптека бөлімдерін қара» деп. Ақырында: «Бұл ақпарат дәрігер кеңесінің орнын баспайды» деп қос. Сен медициналық маман емессің." },
|
||||
{ role: "user", content: prompt }
|
||||
]
|
||||
})
|
||||
|
||||
@ -87,6 +87,9 @@ h1,h2,h3{font-family:"Unbounded",sans-serif;line-height:1.15}
|
||||
.msg.bot{background:#1d2738;color:#e3eaf4;align-self:flex-start;border-bottom-left-radius:4px}
|
||||
.msg.user{background:var(--cyan);color:var(--ink);align-self:flex-end;border-bottom-right-radius:4px;font-weight:600}
|
||||
.msg.typing{color:#7d8796;font-style:italic}
|
||||
.msg-quick{display:flex;gap:8px;flex-wrap:wrap;align-self:flex-start;max-width:100%}
|
||||
.btn-quick{padding:9px 16px;font-size:13.5px;margin:0;background:transparent;color:#9beeff;border:1px solid #00b8cc}
|
||||
.btn-quick:hover{filter:brightness(1.15);background:#0e1a26}
|
||||
.chat-in{display:flex;gap:10px}
|
||||
.chat-in textarea{flex:1;background:#141a26;border:1px solid #222b3c;border-radius:10px;color:var(--white);padding:12px 14px;font:15px/1.5 "Manrope",sans-serif;resize:vertical;min-height:52px}
|
||||
.chat-in textarea:focus{outline:none;border-color:var(--cyan)}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user