Chia thời gian chờ thành hai giai đoạn và hiển thị khác nhau cho từng giai đoạn.
Giai đoạn 1 — trước token đầu tiên (TTFT). Thường 0.5–3 giây, có thể lâu hơn nếu prompt dài hoặc có bước truy xuất. Ở đây hiển thị chỉ báo đang xử lý, kèm nhãn nói rõ đang làm gì nếu có nhiều bước: "Đang tìm tài liệu liên quan" → "Đang soạn câu trả lời". Nhãn theo bước làm cảm giác chờ ngắn lại vì người dùng thấy tiến triển.
Giai đoạn 2 — đang chảy chữ. Chữ hiện dần chính là chỉ báo tiến độ; bỏ spinner đi, giữ con trỏ nhấp nháy ở cuối và nút Dừng luôn hiện.
Những điểm hay bỏ sót:
- Vô hiệu hoá nút gửi khi đang chạy, nếu không người dùng bấm nhiều lần tạo nhiều request song song và trả tiền nhiều lần.
- Neo cuộn: tự cuộn theo chữ mới, nhưng dừng tự cuộn ngay khi người dùng kéo lên đọc lại.
- Lỗi giữa chừng: giữ lại phần chữ đã ra, thêm nút thử lại — đừng xoá trắng những gì người dùng đã đọc.
Ưu tiên tối ưu TTFT hơn tổng thời gian: người dùng cảm nhận độ nhanh ở token đầu tiên, không phải ở token cuối.