Bỏ qua để đến nội dung

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.

Terminal window
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ì" }
]
}'
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].

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ụ.

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:

  1. Ghi request id cho mỗi yêu cầu.
  2. Retry có giới hạn khi gián đoạn mạng.
  3. Tránh tự động retry các lệnh gọi công cụ đã tạo tác dụng phụ.
  4. Dùng nhật ký trong console để xử lý lỗi phía dịch vụ.