1import{j as e}from"./index-Be_2bHJP.js";const t="/assets/streaming-status-post-B9aOeCMG.webp",s=`We made our AI assistant feel twice as fast â without changing a single model. 2 3When a website visitor asks Nova Web a question, quite a lot happens behind the scenes. The AI classifies the intent, calls external tools to retrieve data, and then generates a response. Previously, all the visitor saw during this process was a loading indicator. That wait â even if only a few seconds â can feel like an eternity. 4 5So we built streaming status updates. As the AI works through each phase, the visitor now sees exactly what's happening: "Checking available appointment dates...", "Searching for cars that match your request...", "Preparing your response..." â followed by the answer being streamed word by word. 6 7The interesting part was getting the messaging right. Our first version had 10 creative variations per phase. Things like "Reading between the lines..." or "Getting the gist of it..." when classifying a message. Sounded clever in isolation â but imagine typing in your number plate for a workshop appointment and seeing "Decoding your question..." That creates the opposite of trust. 8 9We stripped it back. The classifying phase now simply says "Thinking..." â one word, always appropriate. The extracting phase uses three neutral variants like "One moment..." For tool-specific actions, we kept precise, descriptive messages: "Setting up your workshop appointment...", "Checking the entered mileage..." 10 11The result: visitors feel informed rather than waiting, the assistant feels competent rather than theatrical, and the perceived speed of the entire experience improved dramatically. 12 13Sometimes the best UX improvement isn't adding features â it's removing friction. 14 15#AI #UX #ConversationalAI #Automotive #CustomerExperience #NovaWeb`,o=()=>{const a=()=>navigator.clipboard.writeText(s);return e.jsx("div",{className:"min-h-screen bg-background py-12 px-6",children:e.jsxs("div",{className:"max-w-3xl mx-auto space-y-8",children:[e.jsxs("header",{className:"space-y-2",children:[e.jsx("p",{className:"text-sm uppercase tracking-wider text-muted-foreground",children:"LinkedIn Post"}),e.jsx("h1",{className:"text-3xl md:text-4xl font-bold text-foreground",children:"Streaming status updates in Nova Web"})]}),e.jsx("figure",{className:"rounded-xl overflow-hidden border border-border shadow-sm bg-card",children:e.jsx("img",{src:t,alt:"Visualisation of Nova Web streaming status updates: Thinking, Checking available appointment dates, and a streamed response.",width:850,height:600,className:"w-full h-auto block"})}),e.jsx("article",{className:"prose prose-neutral max-w-none",children:s.split(` 16 17`).map((i,n)=>e.jsx("p",{className:"text-foreground/90 leading-relaxed whitespace-pre-wrap",children:i},n))}),e.jsxs("div",{className:"flex gap-3",children:[e.jsx("button",{onClick:a,className:"inline-flex items-center px-5 py-2.5 rounded-lg bg-primary text-primary-foreground font-medium hover:opacity-90 transition",children:"Copy post text"}),e.jsx("a",{href:t,download:"nova-web-streaming-status.png",className:"inline-flex items-center px-5 py-2.5 rounded-lg border border-border text-foreground font-medium hover:bg-muted transition",children:"Download image"})]})]})})};export{o as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.