Pokaż mi to: chatovací okno
Chat jsou tři věci: seznam zpráv, políčko na psaní a tlačítko Wyślij.
<div class="chat">
<div id="zpravy" class="chat-zpravy"></div>
<form id="chat-form" class="chat-form">
<input id="chat-vstup" type="text" placeholder="Napiš otázku…" autocomplete="off" />
<button type="submit">Wyślij</button>
</form>
</div>
.chat { border: 1px solid #ddd; border-radius: 12px; max-width: 420px; }
.chat-zpravy { height: 300px; overflow-y: auto; padding: 12px; display: flex; flex-direction: column; gap: 8px; }
.zprava { padding: 8px 12px; border-radius: 12px; max-width: 80%; }
.zprava.ja { background: #4f46e5; color: white; align-self: flex-end; }
.zprava.bot { background: #f0f0f0; align-self: flex-start; }
.chat-form { display: flex; gap: 8px; padding: 12px; border-top: 1px solid #ddd; }
.chat-form input { flex: 1; }
Napojení na server
const zpravy = document.querySelector('#zpravy');
const form = document.querySelector('#chat-form');
const vstup = document.querySelector('#chat-vstup');
function pridejZpravu(text, kdo) {
const el = document.createElement('div');
el.className = `zprava ${kdo}`;
el.textContent = text;
zpravy.appendChild(el);
zpravy.scrollTop = zpravy.scrollHeight; // sjeď dolů na novou zprávu
}
form.addEventListener('submit', async (e) => {
e.preventDefault();
const otazka = vstup.value.trim();
if (!otazka) return;
pridejZpravu(otazka, 'ja');
vstup.value = '';
pridejZpravu('Přemýšlím…', 'bot');
const r = await fetch('/zeptat-se', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ otazka }),
});
const data = await r.json();
zpravy.lastChild.textContent = data.text; // nahraď „Přemýšlím…" odpovědí
});
Všechno v tom kódu už znáš: addEventListener, createElement, fetch s POST. Nový je jen nápad poskládat to do chatu.
„Přemýšlím…” je malý, ale důležitý trik. AI odpovídá pár vteřin – bez téhle zprávy by návštěvník myslel, že chat nefunguje. Dobří programátoři vždycky ukazují, že se něco děje.
Teraz ty 💪
- Postav chat podle vzoru a přizpůsob barvy svému webu.
- V systémovém promptu na serveru (lekce 6) použij prompt svého projektu z lekce 5 – tím se z obecné AI stane tvůj pomocník.
- Otestuj: polož 5 otázek, které by mohl mít návštěvník. Odpovídá bot správně? Dolaď prompt.
- Bonus: přidej úvodní zprávu bota, která se ukáže hned po načtení („Ahoj! Zeptej se mě na cokoliv o naší škole.”).
Bezpečnost chatu: do systémového promptu přidej větu „Odpovídej jen na otázky o [tvůj web]. Na jiné otázky zdvořile odmítni odpovědět.” – jinak bude bot návštěvníkům psát cokoli, i věci, které s tvým webem nesouvisí.
Kontrola: Na tvém webu běží chat: napíšeš otázku, objeví se tvoje bublina, „Přemýšlím…” a pak odpověď bota. Bot mluví jako pomocník tvého projektu.
Co si z téhle lekce odnést
- Chat = seznam zpráv + formulář + fetch na tvůj server.
- Ukazuj stav („Přemýšlím…”) – návštěvník musí vědět, že se něco děje.
- Osobnost a hranice bota řídíš systémovým promptem na serveru.
© 2026 Ing. Martin Polak / AlgoRhino · Warunki użytkowania treści