Streaming respons obrolan
Baca server-sent events chat-completions ShareAI, tambahkan delta konten sekali dan tangani penyelesaian, kesalahan, serta aliran yang terputus.
Di halaman ini
Atur stream: true untuk menerima respons secara bertahap. Biarkan koneksi HTTP tetap terbuka, parsing event SSE lengkap, dan tambahkan setiap delta konten sekali.
https://api.shareai.now/api/v1/chat/completionsKembalikan aliran event yang dikirim server.
- URL Dasar
https://api.shareai.now- Otentikasi
- Kunci API Bearer atau token akses OAuth yang disetujui
cURL
curl --no-buffer --fail-with-body https://api.shareai.now/api/v1/chat/completions \
-H "Authorization: Bearer $SHAREAI_API_KEY" \
-H "Content-Type: application/json" \
--data '{"model":"MODEL_IDENTIFIER","messages":[{"role":"user","content":"Explain server-sent events briefly."}],"stream":true}'
Baca batasan event#
SSE memisahkan event dengan baris kosong. Potongan jaringan dapat membagi nilai JSON atau berisi beberapa event, jadi jangan parsing setiap pembacaan jaringan sebagai respons JSON lengkap. Decode UTF-8 secara bertahap dan simpan data yang tidak lengkap hingga event selesai.
Plain text
data: {"object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"Hello"},"finish_reason":null}]}
data: {"object":"chat.completion.chunk","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
data: [DONE]
Render konten sekali#
Tambahkan choices[0].delta.content jika ada. Pertahankan spasi kosong dan kata yang diulang. Potongan hanya berisi peran atau potongan akhir mungkin tidak memiliki konten. Perlakukan [DONE] sebagai penanda akhir aliran.
Tangani kesalahan aliran#
Periksa status HTTP sebelum memasuki parser SSE. Setelah streaming dimulai, tangani sebuah event: error event dan pemutusan yang tidak terduga. Tandai jawaban yang terputus sebagai tidak lengkap dan biarkan pengguna mencoba ulang secara eksplisit. Jangan tambahkan jawaban kedua yang dihasilkan secara independen ke output parsial.
Batalkan dari aplikasi Anda#
Gunakan mekanisme pembatalan klien HTTP Anda saat pengguna menghentikan proses generasi. Pisahkan pembatalan, kegagalan jaringan, dan jawaban yang telah selesai sebagai status UI yang berbeda. Jangan menjanjikan bahwa menutup koneksi klien akan membatalkan penggunaan yang sudah diproses.
Terakhir diperbarui 15 September 2026