← 返回教程库

用 AI 做表单、聊天机器人和自动化小工具

最后更新 2026-06-25
你将学到
  • 知道表单/聊天机器人/自动化脚本三类小工具各自最省力的技术路径
  • 学会用 AI 工具快速搭出能用的原型,而不是从零造轮子
  • 掌握"对 AI 提需求"的真实写法,让它给你出代码而不只是建议
  • 知道密钥安全、定时任务、通知发送这几个共性坑怎么绕

很多真实需求根本不需要做成一个"产品"。一个表单页面收数据然后发邮件、一个能回答常见问题的对话框、一个每天定时跑一次的脚本——这些东西用 AI 工具几个小时就能搭出来,而且立刻能用。

反倒是很多人把精力花在了"先想清楚整体架构"上,然后就没有然后了。

这篇讲三类最常见的"小而美"工具:表单/问卷聊天机器人自动化小工具。它们有一个共同点——需求明确、开发快、用现成能力拼就够了,不需要你从头造什么。

CursorClaude Code 来搭,两者在这类场景里的用法基本一致。


这三类小工具的共性

在讲每一类之前,先说共性——因为踩坑的地方往往是共性的坑,不是某类特有的:

数据存哪? 大多数小工具的数据量不大,Supabase 免费额度(500MB + 每月 200 万次请求)足够了。表单提交存一张表,聊天记录存一张表,脚本日志存一张表——不需要自己运维数据库。

通知怎么发? 表单提交后通知、脚本跑完告警,最省事的方案是邮件(Resend 免费 100 封/天,接入代码不到 20 行)或者企业微信 Webhook(一个 POST 请求就能推消息到群里)。不要自己搭邮件服务器。

定时怎么跑? 脚本类工具经常需要定时执行。选项有三种:Vercel 的 Cron Jobs(免费,每天最多 2 个)、GitHub Actions 的 schedule 触发、或者 Render 的 Cron Job 服务。任何一个都能让你不用买服务器跑一个常驻进程。

密钥安全。 这是最容易出事的地方。AI 生成的代码里,密钥有时候会直接出现在源码里——你得养成习惯,每次让 AI 涉及外部 API 时,都在提法里加一句"API Key 从环境变量读,不要硬编码"。


表单 / 问卷:收集数据 + 存库 + 通知

适合什么需求

  • 活动报名收信息
  • 用户反馈/满意度问卷
  • 内测申请、Waitlist 收集
  • 内部流程表单(请假、申请、审批)

这类需求的核心逻辑很简单:用户填 → 提交 → 存库 → 通知你。不需要复杂的后端,也不需要管理后台(Supabase Dashboard 就能直接看数据)。

用 AI 快速搭的路径

  1. 用 Next.js App Router 出一个表单页面(或者直接用 v0 生成 UI 组件)
  2. 提交时调用一个 /api/submit 接口
  3. 接口里写入 Supabase,然后调 Resend 或企业微信 Webhook 发通知
  4. 不需要登录,不需要管理后台

表单本身用 react-hook-form + zod 做校验,这是目前最省事的组合,AI 对它们的训练数据很多,生成代码质量稳定。

对 AI 提需求示例

帮我做一个活动报名表单页面,路由是 /register。

表单字段:姓名(必填)、手机号(必填,校验格式)、公司(选填)、
参会意向(单选:线上/线下)。

提交逻辑:
1. 调用 /api/register,把数据写入 Supabase 的 registrations 表
   (表结构:id/name/phone/company/attendance_type/created_at,
   我自己会建表,你只需要写插入代码)
2. 写入成功后,用 Resend 给 admin@example.com 发一封通知邮件,
   邮件正文包含刚才提交的信息
3. 前端显示"报名成功!"

使用 react-hook-form + zod 做表单校验。
Supabase 和 Resend 的 API Key 都从环境变量读,
变量名:NEXT_PUBLIC_SUPABASE_URL、NEXT_PUBLIC_SUPABASE_ANON_KEY、RESEND_API_KEY。
不要硬编码任何密钥。

注意提法里几个关键点:字段名要具体、环境变量名要指定、Supabase 表结构要说明(即使你自己会建表,让 AI 知道字段名,它写插入代码才不会出错)。

现成能力怎么拼

需求 用什么 不用造什么
表单 UI shadcn/ui 组件 + react-hook-form 不用自己写 input 样式和校验逻辑
数据存储 Supabase 不用自己装 PostgreSQL
发邮件通知 Resend SDK 不用搭邮件服务器
发群消息通知 企业微信 Webhook(一个 POST) 不用装任何 SDK
防刷 Cloudflare Turnstile(免费) 不用自己写验证码

聊天机器人:接 AI 对话 + 接入网站 / 微信

适合什么需求

  • 网站客服机器人(回答常见问题)
  • 微信公众号自动回复
  • 内部知识库问答(给公司同事用)
  • 产品引导助手(教用户怎么用你的产品)

聊天机器人看起来很复杂,但拆开来其实就两块:对话 UI + 调 LLM 接口。如果是微信,还要加一个微信消息转发层。

用 AI 快速搭的路径

网站内嵌聊天框:

  1. 一个对话 UI 组件(输入框 + 消息列表 + loading 状态)
  2. 一个 /api/chat 接口,调 Anthropic API,系统 prompt 里写清楚机器人的角色和知识范围
  3. 流式输出(streaming)让回复感觉更快

微信公众号:

  1. 用 Node.js 或 Python 写一个接收微信消息的 Webhook
  2. 收到用户消息后调 LLM,把回复发回去
  3. 部署到 Vercel 或 Render

接入微信公众号比网站稍微麻烦一点(需要备案域名、微信认证),如果只是内部用或者测试,先做网站版本验证想法,再考虑接微信。

相关参考:用 AI 做微信小程序,里面有微信生态的接入细节。

对 AI 提需求示例

帮我做一个网站内嵌聊天机器人,用 React 组件实现。

功能:
- 右下角有一个悬浮按钮,点击展开对话框
- 对话框里有消息列表(区分用户消息/AI 消息)、输入框、发送按钮
- 发送后调用 /api/chat 接口,支持流式输出(SSE)
- AI 的系统 prompt 是:"你是 XX 产品的客服助手,
  只回答关于 XX 产品使用方法的问题,
  不清楚的问题请让用户联系 support@example.com"

/api/chat 接口:
- 使用 Anthropic SDK(@anthropic-ai/sdk)
- 模型用 claude-haiku-4-5
- 支持流式返回(stream: true)
- ANTHROPIC_API_KEY 从环境变量读,不要硬编码

对话历史保存在组件的 state 里,不需要持久化。
只要功能能跑,UI 简洁就好,不需要动画效果。

系统 prompt 是聊天机器人最核心的配置。一定要说清楚机器人的"角色"和"边界"——知道什么、不知道什么、不确定时怎么处理。不加约束的 LLM 会发散到什么都回答,在客服场景里容易出问题。

知识库接入(RAG 简单版)

如果你有一批固定文档想让机器人参考(比如产品手册、FAQ),最简单的方案是:把内容拆成段落,存到 Supabase 的向量表里,每次用户提问时先搜出相关段落,拼进系统 prompt。

Supabase 支持 pgvector 扩展,直接在数据库里做向量检索,不用单独搭向量数据库。文档量不大时(几百段)这个方案够用了。


自动化小工具:定时抓取 / 批处理 / 脚本

适合什么需求

  • 每天定时抓取某个页面的数据,存到表格里
  • 批量处理一批文件(重命名、转格式、压缩图片)
  • 定期统计业务数据,发邮件或推送给团队
  • 自动化一个原来手工做的重复操作

这类工具的特点是没有用户界面或界面极简,核心是"定时跑、不出错、出错了告诉我"。

用 AI 快速搭的路径

定时脚本(推荐 GitHub Actions):

对于不需要实时触发的任务,GitHub Actions 是最省事的方案——代码放在 repo 里,配一个 YAML,免费额度(每月 2000 分钟)对大多数脚本够用。

批处理脚本(本地或服务器):

用 Python 或 Node.js 写一个脚本,AI 对这类任务的代码生成质量很高,你只需要描述清楚"输入是什么、要做什么操作、输出到哪里"。

Serverless 定时任务:

如果需要调用外部 API 或访问数据库,可以用 Vercel Cron Jobs(免费版每天最多 2 个)或 Render 的 Cron Job。

对 AI 提需求示例

帮我写一个 Python 脚本,做以下事情:

1. 读取当前目录下的 data.csv 文件
   (字段:date, product_name, sales_amount, region)
2. 按 region 分组,统计每个 region 的 sales_amount 总和和均值
3. 结果写入 output/report_{today_date}.csv
4. 打印一行摘要:"处理完成,共 X 条记录,报告保存到 output/xxx.csv"

如果 data.csv 不存在,打印"错误:找不到 data.csv"然后退出。
只用 Python 标准库 + pandas,不要引入其他依赖。
脚本顶部加一行注释说明用途和运行方法。

这个提法的关键:输入/输出格式具体(字段名、文件名、目录结构),错误处理要说(不然 AI 生成的脚本往往没有异常处理),依赖限制要说(不然它可能引入一堆你没装的库)。

把脚本挂成定时任务(GitHub Actions 示例)

让 AI 给你生成 GitHub Actions 的 YAML 配置:

帮我写一个 GitHub Actions workflow,每天北京时间 9:00 自动运行
仓库根目录下的 scripts/daily_report.py。

运行环境:Python 3.11。
脚本需要一个环境变量 SUPABASE_URL 和 SUPABASE_KEY,
从 GitHub Secrets 读取,变量名对应 SUPABASE_URL 和 SUPABASE_KEY。

生成的 YAML 放到 .github/workflows/daily.yml 里,在 GitHub repo 的 Settings → Secrets 里加上对应的变量,就跑起来了。


怎么用现成能力拼,别造轮子

这是这类小工具最容易走弯路的地方——很多人看到"发邮件"就想自己搭邮件服务器,看到"存数据"就想自己装 MySQL,看到"定时任务"就想买服务器跑 cron。

这些都不必要。下面是一份"现成能力替换表":

你想做的 用这个 免费额度够不够?
发邮件通知 Resend 每天 100 封,够了
发群消息 企业微信 / 飞书 Webhook 完全免费
存结构化数据 Supabase 500MB + 200 万次请求
定时执行脚本 GitHub Actions 每月 2000 分钟
对话 AI 接入 Anthropic API 按量付费,haiku 很便宜
文件存储 Supabase Storage 或 Cloudflare R2 R2 免费 10GB
防刷/验证码 Cloudflare Turnstile 完全免费
推送到手机 Bark(iOS)或 PushDeer 完全免费

AI 工具对所有这些服务都有大量训练数据,你只需要告诉它"用 Resend 发邮件"或者"用 Supabase 存数据",它能直接给你写出接入代码。

关于如何用 AI 工具做出完整的落地页和对外产品,可以参考 用 AI 做落地页 / 营销站用 AI 做 Chrome 插件 这两篇,逻辑是相通的。


共性的坑 / 故障排查表

症状 可能原因 排查方向
表单提交成功但收不到通知邮件 Resend 未验证发件域名,或邮件进了垃圾箱 Resend Dashboard 检查发送日志;Resend 免费版只能发到自己账号邮箱(需验证域名才能发任意邮件)
聊天机器人回复很慢或截断 没开流式输出,或 Vercel Serverless 默认 10 秒超时 改用流式 SSE;Vercel 免费版超时上限是 10 秒,超了要升级或用边缘函数
GitHub Actions 脚本跑失败说找不到环境变量 Secrets 没配或变量名拼错 Settings → Secrets 确认名称完全一致;YAML 里引用写法是 ${{ secrets.VAR_NAME }}
Supabase 插入数据 403 RLS(Row Level Security)开了但没配策略 Supabase Dashboard → 对应表 → RLS → 加一条允许插入的策略;或临时关掉 RLS 测试
AI 提到"已弃用的 API"或用了老版 SDK 接口 AI 训练数据有截止,某些 SDK 方法已更新 把报错信息连同 SDK 文档链接一起贴给 AI,让它对照文档修改
定时脚本跑了但没有数据更新 脚本里有异常被静默吞掉了 在脚本关键步骤加 print 或日志;GitHub Actions 日志里看实际输出

常见问题

Q:我不会 Python 也不会 JavaScript,AI 能帮我搭吗?

能,但有限度。AI 能帮你生成代码,但出了问题你需要能看懂报错、能描述清楚症状。完全不懂编程直接上手,往往卡在调试环节。建议先把 AI 辅助调试 这类基础内容过一遍,再来搭这类工具,事半功倍。

Q:表单工具用 Tally / Typeform 不香吗?干嘛自己搭?

如果现成产品满足需求,当然优先用。自己搭的优势是:数据完全在你手里、可以自定义逻辑(比如提交后触发特定流程)、没有每月订阅费。需求简单、不在乎数据自主权——用 Tally;需要定制逻辑、有技术基础——自己搭。

Q:聊天机器人的对话历史要怎么存?

看需求。如果只是简单客服,不存历史、每次对话独立就够了(上下文丢了就重新说)。如果需要记忆用户之前问过什么,可以把历史存到 Supabase,每次请求时读出来拼进 messages 数组。注意历史越长、tokens 消耗越多、成本越高——通常保留最近 10 轮就够。

Q:脚本跑报错了怎么排查?

两步:第一步,把完整报错信息(不是"有报错"这种描述,是完整的 traceback 或 error message)贴给 AI,让它看具体错在哪行;第二步,如果 AI 给的修复方案跑了还是有问题,把新的报错继续贴给它。大多数脚本类问题来回两三轮就能解决。


下一步

这三类小工具都是"一个人加 AI 工具能在一天内做出来"的范围。做完你会发现一件事:很多"我以为要做一个产品"的需求,其实一个脚本就解决了

如果你想把这些小工具进化成真正的产品,下一步是 用 AI 从 0 做 SaaS MVP——那篇讲的是从 idea 到能给人用的完整路径。

相关延伸:


👉 看看我们的 AI 编程实战体系课,或逛 AI 编程教程大全 把基本功打扎实。

📄 来源 / 自校链接

本文为学习整理,关键步骤与代码请结合下列官方来源验证。

内容有错、看不懂、或想看下一期?告诉我们 →

本文为学习与落地整理,AI 工具与平台更新较快,关键步骤请结合官方最新资料验证。见免责声明