正在打开每日关注
正在打开每日关注
shadcn 更新 chatbot-template,基于 Next.js、AI SDK 与 shadcn 组件构建流式聊天、工具调用与人在回路问答。
Updated the chatbot-template to latest next, ai-sdk, shadcn/react, cn and some bug fixes. More soon. https://t.co/qwXoDtgBWi
是什么 shadcn 官方维护的 chatbot-template:一个运行在 Vercel AI Gateway 上的最小化聊天机器人模板,技术栈为 Next.js + AI SDK + shadcn/ui + shadcn/react + shadcn/typeset,TypeScript 编写,1008 stars,MIT 许可。本次更新升级至最新 Next、AI SDK、shadcn/react 并修复若干 bug。
架构与核心设计
app/api/chat/route.ts 用 streamText 做流式响应,components/chat.tsx 用 useChat 渲染会话。part.type 分发到 components/parts/ 各组件,再按 part.state(input-streaming → input-available → output-available/output-error)驱动进度、结果与失败的展示。tools/ 一文件一工具,文件名即模型侧工具名,含服务端执行的 GitHub 仓库查询、用户在 UI 作答的 ask_user 问卷、厂商原生 web search。InferUITools 推导,工具字段改名即编译错误而非静默 undefined。值得借鉴的亮点
execute 的 tool() 即代表人在回路,由用户在界面作答;3) 请求边界清晰:校验请求体、模型白名单、输出 token 与步数上限、断连即中止。坑与边界
/api/chat 公开且无鉴权,每个请求都消耗 AI Gateway 信用。README 明确提醒上线前需加限流(WAF 或 @upstash/ratelimit)、设消费上限、必要时加鉴权,以防 denial-of-wallet。该模板定位是演示与起步脚手架,并非生产就绪方案。