v10: шағым боты — мазь/укол/жаттығу бөлімдеріне сілтемелер

This commit is contained in:
Aset 2026-08-10 18:08:23 +00:00
parent ad995c251d
commit ec67d847a4
3 changed files with 33 additions and 2 deletions

View File

@ -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();

View File

@ -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 }
]
})

View File

@ -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)}