Streaming câu trả lời LLM lên giao diện: SSE hay WebSocket? Xử lý ngắt kết nối thế nào?
Mình đang làm giao diện chat cho sản phẩm, muốn câu trả lời hiện dần từng chữ như các ứng dụng chat phổ biến. Có vài điểm đang phân vân: 1. Dùng Server-Sent Events (SSE) hay WebSocket? Mình chỉ cần đẩy dữ liệu một chiều từ server xuống. 2. Người dùng đóng tab hoặc mất mạng giữa chừng: có nên huỷ luôn request tới LLM để đỡ tốn token không? 3. Người dùng bấm "Dừng": huỷ request thế nào cho gọn, phần đã sinh có lưu lại không? 4. Qua reverse proxy (Nginx) thì bị gom buffer, chữ không hiện dần mà hiện một cục. Cấu hình thế nào? 5. Khi đang stream mà gặp lỗi (quá tải, hết hạn mức) thì báo lỗi cho người dùng thế nào? Backend của mình là Python (FastAPI), frontend Vue.