ai
Technical notes on web development, DevOps, and AI integration.
67 articles
- 00:33ai
Prompt labels leaked into my AI chat: sanitize both ends
A RINGKAS label leaked into the chat bubble. The fix was not a stricter prompt but sanitizing input and output at both ends of the pipeline.
TL;DR: The author's chatbot kept leaking prompt labels like RINGKAS into answers, and adding prompt prohibitions never fixed it. They moved control to code: sanitizing knowledge-base text before injection and rendering output through react-markdown with rehype-sanitize allowlists. Lesson: prompts give rough direction only; reliable formatting enforcement belongs at input and output boundaries.
#llm-security#react#prompt - 21:51ai
What a Security Audit Found in My Chat AI
A security audit uncovered 11 findings in the chat AI pipeline, from cache keys to prompt injection.
#prompt-injection#redis#fastapi - 20:07ai
The follow-up question my AI chat couldn't answer
Chat follow-up questions without server sessions: history lives in localStorage, gets resent per ask, and the backend rebuilds the prompt under a char budget.
#fastapi#llm#stateless - 19:34ai
The AI chat now knows what I am working on
The blog's AI chat now answers 'what are you working on' from local commit history: a narrow port, a version namespace bump, and term mining.
#fastapi#redis#cache-invalidation - 16:38ai
One SSE Stream, Two AI Answers
A chatbot needs both a quick summary and a full explanation from one LLM generation. The answer: marker-based splitting in the SSE stream, with separate cache storage and mid-stream parsing.
#sse#ai#streaming - 14:57backend
Answers That Survive an LLM Outage
When the LLM router died, a meta fallback event arrived and the visitor still got an answer. Here's the three-part chain behind it.
#fastapi#redis#llm - 14:34backend
The AI Search Had to Learn Its Own Site
Typing hai used to kill the AI search with no_results. The culprit was MariaDB's fulltext word-length floor, not a broken prompt.
#fastapi#mariadb#llm - 13:16frontend
Chat Left, Results Right: Splitting One Overlay Into Two
The source list and the chat fought over one overlay. Two panels with different z-index plus render-time visibility ended the fight.
#react#css#tailwind - 12:55frontend
Search Dialog to AI Thread: One Array, Seven useState Gone
Follow-up questions wiped the previous answer. One ThreadEntry array with functional updates turned the single-slot dialog into a real thread.
#react#nextjs#sse