Phản hồi streaming
Đầu ra streaming của RouteAPI sử dụng Server-Sent Events (SSE). Sau khi đặt stream: true trong yêu cầu, máy chủ sẽ trả dần nội dung tăng dần.
Ví dụ yêu cầu
Phần tiêu đề “Ví dụ yêu cầu”curl https://www.routeapi.ai/v1/chat/completions \ -H "Authorization: Bearer $ROUTEAPI_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-4o", "stream": true, "messages": [ { "role": "user", "content": "Giải thích từng bước đầu ra streaming là gì" } ] }'Ví dụ đoạn SSE
Phần tiêu đề “Ví dụ đoạn SSE”data: {"id":"chatcmpl_xxx","choices":[{"delta":{"content":"RouteAPI"}}]}
data: {"id":"chatcmpl_xxx","choices":[{"delta":{"content":" hỗ trợ"}}]}
data: [DONE]Client nên đọc nội dung data: theo từng dòng và kết thúc phản hồi khi nhận [DONE].
Trả về usage
Phần tiêu đề “Trả về usage”Nếu mô hình hiện tại hỗ trợ, yêu cầu streaming có thể dùng stream_options để yêu cầu trả usage ở cuối:
{ "stream": true, "stream_options": { "include_usage": true }}Việc có hỗ trợ trường này hay không phụ thuộc vào mô hình đã chọn và năng lực dịch vụ.
Lỗi giữa chừng
Phần tiêu đề “Lỗi giữa chừng”Yêu cầu streaming có thể gặp lỗi phía dịch vụ sau khi kết nối đã được thiết lập, ví dụ:
- Dịch vụ mô hình timeout
- Quota tài khoản không đủ
- Gián đoạn mạng
- Client chủ động ngắt kết nối
- Sinh tham số gọi công cụ thất bại
Khuyến nghị client:
- Ghi request id cho mỗi yêu cầu.
- Retry có giới hạn khi gián đoạn mạng.
- Tránh tự động retry các lệnh gọi công cụ đã tạo tác dụng phụ.
- Dùng nhật ký trong console để xử lý lỗi phía dịch vụ.