新闻详情

新闻详情

首页 / 资讯中心 / 详情

三天用 Claude + Kimi 完成一个微信小程序,完整流程全记录(TaoToken 统一 Key 接入版)

发布时间:2026/9/28 5:46:30来源:尧图网络
三天用 Claude + Kimi 完成一个微信小程序,完整流程全记录(TaoToken 统一 Key 接入版)
1. 三天上线微信小程序为什么我选了 Claude Kimi 双模型个人开发者做微信小程序最卡人的从来不是写页面而是三件事需求想不清楚、接口调不通、报错看不懂。我这次要做的是一款「AI 记账本」小程序——用户输入一句「昨天中午和同事吃火锅花了 280」小程序自动解析出金额、类别、时间并入库。功能不复杂但涉及云开发、云函数、外部模型调用、前端联调一个人三天做完靠单个模型很容易在某个环节卡死。我的做法是把 Claude 和 Kimi 当成两个不同工种的搭档Claude 负责需求拆解、架构设计、页面骨架生成它长上下文理解强能把整个项目结构一次讲清楚Kimi 负责接口对接、JSON 结构化输出、联调排错它在 API 调用和格式约束上更稳。两个模型都通过 TaoToken 统一 Key 接入省去分别管理多套密钥、多套计费、多套配置的麻烦。TaoToken 是一个模型聚合接入平台你用一个 Key 就能调用包括 Claude、Kimi 在内的多种模型对个人开发者来说配置成本直接砍半。这篇文章交付的是可复制的完整流程TaoToken 统一 Key 的配置骨架、Claude 与 Kimi 在三天里各自的分工提示词模板、小程序端到端验证清单以及我实际踩过的坑。你按同样节奏走三天交付是能复现的。2. TaoToken 前置统一 Key 与配置骨架2.1 为什么用统一 Key 而不是分别申请如果你同时用 Claude 和 Kimi传统做法是去两家分别注册、分别拿 Key、分别充值、分别写配置。项目里就会出现两套环境变量、两套请求封装、两套错误处理。三天工期里光是维护这些就够烦的。TaoToken 的思路是你只拿一个 Key请求发到同一个入口通过 model 参数切换模型。这样云函数里只需要维护一份请求逻辑切换模型只改一个字符串。官网入口在这里注册后到控制台创建 API Keyhttps://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentAPI 基础地址是 https://taotoken.net/api 注意这个地址不带任何查询参数直接作为 base_url 使用。2.2 settings.json 配置片段如果你用 Claude Code 这类工具做本地开发配置写在 settings.json 里。下面是我实际用的骨架把 base_url 指向 TaoTokenKey 用环境变量注入避免硬编码进仓库{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: sk-你的TaoToken密钥, ANTHROPIC_MODEL: claude-sonnet-4-20250514 }, permissions: { allow: [Read, Write, Bash] } }这里的关键是 ANTHROPIC_BASE_URL 指向 TaoToken 的 API 地址工具就会把请求发到统一入口。ANTHROPIC_MODEL 填你要用的 Claude 模型名需要切 Kimi 时改成对应的模型标识即可。2.3 config.toml 配置片段如果你用的是另一类支持 TOML 配置的编码工具写法如下[model] provider taotoken base_url https://taotoken.net/api api_key sk-你的TaoToken密钥 model claude-sonnet-4-20250514 max_tokens 8192 temperature 0.3 [model.fallback] model moonshot-v1-8kfallback 段是我特意加的当 Claude 在某个环节响应慢或超时可以手动切到 Kimi 继续不用改请求代码。统一 Key 的好处在这里体现得很明显——换模型只是换一个 model 字段。注意API Key 不要写进小程序前端代码也不要提交到 Git。云函数里用环境变量本地配置用 .gitignore 排除。3. 可复制配置三天分工与提示词模板3.1 Day 1 需求拆解与架构Claude 主导第一天不要写业务代码先把架构定死。我把需求原话丢给 Claude让它输出架构图和项目结构。提示词模板如下你是资深微信小程序架构师。我要做一个 AI 记账本小程序核心功能 1. 用户输入自然语言如昨天中午和同事吃火锅花了280 2. 自动解析金额、类别、时间 3. 存入云数据库并展示列表和总额 请输出 - 整体架构分层前端/云函数/AI解析层/数据库 - 项目目录结构 - 数据库集合字段设计 - 每个云函数的职责说明 约束AI 解析必须放在云函数不能放前端避免 Key 泄露。Claude 给出的架构是四层小程序原生前端 → 云函数Node.js→ AI 解析层 → 云数据库。关键决策是把 AI 解析放云函数既保护 Key 又避免小程序包体积膨胀。数据库集合 records 的字段设计// records 集合结构 // { // _id: 自动生成, // openid: 用户唯一标识, // amount: 280.00, // category: 餐饮, // description: 和同事吃火锅, // createdAt: Date.now() // }写入云函数时用 wx-server-sdk 关联用户 openid并做金额校验const cloud require(wx-server-sdk) cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) const db cloud.database() exports.main async (event, context) { const wxContext cloud.getWXContext() const { parsedData } event if (typeof parsedData.amount ! number || parsedData.amount 0) { return { code: 400, msg: 金额格式错误 } } const result await db.collection(records).add({ data: { ...parsedData, openid: wxContext.OPENID, createdAt: db.serverDate() } }) return { code: 200, id: result._id } }3.2 Day 2 AI 解析模块Kimi 主导第二天的核心是把自然语言变成结构化 JSON。这里我切到 Kimi因为它对 JSON 模式的支持更稳。提示词模板你是记账助手。从用户输入中提取金额、类别、时间。 类别限定为餐饮、交通、购物、居住、娱乐、其他。 只输出 JSON不要任何前后缀文字。 字段amount(数字)、category(字符串)、description(字符串)。云函数里调用时关键是开启 JSON 模式并压低 temperatureconst axios require(axios) async function callModel(rawText) { const response await axios.post( https://taotoken.net/api/v1/chat/completions, { model: moonshot-v1-8k, messages: [ { role: system, content: 你是记账助手只输出JSON。类别限定餐饮、交通、购物、居住、娱乐、其他。 }, { role: user, content: rawText } ], response_format: { type: json_object }, temperature: 0.3 }, { headers: { Authorization: Bearer ${process.env.TAOTOKEN_KEY} } } ) return JSON.parse(response.data.choices[0].message.content) }我最初只用提示词要求返回 JSON偶尔会带前后缀文字导致 JSON.parse 失败。加上 response_format 强制 JSON 模式后成功率明显提升。同时一定要写降级方案模型不稳定时用正则兜底exports.main async (event) { const { text } event if (!text) return { code: 400, msg: 缺少文本 } try { const aiResult await callModel(text) return { code: 200, parsedData: { amount: parseFloat(aiResult.amount), category: aiResult.category || 其他, description: aiResult.description || text } } } catch (err) { console.error(解析失败, err) const fallback text.match(/(\d(\.\d)?)/) return { code: 200, parsedData: { amount: fallback ? parseFloat(fallback[0]) : 0, category: 其他, description: text } } } }3.3 Day 3 前端与联调双模型协同第三天 Claude 生成页面骨架Kimi 帮忙看报错。首页逻辑Page({ data: { inputText: , loading: false, records: [], totalAmount: 0 }, onInput(e) { this.setData({ inputText: e.detail.value }) }, async submit() { const text this.data.inputText.trim() if (!text) return wx.showToast({ title: 请输入内容, icon: none }) this.setData({ loading: true }) try { const parseRes await wx.cloud.callFunction({ name: parseExpense, data: { text } }) const addRes await wx.cloud.callFunction({ name: addRecord, data: { parsedData: parseRes.result.parsedData } }) if (addRes.result.code 200) { wx.showToast({ title: 记账成功, icon: success }) this.setData({ inputText: }) this.loadRecords() } } catch (err) { console.error(完整错误栈, err) wx.showModal({ title: 出错了, content: JSON.stringify(err) }) } finally { this.setData({ loading: false }) } }, async loadRecords() { const db wx.cloud.database() const res await db.collection(records) .orderBy(createdAt, desc).limit(50).get() const total res.data.reduce((acc, cur) { return Math.round((acc cur.amount) * 100) / 100 }, 0) this.setData({ records: res.data, totalAmount: total }) } })4. 验证请求与成功结果配置完不要急着写业务先用一条 curl 验证 TaoToken 通路是否正常curl https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer $TAOTOKEN_KEY \ -H Content-Type: application/json \ -d { model: moonshot-v1-8k, messages: [{role: user, content: 昨天中午和同事吃火锅花了280}], response_format: {type: json_object} }返回里 choices[0].message.content 应该是一段合法 JSON包含 amount、category、description 三个字段。如果这一步通了说明 Key、base_url、模型名都对。小程序端到端验证清单按顺序走一遍步骤动作预期结果1云函数本地调试 parseExpense返回 code 200 和 parsedData2云函数本地调试 addRecord数据库新增一条记录3小程序真机输入一句话Toast 显示「记账成功」4下拉刷新列表新记录出现在顶部5查看总额金额累加正确无浮点误差6连续快速提交两次只写入一条防抖生效实测下来第 5 步最容易出问题。JavaScript 浮点运算会让 0.1 0.2 变成 0.30000000000000004所以总额计算统一用 Math.round(x * 100) / 100 处理。5. 本篇常见错排查5.1 云函数调用模型超时首次调用外部模型经常超过默认 3 秒超时。解决办法是在云函数配置里把超时时间改到 10 秒并启用固定 IP 出口。如果还是慢检查是不是模型选得太大换成更轻量的模型先跑通链路。5.2 JSON.parse 报错报错信息通常是 Unexpected token说明模型返回里带了前后缀文字。两个动作一是确认 response_format 设成了 json_object二是把 temperature 压到 0.3 以下。还不行就在解析前用正则截取第一个 { 到最后一个 } 之间的内容。5.3 数据库写入重复用户快速连点提交云函数可能被调用多次。前端加 500ms 防抖云函数侧可以用 openid 时间戳做幂等判断。我试过只在前端防抖极端情况下仍会重复后来在云函数里也加了一层校验才彻底解决。5.4 金额精度异常前面提过浮点运算会累积误差。所有涉及金额的加减都走 Math.round(x * 100) / 100存储时也统一保留两位小数。5.5 模型切换后请求失败从 Claude 切到 Kimi 时如果报模型不存在检查 model 字段拼写。TaoToken 的模型标识和官方一致不要自己造名字。另外确认 base_url 没有多加路径正确写法就是 https://taotoken.net/api 。6. 按你的角色选下一步三天流程走完核心经验就三条让 Claude 做架构、Kimi 做接口分工明确效率最高模型不稳定时必须有本地降级兜底用统一 Key 把多模型配置收敛成一份省下的时间全花在业务上。如果你现在卡在接入环节先去创建 Key 并对照接入文档把 base_url 和 model 字段配好API Keys 管理页 https://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 接入文档 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。如果你想先验证模型输出质量再动手写代码直接开模型对话页试几句自然语言解析https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。如果你打算长期用这套组合做编码和 Agent 开发Coding Plan 比按次调用更划算配置方式也更适合日常开发节奏https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

pymodbus替代Modbus Poll:工业自动化通信的工程化跃迁 2026/9/28 6:37:03

pymodbus替代Modbus Poll:工业自动化通信的工程化跃迁

1. 为什么Modbus Poll不是唯一解?从调试工具到自动化脚本的思维跃迁我第一次在工厂现场用Modbus Poll读取温湿度传感器数据时,手边摆着三台设备:一台工控机跑着Windows 7,一台笔记本连着USB转RS485适配器,还有一台平板…

阅读更多 →
AgentScope多智能体框架实战:消息编排、工具调用与状态持久化 2026/9/28 6:37:03

AgentScope多智能体框架实战:消息编排、工具调用与状态持久化

多智能体系统这两年从论文里的概念一路卷到了工程落地,但真正动手搭过的人都知道,坑不在"让两个Agent对话"这种演示级场景上,而在于消息怎么可靠传递、状态怎么持久化、工具怎么安全调用、多个Agent并行时怎么不互相踩脚。AgentSco…

阅读更多 →
AO3401软启动电路设计实战:MOS管开关可靠性关键 2026/9/28 6:37:03

AO3401软启动电路设计实战:MOS管开关可靠性关键

1. 为什么这个电路设计值得你花30分钟认真读完我第一次在电源模块里看到MOS管开关炸掉,是在给一款工业传感器做供电改造时。客户现场反馈“一上电就冒烟”,拆开发现AO3401的D-S之间已经击穿短路,PCB铜箔都烧黑了。后来查清楚,根本…

阅读更多 →
多智能体协作框架Herdr:任务调度与上下文总线实战 2026/9/28 6:37:02

多智能体协作框架Herdr:任务调度与上下文总线实战

1. 为什么单打独斗的编程工具该退场了我用了三年多的AI编程工具,从最早的代码补全插件到后来的对话式编程助手,再到最近半年开始折腾各种智能体框架,有一个感受越来越强烈:单个编程工具再强,也扛不住真实项目的复杂度。…

阅读更多 →
Dify连接MySQL全攻略:避开SSL、容器网络与权限的坑 2026/9/28 6:36:56

Dify连接MySQL全攻略:避开SSL、容器网络与权限的坑

想把Dify接上MySQL的时候,很多人第一反应是:这不就是填个数据库连接串的事吗,能有多难?结果一上手,SSL报错、凭据校验失败、容器里的localhost连不上、密码试多几次被锁定……我在帮团队搭Dify智能问答应用时就踩过这一…

阅读更多 →
Hindsight回溯式推理:LLM应用工程化落地实践 2026/9/28 6:36:56

Hindsight回溯式推理:LLM应用工程化落地实践

1. 项目概述:Hindsight 是什么,它解决哪类真实问题?Hindsight 不是一个官方发布的开源项目,也不是 OpenAI 或任何主流大模型厂商推出的标准化产品。它是在 LLM 应用工程实践中自然生长出来的一个概念性命名,特指一类以…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉