用Claude Code从零搭建AI取名小程序:云开发+腾讯混元大模型实战全记录

前言

最近身边不少朋友都在问我:想给宝宝/宠物/工作室取个有寓意又不俗气的名字,翻遍诗词典籍、算完生辰八字,还是没头绪?作为开发者,我索性用Claude Code快速开发了一款基于微信云开发+腾讯混元大模型的取名小程序,既能解决实际需求,也顺便探索了AI大模型在传统文化场景下的落地实践。这篇文章就把整个开发过程、踩坑经验和实现细节分享给大家,全程干货,看完你也能复刻同款项目。


一、项目背景与需求拆解

取名这件事,看似简单,实则痛点不少:

  • 传统取名要么依赖老一辈经验,要么需要查大量古籍,耗时耗力还容易撞名;
  • 市面上的取名工具大多功能单一,要么只讲五行要么只拼寓意,很少兼顾文化底蕴和个性化需求;
  • 想自己做个工具,又担心后端服务器运维成本高、大模型接入复杂,对个人开发者不友好。

于是我定下了这个项目的核心目标:

  1. 低门槛实现:基于微信小程序云开发,无需自建服务器,降低部署和运维成本;
  2. AI赋能传统文化:接入腾讯混元大模型,结合诗词典故、五行八字等传统元素,实现多场景取名;
  3. 功能全覆盖:支持宝宝取名、公司取名、游戏ID、宠物取名等多种场景,同时加入名字打分功能;
  4. 快速迭代:借助Claude Code辅助开发,减少重复代码编写,提升开发效率。

二、技术选型与整体架构

1. 核心技术栈

模块 选型 优势说明
前端框架 微信小程序原生框架 无需额外学习成本,云开发集成度高,用户无需下载APP,打开即用
后端服务 微信云开发(CloudBase) 提供云函数、云数据库、云存储,无需搭建服务器,一键部署
AI能力 腾讯混元大模型 微信生态原生支持,Token成本低,云开发SDK可直接调用,无需额外鉴权
开发辅助 Claude Code 自动生成重复代码、调试云函数、优化提示词,大幅提升开发效率

2. 整体架构设计

整个项目采用“前端+云开发+大模型”的轻量架构,流程如下:

  1. 用户在小程序端输入取名需求(如姓氏、性别、行业、偏好风格等);
  2. 前端将请求发送给云函数,云函数对用户输入进行预处理,拼接符合混元模型要求的提示词;
  3. 云函数调用腾讯混元大模型接口,获取生成结果;
  4. 对大模型返回的结果进行解析、过滤和格式化,再返回给前端展示;
  5. 额外的名字打分、历史记录等功能,直接通过云数据库实现数据存储和查询。

三、核心功能实现细节

1. 云开发环境搭建

首先需要在微信开发者后台开通云开发服务,创建一个新的环境,获取环境ID。在小程序项目中配置云开发:

// app.js
App({
  onLaunch() {
    if (!wx.cloud) {
      console.error('请使用 2.2.3 或以上的基础库以使用云能力');
    } else {
      wx.cloud.init({
        env: '你的云开发环境ID',
        traceUser: true,
      });
    }
  }
});

这里踩过一个坑:基础库版本低于3.7.1时,无法直接使用wx.cloud.extend.AI调用混元模型,建议直接升级到最新基础库版本,避免额外适配成本。

2. 腾讯混元大模型接入(核心代码)

云函数是连接用户请求和大模型的核心,这里直接使用云开发提供的AI扩展能力,无需额外配置API密钥,几行代码就能完成调用:

// 云函数 index.js
const cloud = require('wx-server-sdk');
cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV });

// 初始化混元模型
const model = cloud.extend.AI.createModel('hunyuan-standard');

exports.main = async (event, context) => {
  const { nameType, inputParams } = event;
  // 拼接提示词,根据不同取名场景定制
  let prompt = '';
  switch(nameType) {
    case 'baby':
      prompt = `请根据用户提供的姓氏${inputParams.surname}、性别${inputParams.gender}、生辰八字信息,生成10个寓意美好、五行平衡的宝宝名字,每个名字附上出处和寓意说明,风格${inputParams.style || '文雅'}`;
      break;
    case 'company':
      prompt = `用户需要为${inputParams.industry}行业的公司取名,风格${inputParams.style || '大气稳重'},生成8个符合行业属性、寓意生意兴隆的名字,附上每个名字的品牌寓意和行业适配性说明`;
      break;
    case 'pet':
      prompt = `用户有一只${inputParams.petType},想要可爱有趣的名字,贴合宠物特点,生成10个不重样的名字,每个名字附带简短的寓意和适配理由`;
      break;
    default:
      prompt = `请根据用户需求生成合适的名字,用户需求:${inputParams}`;
  }

  try {
    // 调用混元模型生成结果
    const res = await model.completions({
      prompt: prompt,
      temperature: 0.7, // 控制生成多样性,0.7兼顾创意和稳定性
      max_tokens: 2000,
    });
    // 解析并格式化结果
    const result = res.choices[0].text;
    return {
      code: 0,
      data: result,
      message: '生成成功'
    };
  } catch (err) {
    console.error('大模型调用失败', err);
    return {
      code: -1,
      message: '生成失败,请稍后重试'
    };
  }
};

这里的关键是提示词工程,不同场景的取名需求差异很大,必须给大模型足够明确的指令,比如宝宝取名需要结合五行、诗词典故,公司取名需要贴合行业属性,宠物取名要可爱有特点,这样生成的结果才不会泛泛而谈。

3. 前端交互与结果展示

前端主要负责用户输入收集、请求发送和结果渲染,同时做一些输入校验和加载状态处理:

// pages/baby-name/baby-name.js
Page({
  data: {
    surname: '',
    gender: 'boy',
    birthInfo: '',
    style: '文雅',
    resultList: [],
    loading: false
  },

  // 提交取名请求
  async handleSubmit() {
    const { surname, birthInfo } = this.data;
    if (!surname) {
      wx.showToast({ title: '请输入姓氏', icon: 'none' });
      return;
    }
    this.setData({ loading: true });
    try {
      const res = await wx.cloud.callFunction({
        name: 'generateName',
        data: {
          nameType: 'baby',
          inputParams: this.data
        }
      });
      // 解析大模型返回的文本,拆分成结构化数据
      const result = this.parseResult(res.result.data);
      this.setData({ resultList: result });
    } catch (err) {
      wx.showToast({ title: '生成失败,请重试', icon: 'error' });
    } finally {
      this.setData({ loading: false });
    }
  },

  // 解析大模型返回的文本结果
  parseResult(text) {
    // 这里根据提示词约定的格式,拆分出每个名字的信息
    // 实际开发中可以用正则匹配名字、出处、寓意等字段
    const list = [];
    const nameBlocks = text.split(/\d+\./).filter(item => item.trim());
    nameBlocks.forEach(block => {
      const [name, desc] = block.split(':');
      list.push({
        name: name.trim(),
        desc: desc?.trim() || ''
      });
    });
    return list;
  }
});

为了提升用户体验,我还加入了结果复制、一键分享、历史记录存储等功能,这些都可以直接用云数据库实现,无需额外后端支持。

4. 名字打分功能实现

名字打分是用户反馈中呼声最高的功能,我基于大模型的文本理解能力,实现了多维度打分:

// 云函数中添加打分逻辑
case 'score':
  prompt = `请对名字${inputParams.name}进行综合打分,满分100分,从以下维度分析:1. 读音音律(20分);2. 字形结构(20分);3. 寓意内涵(30分);4. 五行适配(20分);5. 重名率/独特性(10分),给出总分和每个维度的详细说明`;
  break;

这种方式比硬编码的打分规则更灵活,也更符合用户对“专业分析”的期待,用户反馈体验比市面上固定规则的打分工具好很多。


四、开发中的踩坑与优化经验

1. 大模型调用的常见问题与解决

  • Token超限问题:刚开始提示词写得太冗长,导致每次调用Token消耗很高,后来优化了提示词模板,去掉冗余描述,固定输出格式,Token消耗直接降低了40%;
  • 结果格式不统一:大模型有时候会返回不同格式的文本,导致前端解析失败,后来在提示词中强制约定输出格式(比如用序号分隔、固定字段顺序),并在前端加了容错处理;
  • 调用超时:云函数默认超时时间是60秒,复杂请求偶尔会超时,后来通过优化提示词减少max_tokens,并设置了超时重试机制,超时率下降到1%以下。

2. 云开发的优化技巧

  • 缓存高频请求:对于相同参数的取名请求,在云数据库中缓存生成结果,避免重复调用大模型,节省Token成本;
  • 权限控制:给云数据库设置合理的权限,比如用户只能查看自己的历史记录,避免数据泄露;
  • 成本控制:云开发的免费额度足够个人开发者使用,日常请求量不大的话,几乎没有额外成本,大模型的免费Token额度也能满足初期需求。

3. 用Claude Code提升开发效率

  • 云函数的模板代码、提示词的优化、前端列表渲染的代码,我都是让Claude Code帮我生成的,只需要简单调整就能用,节省了大量重复编写的时间;
  • 遇到云函数调试问题时,直接把错误日志发给Claude Code,它能快速定位问题并给出修复方案,比如权限配置错误、参数传递错误等;
  • 还让它帮我优化了提示词,把原本冗长的提示词改成了更精简、更符合大模型理解习惯的格式,生成结果的质量明显提升。

五、项目成果与后续规划

目前这个小程序已经完成了核心功能开发,支持宝宝取名、公司取名、游戏ID、宠物取名、笔名艺名等多个场景,用户反馈整体还不错,尤其是诗词典故取名和五行分析的功能,很多用户说解决了他们的实际需求。

后续计划:

  1. 优化名字打分的维度,加入更多传统文化元素的分析;
  2. 增加用户自定义提示词的功能,让用户可以更灵活地指定取名风格;
  3. 完善历史记录和收藏功能,提升用户粘性;
  4. 探索大模型在取名场景下的更多玩法,比如结合用户的喜好推荐风格,或者生成带签名设计的名字卡片。

六、总结与心得

这次用云开发+腾讯混元大模型开发取名小程序的经历,让我深刻感受到,现在个人开发者做AI应用的门槛真的低了很多:微信云开发提供了一站式的后端服务,无需搭建服务器;腾讯混元大模型直接通过SDK就能调用,不用处理复杂的鉴权和部署;再加上Claude Code辅助开发,整个项目从想法到上线,只用了不到一周的时间。

如果你也想做类似的AI工具,不妨试试这个技术栈,不用纠结复杂的后端架构,专注于业务逻辑和用户体验就好。取名小程序只是一个起点,后续我也会尝试更多传统文化和AI结合的场景,欢迎大家一起交流讨论。


如果你对项目中的某个部分(比如提示词优化、云函数调试)有疑问,或者想一起交流AI小程序开发的经验,欢迎在评论区留言,我会尽量回复大家~


要不要我帮你补充一份Claude Code的详细使用指令清单,包含生成云函数代码、优化提示词、调试错误的具体prompt,你直接复制就能用?
在这里插入图片描述

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐