sse
Catatan teknis seputar web development, DevOps, dan integrasi AI.
8 artikel
- 04.36tooling
OCR Tesseract di pipeline: urutan, karantina, output kosong
Nambahin tesseract ke pipeline ingest ternyata bukan soal CLI-nya. Urutan OCR, caption img, karantina meta korup, dan output kosong yang lebih menentukan.
TL;DR: Ceritanya job ingest gambar gue kena media-blocked gara-gara tesseract nggak terdaftar di config, padahal cek preflight-nya kebablasan sampai blokir semua job. Jadi gue persempit: tesseract cuma wajib buat job image-only, sisanya tetap boleh jalan. Pelajarannya, kontrak kegagalan itu penting—infrastruktur diblok cepat, konten korup dikarantina terus diheal, dan OCR kosong tetap sukses.
#tesseract#ocr#python - 16.42backend
CTA_FLAG Terbelah di Tengah Stream SSE
Regex strip per delta nggak bisa melihat marker yang terbelah dua potongan. Pelajaran boundary matching di streaming SSE.
TL;DR: Bug ini terjadi karena regex pembersih CTA_FLAG: YES dijalankan per delta, sementara marker sering terbelah di dua potongan stream sehingga lolos tersimpan ke cache Redis. Perbaikannya strip ulang di string gabungan setelah stream selesai. Pelajarannya: cek invariant di output akhir, dan gunakan structured output JSON untuk solusi kanonis.
#sse#streaming#regex - 15.29ai
Marker CTA_FLAG: YES yang Bocor ke Chat
Regex strip di akhir string nggak cukup: marker CTA dari LLM bisa lolos lewat tengah teks dan jalur streaming SSE sebelum post-processing jalan.
TL;DR: Marker CTA_FLAG: YES bocor ke user lewat dua jalur: LLM naruh marker di posisi acak yang luput dari regex ber-anchor $, dan jalur streaming SSE melewati post-processing. Patch-nya buang anchor dan strip marker di stream juga. Fix fundamentalnya: tombol CTA dirender dari field terstruktur, bukan ditumpang ke teks LLM lalu di-parse regex.
#llm#streaming#sse - 00.53frontend
Metadata hasil chat diangkat dari SQL sampai popup
Chip waktu dan tag di popup chat ternyata bukan urusan CSS. Metadata harus naik dulu dari SQL sampai DTO sebelum UI bisa bergaya.
TL;DR: Popup search kelihatan datar bukan karena CSS, tapi karena API nggak mengirim tags, categories, dan published_at dari database. Solusinya: naikkan metadata itu lewat SQL, domain, sampai DTO, baru frontend merender. Setelah pipeline utuh, TimelineRow dipakai ulang di tiga konteks popup dengan chip waktu, ikon teknologi, dan badge sitasi.
#react#pydantic#sqlmodel - 16.30ai
Satu Stream SSE, Dua Versi Jawaban
Jawaban AI di search dialog butuh dua versi: ringkasan cepat dan penjelasan lengkap. Satu SSE stream dari LLM, tapi UI perlu split — caranya pakai marker-based parsing.
#sse#ai#streaming - 14.56backend
Jawaban Tetap Hidup Saat LLM Mati
LLM router mati saat streaming jawaban. Yang muncul: event meta fallback lalu pengunjung tetap dapat jawaban dari cache atau knowledge.
#fastapi#redis#llm - 12.48frontend
Dialog Cari Jadi Thread: Satu Array Ganti Tujuh useState
Jawaban AI pertama lenyap tiap nanya lagi. Perbaikannya cuma satu array ThreadEntry plus functional update, bukan library state management.
#react#nextjs#sse - 12.22ai
Jawaban AI Streaming di Blog Lewat fetch Biasa
EventSource nggak bisa POST. Jawaban AI di search dialog akhirnya jalan pakai fetch biasa, parser SSE manual, dan satu jebakan CRLF.
#sse#fastapi#nextjs