从零到一,用AI做了一款微信小程序
—— 帧影翻译(功能为视频翻译)实战记录
⸻
写在前面
花了不到一个月的时间,用 AI 开发了一款个人微信小程序:帧影翻译。这篇笔记记录整个过程的真实心得和开发步骤,想自己动手做小程序的朋友可以参考,也欢迎大家去小程序里试试效果。
先交代一下背景:我本人不是专业程序员,做之前小程序也没碰过。全程的代码都是 AI 智能体写的,我负责想清楚需求、定方向、测试、踩坑、迭代。用 AI 做小程序,门槛真的被拉得很低,但前提是你愿意花时间去打磨去迭代。
全文是我自己的真实经历,不是教程式的空话。翻译逻辑只讲原理,重点放在小程序怎么做。
⸻
一、先想清楚做什么
最初的最初,是有一个自己觉得好的想法,并且有能落地的信心。这个想法可大可小,但最好是真的有一些受众群体,尽量不要自嗨——做出来没人用,很快就没动力维护了。
我的想法:经常看外语视频(YouTube、TikTok 上的),没字幕看不懂。不管是海内外视频剪辑,还是外语学习,又或是跨境工作多语言需求者都有使用场景。做一个"视频翻译"小程序:用户上传视频 → 识别语音 → 翻译成目标语言 → 出字幕或烧进视频。这个需求不是只有我有,看外语视频的人很多,受众是实打实的。
有了想法后,先把它丢给 AI,让它帮你梳理:功能清单、技术选型、可能的风险。这一步很值,AI 会把你想不到的问题提前暴露出来(大文件上传、处理耗时、审核合规……)。
预算也可以先摸底:小程序注册认证 30 元 + 内网穿透一年几十块 + 语音识别用本地开源模型(免费)+ 翻译用大模型 API(按量付费,几块钱基本可以忽略)。我整个工程从头到尾,产生费用一共三四百块钱,硬件用的是家里旧笔记本,总体成本很低。
二、关于 AI 智能体(重点)
2.1 用的是什么
我用的不是豆包、元宝这类聊天机器人,而是能真正干活、执行命令的编程智能体(Claude 这类、Codex、或者最近新出的 WorkBuddy 等)。这类 agent 能自己读写文件、跑命令、改代码,你所有要做的就是跟它对话,让它按你的意愿和方向为你工作——它就是你专属的牛马。模型种类很多,可以根据预算自己挑,我全程用的是 Hermes(agent) + DeepSeek V4 Flash (大模型)的组合。
2.2 agent 也是要驯化的
这个非常重要,前期没做好后面全是坑:
- 制定规则:一开始就跟它约定好工作方式,比如"改代码前先备份""动管线前必须先汇报""交付前自己验证质量"——我的 agent 最开始擅自删过我一个目录,把我气坏了,后来立了规矩:任何删除操作必须经我同意
- 配置记忆库:让它记住你的偏好(比如我不喜欢啰嗦的回答、交付要先自测),跨会话也能保持
- 保存副本:养成经常备份的习惯,改动前让 agent 先复制一份原文件,出问题随时回滚
- 让它学会总结:每次改动让它记录到 changelog,事后能回溯"这功能为什么这么改"
2.3 一个屡试不爽的方法:AI 互审
把一个 AI 的产物发给另一个 AI 审核,让它们互相挑毛病,不断完善优化——这个方法我整个开发流程都在用,几乎零成本(我用豆包和 Qwen 辅助审核):
- AI 写好的代码 → 发给另一个 AI 审查 → 列出问题清单
- 问题逐条核对实际代码,确认是不是真的有问题(AI 也会误报)
- 你永远是最终决策者:改不改、怎么改,听你的
模型之间互相看不顺眼,但挑出来的问题大多是真实存在的。
三、开发顺序:先本地,再小程序
我的做法和很多人不一样:第一步不碰小程序,先让 AI 在本地把整个功能跑通,验证没问题后再移植成小程序。两者的差别其实只是前端,后端逻辑完全一样。
- 前期先和 agent 聊天,探讨优化你的想法,让它出一份整体项目计划书
- 让 AI 按计划书开始干活——在本地(自己家的宽带和端口)搭建完整管线:上传 → 识别 → 翻译 → 烧录 → 下载,用命令行或网页测试
- 本地测试没问题了,再让 AI 把前端移植成小程序代码
好处:本地调试快、日志直接看、不用等微信审核。我当时的 workspace (文件夹:定义agent的工作空间)就放在家里一个不太重要的磁盘目录,所有不懂的地方都让 agent 去执行或教我。
四、准备:资质 + 开发者工具
4.1 注册小程序
去微信公众平台注册个人主体小程序,拿到 AppID。这一部分有点麻烦(要实名、要填一堆资料),可以让 AI 辅助你完成,大概一到两天能研究明白。个人主体能发布,只是部分类目受限,视频工具类没问题。
4.2 开发者工具
微信开发者工具,他是调试小程序代码最好的方式,我是这么认为的,但只有 Windows 和 Mac 版。我的本地环境是 Linux(老笔记本装 Linux 性能更好),所以装了个 Windows 虚拟机来跑开发者工具——虚拟机也是让 AI 帮我装的。
4.3 创建项目
新建项目填 AppID,从空项目开始。先看懂目录结构:当然看不懂也没关系,ai是懂的~
app.js / app.json / app.wxss # 全局:启动逻辑、路由配置、全局样式
pages/index/ # 页面(每个页面 4 件套)
index.js / index.wxml / index.wxss / index.json
一个页面 = 4 个文件:wxml(结构)+ wxss(样式)+ js(逻辑)+ json(页面配置)。
五、登录:绕不开的第一关(不太重要)
小程序没有账号密码,登录流程:
- 前端 wx.login() 拿临时 code
- code 发给后端,后端拿去微信服务器换 openid(用户唯一身份)
- 之后所有请求带这个身份
- 以上其实不用太操心,ai就可以解决,是不是感觉被骗了
代码很简单,但我踩了个大坑:AI 生成的后端代码忘了 import requests 库,登录接口静默失败(异常被吞了),所有任务挂在假 id 下,历史记录全空,排查了很久。教训:AI 写的代码,跑通了不代表没问题,关键路径要自己验证。
另一个容易误解的点:用户删掉小程序重进,openid 不会变(账号级身份)。我一开始以为会变,白查了半天。
六、核心功能:选视频 → 上传 → 进度 → 结果
小程序的主干,也是踩坑最多的地方。
6.1 选视频
wx.chooseMedia(注意 wx.chooseVideo 已废弃,AI 容易写旧的)。
6.2 上传:小文件直传,大文件分片
- 10MB 以内:wx.uploadFile 直传
- 大文件:分片上传,每片 5MB (最多10MB)带序号,后端收齐合并
- 可以选择同步乱序传输,会快很多
分片是必须的:微信有超时限制,大文件一次传必挂,分片断了能重传。
6.3 iOS 的 100MB 坑
iOS 上选视频后的临时文件,读取受 100MB 限制。我一开始用 copyFileSync 复制到本地再读——存储直接翻倍,大文件必炸。正确做法:按偏移量分段读取(readFileSync 支持 start/end),读一段传一段,传完就删。这个坑 AI 不会替你想,是真实用户反馈 + 实测发现的。
6.4 进度:轮询 + 环形进度
前端上传完拿到 task_id,每 2 秒轮询后端接口查进度,进度条用 Canvas 画环形。后台处理分阶段(识别/翻译/烧录),前端按阶段显示文案,用户知道卡在哪一步。
6.5 结果下载 + 2 小时有效期
结果文件 2 小时后自动清理(省硬盘➕保护隐私),前端同步判断过期:冷启动查服务器,2 小时内恢复结果卡,超时清掉。这里有个坑:小程序切后台超过 2 小时再回来,界面还停在旧结果卡(只有冷启动会检查过期,切后台回来不检查),后来补了切回页面的过期检查才修好。
七、翻译逻辑(原理版)
后端的事,前端完全不关心。原理四步:
① 提取音频:ffmpeg 抽音轨
② 语音识别:本地模型(faster-whisper)转文字 + 时间轴
③ 翻译:识别出的文字发给大模型翻译
④ 生成字幕/烧录:按时间轴生成 SRT,或用 ffmpeg 烧进视频
- 识别用本地开源模型(免费,数据不出门)
- 翻译用大模型 API(按量付费,很便宜)
- 烧录用 ffmpeg(开源)
关键:前端和后端完全解耦。小程序只管上传、轮询、下载,后端排队处理。这个架构让 AI 可以分别生成两端代码,互不干扰。
八、后端:家里电脑当服务器
8.1 为什么不用云服务器
主要是性能好的云服务器硬盘流量和租金都贵;家里电脑 24 小时开机免费,还能用显卡跑语音识别。
8.2 内网穿透:natapp
家里网络没有公网 IP,需要穿透工具把本地服务暴露到公网,这样才能上线让用户访问,我用 natapp 付费版,几十块钱能搞半年的固定域名隧道,https 证书自动配好,全程傻瓜操作,一行命令启动(ai会帮你的):
本地 Flask(5000) ← natapp 隧道 → https://你的域名(小程序访问这个)
踩坑:natapp 会不定期掉线(多数是内存爆了被系统连带杀掉),掉线后小程序报"连接被重置"。排查思路:先看进程在不在,再看系统有没有 OOM 记录。
8.3 进阶:存储桶省流量(推荐)
如果流量成本敏感,可以配一个对象存储桶(COS 这类):大文件(视频)直传存储桶,小程序不走自己的服务器流量,服务器只处理接口请求,流量成本直线下降。这是进阶玩法,有需要可以搜搜,不在这详述。
8.4 Flask + SQLite + 开机自启
后端 Flask(Python 轻量框架)+ SQLite(单文件零配置)。接口就几个:上传、查进度、下载、登录。整个骨架 AI 生成,我改接口逻辑、补安全防护(文件大小限制、路径校验)。
配置 systemd 服务开机自启,重启电脑不用手动操作。
九、联调与真机调试
- 开发者工具里先跑通
- 真机调试:手机扫码预览。我主要用真机,方便看后台日志——关键是方便把日志复制给 AI 看,让它直接分析问题
- 一个细节:每次更新代码后,在工具里点"清除全部缓存",然后左边代码栏右上角刷新一下代码,再编译测试——不然会用到旧缓存,白测
- 模拟器和真机差异很大,必须真机测(模拟器一切正常、真机全废的情况不少见)
Linux 用户跑开发者工具
开发者工具只有 Win/Mac 版。Linux 用户装个 Windows 虚拟机跑。注意:虚拟机里访问宿主机服务用 NAT 模式特殊 IP(10.0.2.2),真机走穿透域名。
十、发布与审核
10.1 提审流程
开发者工具上传代码 → 公众平台提交审核 → 等待 → 通过后发布。
10.2 完善小程序信息
发布前要完善各种信息:名字、logo、简介、隐私指引、备案等等。这一部分需要小半个月,但大部分时间是等官方审核,需要你操作的不多,只是有点麻烦。简介要写清楚功能点,名字别用"神器"这类词(广告法)。
10.3 审核踩过的坑
- 弹窗必须可关闭:用户须知弹窗"不同意就退不出"必拒
- 敏感词过滤:有用户生成内容就要有敏感词过滤(前端过滤 + 提示即可达标)
- 文案和功能一致:简介写了什么,小程序里就得有
- 隐私授权:要配《用户隐私保护指引》,相册/存储权限声明,不然 iOS 打不开相册
10.4 体验版 → 正式发布
提交审核前可以发布体验版,让朋友帮你测试验证,没问题了再提审。等官方流程全部走完,就可以恭喜自己了——小程序马上就要面世了!
上线不是结束,后续继续迭代:比如我就刚刚扩展了链接导入支持的平台(粘贴 YouTube/TikTok 链接直接翻译)、后台管理面板升级……一个小程序是"上线才开始"。
十一、踩坑总结(真金白银)
wx.chooseVideo 已废弃——用 wx.chooseMedia
切后台回来的逻辑单独写——onShow 不检查的话,结果卡过期了界面还停在旧状态
openid 删号不变——账号级身份
分片上传必须有——大文件一次传必挂
审核弹窗要可关闭——不然过不了审
内网穿透会掉线——先查 OOM 再查进程
真机测试不能省——模拟器正常真机可能全废
agent 要先驯化——规则、记忆、备份,前期不做后期全是坑
AI 互审——一个 AI 的产物给另一个 AI 挑毛病,零成本提质量
结尾
做这个小程序,AI 帮我写了绝大部分代码,但踩坑、调试、审核、迭代,都是我自己扛过来的。AI 最大的价值不光是替你写代码,还把"从 0 到 1"的门槛降到了"从 1 到 100":想法、架构、初版代码,AI 几分钟给你;但能不能上线、上线后好不好用,靠的还是你自己。
如果你也想做,我的建议就三条:
- 先想清楚做什么(有受众,别自嗨),再让 AI 拆需求
- AI 写的每行代码都自己看懂、自己验证
- 先本地跑通,再移植小程序,一步步来
祝你的小程序早日面世。
看到最后,也判断一下这篇文章是不是ai写的~
更多推荐



所有评论(0)