AI Chatbot Template 是一个高度可定制的AI聊天机器人,通过Next.js、Vercel AI SDK和Google Gemini提供实时流式AI响应,利用Arcjet实现强大的速率限制和机器人防护,支持灵活配置聊天机器人基本信息、AI模型与系统提示词(支持交互式选择和链接按钮语法)、UI样式,提供移动响应式设计、TypeScript支持、错误处理能力,为大家提供一个安全和易于部署的AI聊天机器人解决方案。
打开终端,执行以下命令:
# 克隆仓库到本地
git clone https://github.com/rryyqn/ai-chatbot.git
# 进入项目文件夹(注意:原文档中文件夹名为ai-chatbot-template,需与克隆命令对应)
cd ai-chatbot
# 用pnpm安装依赖(确保已安装pnpm,若未安装可先执行npm install -g pnpm)
pnpm install
在项目根目录创建.env.local文件,填入以下3个关键变量:
# 从Arcjet控制台获取(用于限流和反机器人)
ARCJET_KEY=
# 从Google AI Studio获取(用于调用Google Gemini模型)
GOOGLE_GENERATIVE_AI_API_KEY=
# 本地开发用localhost,线上部署时填实际域名(如https://ai-chatbot.vercel.app)
NEXT_PUBLIC_APP_URL=localhost
执行命令启动本地服务:
pnpm dev
服务启动后,打开浏览器访问http://localhost:3000,就能看到聊天机器人界面了。
模板支持灵活调整,核心配置在lib/config.ts文件中,主要分为4类可修改项:
• name:聊天机器人名称(如示例中的“Gizmo AI Assistant”)
• welcomeMessage:初始欢迎语(支持“选择按钮”和“链接按钮”语法,可引导用户交互)
• ui.windowTitle:聊天窗口标题文字
• ui.inputPlaceholder:消息输入框的提示文字(如“Message Gizmo AI Assistant..”)
• ui.avatarImage:AI的头像图片(需放在public文件夹中)
• ui.avatarFallback:头像加载失败时的备用占位符
控制用户请求频率,避免接口被过度调用:
• rateLimit.capacity:单次突发请求的最大允许次数
• rateLimit.refillRate:每个时间间隔内恢复的请求次数(“令牌”数量)
• rateLimit.interval:请求次数恢复的时间间隔(单位:秒)
• api.model:指定使用的Google Gemini模型(可根据需求切换不同版本)
• api.systemPrompt:AI的系统提示词(定义AI的角色和回复规则,同样支持“选择/链接”语法)
• enableBotDetection:是否开启反机器人检测(阻挡自动化工具调用)
• enableShield:是否开启安全防护(抵御常见网络攻击)
• allowedBots:指定允许的机器人类别(如搜索引擎爬虫)
模板支持一种特殊语法,能在AI回复底部生成交互式按钮,提升用户体验。只需在welcomeMessage或systemPrompt中加入以下格式:
• 选择按钮:{{choice:按钮名称}}(如{{choice:查看派对预订}},用户点击后会将“查看派对预订”作为消息发送)
• 链接按钮:{{link:链接地址|按钮文字}}(如{{link:https://area51word.com|访问官网}},用户点击后跳转至指定链接)
示例效果可参考模板中的“Area 51 Gizmo AI Assistant”——它会生成“选择场馆”“查看餐饮信息”等按钮,引导用户快速操作。
模板使用Tailwind CSS进行样式管理,修改外观可关注以下文件:
• app/globals.css:全局样式和主题配置(如颜色、字体、间距)
• components/ui/:可复用UI组件(如输入框、按钮、头像)的样式
• components/Chatbot.tsx:聊天机器人核心界面(如对话气泡、消息列表)的样式
1、将代码推送到GitHub仓库(确保仓库已公开或设置为私有但授权Vercel访问)
2、登录Vercel,点击“New Project”,选择关联刚才的GitHub仓库
3、在Vercel项目设置中,添加.env.local中的3个环境变量(注意线上环境的NEXT_PUBLIC_APP_URL要填Vercel分配的域名)
4、点击“Deploy”,等待部署完成即可访问
除了Vercel,项目还能部署到以下支持Next.js的平台: • Netlify • Railway • Render • DigitalOcean App Platform
• 检查ARCJET_KEY和GOOGLE_GENERATIVE_AI_API_KEY是否正确,是否过期
• 确认环境变量在部署平台(如Vercel)中已正确设置,无拼写错误
• 将.env文件中的NEXT_PUBLIC_APP_URL修改为线上部署的实际域名(如ai-chatbot.vercel.app),不要带http://或https://
PowerPoint演示文稿智能生成工具 PowerPoint Slides Skill
金融 AI 新工具 FinClaw,免费提供1000+ 金融专属Skills
PPT Agent 演示文稿生成框架
端到端自主AI科研引擎 NanoResearch
CitationClaw 学术论文智能引用画像和分析报告
pi-autoresearch:pi自动化实验优化循环
OpenClaw Control Center:为OpenClaw用户(包括团队和个人)提供统一的监控和管理界面
OpenClaw Dashboard 仪表盘:让OpenClaw管理更简单
PaperBanana-CN 学术配图助手
996.ICU:工作 996, 生病 ICU