# 1. AI SDK(ai/@ai-sdk/openai/Vercel AI SDK) A ai 包是厂商绑定的,只能用于 OpenAI B Vercel AI SDK 只能用于 Next.js C 核心包 ai 提供统一抽象,@ai-sdk/openai 等 provider 包负责厂商适配 ✓ 正确答案 D streamText 只能一次性返回完整文本,不支持流式
# 2. OpenAI/Anthropic/Google 流式响应(text/event-stream + fetch) A 三家厂商使用完全相同的流式数据格式 B fetch 无法读取流式响应体 C SSE 只能用于 GET 请求,LLM 流式必须用 WebSocket D OpenAI、Anthropic、Google 均基于 SSE 流式返回,但增量数据结构各有差异,需按厂商适配 ✓ 正确答案
# 3. Assistant UI 协议、Streamdown、Marquee 渲染节流 A Assistant UI 协议规定 AI 消息必须是纯文本 B Assistant UI 协议只适用于 Anthropic 模型 C 渲染节流会丢失流式 token 数据 D Streamdown 让渲染层只重绘 Markdown 的新增增量块,配合渲染节流提升流式体验 ✓ 正确答案
# 4. Vercel AI SDK 的 useChat/useCompletion/useObject 流式 hooks A 三个 hooks 的功能完全相同,可以互换 B useObject 只能用于非流式响应 C useChat 维护多轮消息数组,useCompletion 面向单次补全,useObject 按 schema 解析结构化输出 ✓ 正确答案 D 三个 hooks 都必须搭配 Next.js App Router 才能使用
# 5. SSE、WebSocket、fetch 流的增量解析与渲染 A EventSource 支持 POST 请求与自定义请求头 B SSE 断开后无法自动重连 C fetch 流无法配合 AbortController 取消请求 D WebSocket 提供双向全双工通信,适合需要客户端与服务端频繁交互的 AI 会话 ✓ 正确答案
# 6. Markdown 未闭合状态处理、代码块语法高亮、复制按钮 A 未闭合的代码块应直接丢弃不渲染 B navigator.clipboard 在 HTTP 环境也可以无条件使用 C 复制按钮应在代码块还未闭合时就显示 D 对进行中的代码块暂不高亮、完成后异步高亮,可兼顾流畅与效果 ✓ 正确答案
# 7. text/event-stream 与 text/plain 在流式响应的工程取舍 A text/event-stream 无法携带自定义事件类型 B text/plain 支持 Last-Event-ID 断点续传 C text/event-stream 与 text/plain 在流式解析上完全相同 D text/plain 输出简单兼容性好,但缺乏结构化事件与断点续传能力 ✓ 正确答案
# 8. Server-Sent Events(SSE)在 LLM 流输出的工程价值与现代浏览器支持 A EventSource 支持 POST 请求与自定义 header B HTTP/1.1 下 SSE 连接数没有限制 C SSE 是全双工协议,服务端与客户端可互相推送 D SSE 内置自动重连与 Last-Event-ID 断点续传,且所有现代浏览器均支持 EventSource ✓ 正确答案
# 9. 打字机效果的渲染节流(批量更新/requestAnimationFrame)如何兼顾流畅与滚动性能? A 逐 token 同步渲染可以最大化性能 B 渲染节流会丢失用户输入 C 自动滚动应无条件跟随最新内容 D 用 rAF 合并一帧内增量并配合"接近底部才自动滚动"策略,可兼顾流畅与滚动性能 ✓ 正确答案
# 10. ReadableStream API 在 AI 流式输出的工程实现与边界 A 可以直接把 Uint8Array 块 toString 得到完整文本 B ReadableStream 不支持取消 C reader.read() 永远同步返回数据 D 需用带 stream: true 的 TextDecoder 处理跨块 UTF-8 字符,并用 reader.cancel()/AbortController 释放连接 ✓ 正确答案
# 11. Vercel AI SDK 在 React 流式 UI(Chat、Completion) A useChat 只能渲染纯文本,不能渲染 Markdown B useChat 维护 messages 数组并自动把流式增量追加到最后一条 assistant 消息 ✓ 正确答案 C useCompletion 也维护多轮消息数组 D 使用 useChat 时必须自己手动解析 SSE 增量
# 12. AI 流式响应中的 Markdown 渲染(react-markdown) A react-markdown 将 Markdown 解析为 AST 后渲染为 React 元素,默认不注入原始 HTML,安全性更好 ✓ 正确答案 B react-markdown 依赖 dangerouslySetInnerHTML 渲染 HTML C react-markdown 无法自定义代码块渲染 D 流式场景下每次增量都不需要重新解析
# 13. AI 流式响应中的 Token 计数与成本预估的工程实践 A 所有模型的 token 编码方式完全相同 B token 计数必须由服务端完成,客户端无法参与 C 客户端可用 tiktoken 等 tokenizer 按模型编码器估算 token 数,并结合单价表预估成本 ✓ 正确答案 D 流式输出时只能在流结束后一次性统计
# 14. AI 流式响应中的 XSS 风险(HTML、URL)与安全防御 A 模型输出来自大模型,可以信任并直接注入 HTML B javascript: 协议链接在 Markdown 中会被浏览器自动拦截,无需处理 C 只要用 react-markdown 就绝对安全,无需其他防护 D 应把模型输出视为不可信数据,渲染层转义并用 DOMPurify 白名单清洗、校验链接协议 ✓ 正确答案
# 15. AI 流式响应中的增量解析(JSON Streaming、NDJSON) A NDJSON 要求服务端每行一个完整 JSON 对象,按行解析实现简单 ✓ 正确答案 B NDJSON 可以跨行解析任意 JSON C JSON Streaming 解析器比 NDJSON 更简单 D 流式解析失败时不需要任何降级处理
# 16. AI 流式响应中的乐观 UI(Optimistic UI)与回滚的工程价值 A 乐观 UI 先立即展示占位并填充流式增量,失败时回滚或标记错误态并支持重试 ✓ 正确答案 B 乐观 UI 是指等待服务端确认后再展示用户消息 C 乐观 UI 与流式响应无法共存 D 失败回滚不需要考虑幂等
# 17. AI 流式响应中的多模态(图片、音频、视频)的工程应用 A 多模态输出只能以纯文本表示 B 上传多模态输入不需要任何校验 C 图片输出无需占位与懒加载 D 多模态消息按独立内容块组织渲染,输入侧需在调用前检查模态能力、MIME 类型与大小配额 ✓ 正确答案
# 18. AI 流式响应中的 SSE 长连接在 nginx 反向代理的工程配置 A nginx 默认缓冲对 SSE 没有影响 B 应关闭 proxy_buffering 并通过 X-Accel-Buffering: no 跳过缓冲,同时调大读超时并配合心跳防断连 ✓ 正确答案 C SSE 不需要考虑超时,连接会一直保持 D gzip 压缩流式响应永远不会引入延迟
# 19. AI 流式响应中的错误恢复(断网、超时)的现代实践 A 断网后必须让用户手动重新发送整条消息 B 重试不需要考虑幂等 C 超时不需要处理,等待即可 D 应结合在线状态感知、指数退避幂等重试与本地缓存已收增量,实现断点续传式恢复 ✓ 正确答案
# 20. AI 流式响应中的响应式布局(流式内容不抖动)的工程应用 A 流式内容高度变化是不可避免的,无法缓解 B 关闭所有动画即可彻底解决布局抖动 C 通过占位符/固定宽高比稳定容器尺寸,配合 overflow-anchor 与条件自动滚动减少跳动 ✓ 正确答案 D 滚动锚定会导致内容丢失
# 21. AI 流式响应中的字体切换(等宽到比例字体的工程价值) A 等宽字体阅读体验一定优于比例字体 B 比例字体在流式阶段也能保证布局稳定 C 字体切换不会引起任何布局变化 D 等宽字体字符宽度固定,适合流式打字阶段保持布局稳定 ✓ 正确答案
# 22. AI 流式响应中的语言切换(中文、英文)与本地化的现代实践 A 中文与英文使用同一字体即可,无需考虑 fallback B 中文换行不需要任何处理 C 流式内容必须实时翻译成用户语言 D 应配置多语言字体栈与 lang 属性,应用文案用 i18n 管理、数字日期用 Intl 格式化 ✓ 正确答案
# 23. AI 流式响应中的 Tool Calls(Function Calling) A 模型输出工具名后应立即执行工具 B 工具参数流式到达,需等参数完整并通过校验后再执行,结果回传后模型可继续多轮调用 ✓ 正确答案 C 工具调用结果不需要展示给用户 D 工具参数无需校验,可以直接执行
# 24. AI 流式响应中的 Context Window 限制与上下文压缩的工程应用 A 应通过客户端 token 计数预检,并对旧消息做摘要压缩、保留最近原始消息,本地仍保留全文供回溯 ✓ 正确答案 B 上下文超限时模型会自动扩展窗口 C 上下文压缩会永久删除用户消息 D 上下文窗口超限不会有任何错误
# 25. AI 流式响应中的 SSE Polyfill(EventSource polyfill) A 原生 EventSource 支持 POST 请求与自定义 header B polyfill 无法处理自动重连 C polyfill 与原生 EventSource 在所有浏览器行为上完全相同 D polyfill 常用 fetch + ReadableStream 按 SSE 规范解析,以支持 POST、自定义 header 与取消 ✓ 正确答案
# 26. Prompt API 接受图片或音频等多模态输入时,前端应如何在调用前检查模态能力、MIME 类型、尺寸与配额,并处理 EXIF、解码内存、流式输入及不支持模态的降级 A 应在调用前完成模态能力探测、MIME/尺寸/配额校验与 EXIF 处理,不支持时降级提示 ✓ 正确答案 B 只要文件扩展名正确就可以直接发送 C 图片解码内存无需关注 D 音频输入不需要校验时长与格式
# 27. 同一端侧 LLM 分别用 WebNN MLGraphBuilder 和 WebGPU Compute Shader 实现时,算子融合、图编译、显存管理、KV Cache 与浏览器驱动差异会如何影响首 Token 延迟和 tokens/s A WebNN 在所有浏览器上性能完全一致 B WebGPU 无需关心显存与 KV Cache C WebNN 自动做图编译与算子融合,WebGPU 需手工实现优化,两者都受浏览器/驱动后端差异影响 ✓ 正确答案 D 算子融合只影响 tokens/s,不影响首 Token 延迟
# 28. WebLLM 与 Gemini Nano 的生产选型矩阵应包含哪些维度 A Gemini Nano 所有浏览器都内置可用 B WebLLM 不需要用户下载模型 C 选型矩阵应综合可用性、性能、下载更新、成本隐私与生态锁定等维度,并保留云端回退 ✓ 正确答案 D 端侧推理没有任何成本与维护负担
# 29. 如何为端侧生成建立覆盖高低端设备的性能基线,同时测量模型冷启动、预热后 TTFT、tokens/s、峰值内存、耗电与页面 FPS,并据此决定禁用或降级阈值 A 用最高端设备测一次即可代表所有用户 B 阈值一经设定就不需要调整 C 应按设备分层测量冷启动、TTFT、tokens/s、内存、耗电与 FPS,用 P50/P95 统计并据此制定禁用/降级阈值 ✓ 正确答案 D 页面 FPS 与端侧推理无关