Pulih aman dari putusnya stream LLM
Pulih aman dari putusnya stream LLM: panduan production dengan keputusan eksplisit, artefak reusable, uji gagal, sinyal operasi, dan batas berbasis sumber.
Pulih aman dari putusnya stream LLM: panduan production dengan keputusan eksplisit, artefak reusable, uji gagal, sinyal operasi, dan batas berbasis sumber.
Jawaban langsung
Terapkan Pulih aman dari putusnya stream LLM sebagai kontrak kontrol keandalan, bukan konfigurasi sekali pakai. Kunci protokol, owner, bukti, dan rollback sebelum traffic dipindah. Titik kontrol: first_event, partial_output, terminal_event, replay_policy.
Kesimpulan dikunci oleh tabel kontrak dan contoh deterministik. llm-stream-disconnect-recovery tidak boleh rollout bila kontrol wajib tidak memiliki bukti wire, readback persisten, atau owner.
Cakupan dan tanggung jawab
Pisahkan tugas client dari control plane. Client memiliki file atau variabel; gateway memiliki autentikasi, routing, limit, akuntansi, dan attempt; provider memiliki protokol native dan kemampuan yang berubah. Satu respons teks hanya membuktikan satu jalur.
Artikel memiliki keputusan, risiko, dan verifikasi; dokumentasi live memiliki perintah dan langkah UI yang berubah. Ini membentuk pohon kemampuan tanpa menggandakan owner intent pencarian.
Catatan owner halaman ini adalah llm-stream-disconnect-recovery; kontrol tetapnya first_event, partial_output, terminal_event, replay_policy. Setiap nilai ditinjau pada batas wire atau status persisten, bukan disimpulkan dari label pemasaran.
Artefak praktis: Pulih aman dari putusnya stream LLM
Catatan review berikut adalah artefak yang dikirim. Nilai teknis eksplisit memungkinkan perbandingan konfigurasi, bukti wire, dan status persisten tanpa screenshot.
| Kontrol | Keputusan tetap | Bukti |
|---|---|---|
stream_identity |
one_attempt_id_per_connection |
logical_request_id + attempt_id + provider_request_id |
first_effective_event |
record_exact_transition |
event_type + timestamp + bytes_received |
partial_output |
incomplete_not_success |
last_event_type + buffered_item_ids + incomplete_marker |
tool_arguments |
decode_only_after_terminal_boundary |
call_id + fragment_sequence + completion_event |
replay |
policy_depends_on_side_effect_risk |
replay_decision + new_attempt_id + prior_attempt_link |
billing |
retain_each_attempt_and_final_settlement |
attempt_usage + terminal_state + charge_record |
Contoh deterministik
Contoh hanya memakai placeholder dan input deterministik. Ganti dengan identifier yang ditinjau, bukan secret atau konten pelanggan, dan simpan snapshot tepat.
CONNECTING -> STREAMING -> TERMINAL_SUCCESS
| | \
| | -> DISCONNECTED_AFTER_PARTIAL -> INCOMPLETE
| -> CLIENT_CANCELLED -> CANCELLED
-> DISCONNECTED_BEFORE_FIRST_EVENT -> RETRY_ELIGIBLE?
Never concatenate output from two attempt IDs.
Never execute partial tool arguments.
Tahap verifikasi
Jalankan tahap secara berurutan. Keberhasilan tahap akhir tidak mengganti batas yang hilang; setiap attempt harus terhubung ke satu permintaan logis.
- Bekukan client, kebijakan gateway, alias model, route, dan baseline observasi. Bukti untuk
stream_identity: terapkanone_attempt_id_per_connectiondan simpanlogical_request_id + attempt_id + provider_request_id. - Jalankan probe positif deterministik dan simpan respons, request ID, route, status akhir, dan usage. Bukti untuk
first_effective_event: terapkanrecord_exact_transitiondan simpanevent_type + timestamp + bytes_received. - Jalankan kasus negatif, limit, atau disconnect pasangannya dan periksa lapisan gagal. Bukti untuk
partial_output: terapkanincomplete_not_successdan simpanlast_event_type + buffered_item_ids + incomplete_marker. - Ulangi lewat protokol nyata; jangan simpulkan dukungan native dari endpoint lain. Bukti untuk
tool_arguments: terapkandecode_only_after_terminal_boundarydan simpancall_id + fragment_sequence + completion_event. - Rollout ke cohort terbatas dengan owner, kedaluwarsa, ambang berhenti, dan rollback. Bukti untuk
replay: terapkanpolicy_depends_on_side_effect_riskdan simpanreplay_decision + new_attempt_id + prior_attempt_link. - Baca ulang konfigurasi dan akuntansi persisten; hapus akses dan data sementara. Bukti untuk
billing: terapkanretain_each_attempt_and_final_settlementdan simpanattempt_usage + terminal_state + charge_record.
Kegagalan yang harus dicegah
Setiap poin berikut memblokir publikasi. HTTP 200, dashboard, atau satu demo tidak menggantikan kontrol ini.
blind_reconnect— Jikablind_reconnectterjadi, hentikan rollout dan gunakan owner, bukti, serta rollback yang ditetapkan; probe sukses tidak membatalkannya.partial_success— Jikapartial_successterjadi, hentikan rollout dan gunakan owner, bukti, serta rollback yang ditetapkan; probe sukses tidak membatalkannya.cross_attempt_splice— Jikacross_attempt_spliceterjadi, hentikan rollout dan gunakan owner, bukti, serta rollback yang ditetapkan; probe sukses tidak membatalkannya.partial_tool_execution— Jikapartial_tool_executionterjadi, hentikan rollout dan gunakan owner, bukti, serta rollback yang ditetapkan; probe sukses tidak membatalkannya.
Sinyal dan kondisi berhenti
Amati sukses dan dampak buruk bersama. Ambang adalah kebijakan workload; tetapkan SLO dan denominator sebelum jendela.
| Sinyal | Ambang | Tindakan |
|---|---|---|
disconnect_before_first_event_rate |
workload_SLO_threshold |
inspect_connect_and_header_phases |
disconnect_after_partial_rate |
workload_SLO_threshold |
mark_incomplete_and_stop_auto_retry |
stream_without_terminal_event |
0_success_classifications |
reclassify_and_investigate |
cross_attempt_fragment_count |
0 |
disable_recovery_path |
Batas Modelflare
Modelflare memusatkan routing kompatibel dan native, key terbatas, grup, usage, dan kegagalan. Channel terkonfigurasi tidak membuktikan semua field, alias, janji retensi, region, atau fallback. Verifikasi secara native dan gunakan settlement persisten sebagai kebenaran biaya.
Ini metode implementasi, bukan sertifikasi, kesimpulan hukum, riwayat uptime, atau benchmark universal. Periksa kontrak, model, harga, retensi, dan region pada T-1; pindahkan tanggal bila fakta inti berubah.
Lanjutkan cluster topik
Artikel induk membahas keputusan luas, artikel saudara langkah berikutnya, dan dokumentasi konfigurasi saat ini. Link isi diperlukan karena managed CMS belum memiliki related-slug.
Pertanyaan umum
Pulih aman dari putusnya stream LLM: Apakah satu permintaan sukses cukup?
Tidak. Kasus negatif, rollout terbatas, readback persisten, dan kondisi berhenti adalah gate terpisah.
Pulih aman dari putusnya stream LLM: Apakah model dan harga dikunci berbulan-bulan?
Tidak. Gunakan placeholder atau snapshot dan validasi ulang pada T-1.
Pulih aman dari putusnya stream LLM: Bukti apa yang disimpan?
ID tanpa data sensitif, versi, waktu, status, usage, biaya final, dan keputusan review.
Sumber dan tanggal verifikasi
Sumber diperiksa pada 2026-08-07. Sumber menetapkan kontrak dan prinsip, bukan route yang belum diuji atau keadaan masa depan.