Gỡ lỗi AI Streaming: Chunks và Timeouts
Tôi đã xây dựng một giao diện chat AI. Tôi muốn phản hồi hiển thị theo từng từ một. Nhưng nó đã thất bại. Các phản hồi bị cắt ngang ngay giữa một từ.
Tôi đã tăng timeout. Không có tác dụng. Tôi đã thử các vòng lặp retry. Việc này gây ra tình trạng lặp từ. Tôi đã thử dùng buffering. Việc này khiến ứng dụng bị chậm.
Nguyên nhân là do lỗi parsing. API gửi các dòng JSON-LD. Code của tôi đã dừng lại trước khi stream kết thúc. Nó đã bỏ qua tín hiệu kết thúc.
Giải pháp:
- Sử dụng bytes thay vì các dòng.
- Quản lý buffer một cách thủ công.
- Tìm kiếm tín hiệu [DONE].
- Giữ kết nối luôn mở.
Sau đó, frontend bị treo. React cập nhật quá nhanh. Tôi đã throttle server để khắc phục điều này.
Lời khuyên cho bạn:
- Đọc kỹ spec của streaming.
- Tìm sự kiện kết thúc (end event) rõ ràng.
- Sử dụng các thư viện SSE.
- Theo dõi dữ liệu của bạn.
Đừng bao giờ tin rằng một stream sẽ kết thúc một cách êm đẹp.
Lỗi streaming kỳ lạ nhất mà bạn từng gặp là gì?
Nguồn: https://dev.to/__c1b9e06dc90a7e0a676b/debugging-ai-streaming-a-tale-of-chunks-and-timeouts-1p6m