llm
Catatan teknis seputar web development, DevOps, dan integrasi AI.
24 artikel
- 12.24backend
Invalidasi Cache Redis: Naikkan Versi, Jangan Hapus Key
Ganti cara invalidasi cache jawaban chat AI: bump versi namespace dengan INCR supaya key lama unreachable, bukan dihapus satu-satu.
TL;DR: Jawaban chat AI yang di-cache di Redis jadi basi tiap artikel berubah, dan masalah utamanya bukan SCAN yang blocking melainkan fan-out invalidasi yang rumit. Solusinya versioned key: tiap mutasi nge-bump counter versi via INCR, key lama jadi unreachable dan mati sendiri lewat TTL 24 jam. Bonusnya ada lookup mundur ke versi sebelumnya dan fallback persona saat LLM down.
#redis#caching#cache-invalidation - 19.16ai
Chat AI Buat Nyari Sudut, Halaman Primer Buat Nyetujui
Lane C di cron saya: sintesis chat AI buat nyari sudut yang kelewat, verifikasi tetap ke halaman primer yang dibuka sendiri.
TL;DR: Chat AI kepakai sebagai detektor sudut riset, bukan penentu kebenaran; satu sudut baru lolos cek manual, satu klaim Stanford HAI dibuang karena halaman primernya nggak bisa dibuka. Lane C cuma nambah sintesis tanpa menggantikan Lane A, yang tetap jadi ground truth lewat sumber primer dan sitasi terverifikasi. Sitasi itu jejak buat diverifikasi manusia, bukan stempel kebenaran.
#ai-agents#llm#automation - 00.39ai
Skill, Memory, Pipeline: Kamus Istilah AI Agent yang Nggak Basi
Bedah istilah AI agent dari sumber primernya: workflow vs agent, skills dan progressive disclosure, tiga jenis memory, RAG, sampai pipeline dan guardrail.
TL;DR: Agent, workflow, skill, dan memory itu beda: workflow pegang kendali lewat kode, agent memutuskan sendiri langkahnya. Skill itu SOP yang dimuat saat perlu, memory menyimpan interaksi lama, dan semuanya berebut context window terbatas. Pipeline plus gate, watchdog, dan observability bikin otomasi bisa dipercaya, karena rem lebih penting dari gas.
#ai-agents#llm#automation - 21.06ai
Model Terbanyak Dipakai Bukan yang Terpintar di Benchmark
Leaderboard pemakaian OpenCode dipimpin model murah terbuka, bukan raja benchmark. Cara baca usage, retention, dan harga sebelum ganti model.
TL;DR: Peringkat satu pemakaian di OpenCode ditempati deepseek-v4-flash, bukan model benchmark terbaik seperti GPT-5.6, karena pemakaian agregat mencerminkan voting dompet: harga, kecepatan, dan retensi pengguna. Sebelum pindah model, cek tiga sinyal: volume plus momentum, retensi mingguan, dan benchmark sebagai filter kualitas minimal. Daftar rekomendasi resmi hanya titik mulai; validasi dengan data pemakaian dan uji kecil di repo sendiri.
#llm#benchmark#deepseek - 02.40frontend
DOM Chat AI Cuma Nyimpen Setengah Jawaban
Scraping jawaban chat AI dari DOM cuma dapat setengah karena virtualisasi. Jalur utuhnya: klik Copy, baca clipboard, plus kontrak output ke model.
TL;DR: Chat modern pakai virtualisasi, jadi DOM cuma snapshot yang terus berubah dan scraping innerText selalu kepotong. Solusinya klik tombol Copy lalu baca clipboard, dilapis accessibility tree dan innerText, dengan polling di tab baru biar stabil. Paling murah, kasih kontrak ke model: bungkus jawaban dalam blok kode ditutup sentinel ===SELESAI===.
#automation#playwright#llm - 02.19ai
Cron Artikel Ganti Mesin: Chat Gratis Utama, LLM Lokal Cadangan
Cron artikel adityo.web.id kini generate draft lewat chat AI gratis via browser automation, dengan LLM lokal router9 sebagai fallback circuit breaker.
TL;DR: Penulis pakai chat.qwen.ai gratis via Playwright untuk draft artikel, tapi jalur ini rapuh dan free tier-nya bisa dicabut kapan saja. Karena itu Qwen cuma jadi jalur utama dengan fallback kaku ke router9: satu retry, dua kegagalan beruntun, langsung pindah jalur, circuit breaker sederhana. Failure domain keduanya beda, jadi pipeline tetap jalan walau satu mati.
#automation#llm#playwright - 18.33ai
Jawaban AI Terpotong, Ternyata Cuma Soal Budget Token
Jawaban about-mode terpotong di tengah kalimat. Ternyata bukan model yang error, tapi konstanta batas token output 512 yang saya salin dari template lama.
TL;DR: Jawaban about-mode terpotong di tengah kalimat karena konstanta _ASK_MAX_ANSWER_TOKENS = 512 disalin dari template lama tanpa pernah diukur. Budget itu mepet untuk format multi-bagian yang menggabungkan ringkasan, section PENJELASAN, dan CTA dalam satu generasi. Perbaikannya satu baris, naikkan jadi 900, plus pelajaran: ukur bentuk jawaban target dulu sebelum menetapkan batas token.
#llm#python#fastapi - 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