引言
本文将介绍如何利用大语言模型(LLM)的跨领域知识检索能力(文学、历史、五行学)和结构化输出能力,将传统的起名服务升级为高效率、高品质的“AI 起名与评估”系统。
从技术视角看,AI 起名大师是一个典型的知识融合与结构化输出任务:
固定标签(八字/五行) → 知识检索(诗词/古籍)→ 多维度评估(音、形、意) → JSON 结果输出
传统起名软件往往只能简单地罗列笔画和五行,缺乏文学底蕴。本文将演示如何通过 LLM 确保生成的名字不仅满足传统要求,还富有诗意、寓意和现代美感。
商务合作:18094708823
1. 项目背景
起名服务市场长期存在以下痛点:
内容同质化:多数软件生成的字词组合缺乏美感和新意。
缺乏考据:名字寓意往往是牵强附会,无法提供可靠的诗词或典故出处。
用户输入复杂:用户需要手工计算五行缺补,体验繁琐。
解决方案:
利用 LLM 强大的知识库和文本生成能力,实现:
自动化五行缺补分析:根据出生信息自动推算出五行偏向。
诗词古籍溯源:确保名字的文化内涵,并提供出处。
多维度评估报告:提供音律、字形、谐音风险等综合评估。
2. 产品示意图
3. 技术架构
该系统的核心在于 LLM 的Input/Output Mapping:
代码段
微信小程序 (前端) | | 1. 输入:姓氏、性别、生日 (年月日时分) v Node.js / Python 后端 (中间层) | | 2. (传统算法/预置库) -> 计算五行缺补 (例如:缺水) | | 3. 组装 Prompt (包含五行需求与文化要求) v 大语言模型 API | | 4. 生成包含 3 个名字的结构化 JSON v 返回:JSON 结构化结果4. 小程序端:数据采集与展示
4.1 页面核心代码
前端需要采集四个核心信息:姓氏、性别、生日时间(用于五行计算)和起名需求(如“希望阳光开朗”)。
HTML
<!-- naming.wxml --> <view class="form-section"> <input placeholder="请输入姓氏 (例如:张)" bindinput="inputFamilyName" /> <picker mode="selector" range="{{genderArray}}" bindchange="selectGender"> <view class="picker-display">性别:{{genderText}}</view> </picker> <!-- 简化日期选择 --> <input placeholder="出生日期 (例如: 2024-05-20 10:30)" bindinput="inputBirthTime" /> </view> <button bindtap="generateNames">开始生成好名</button> <!-- 结果列表 --> <view wx:for="{{nameResults}}" wx:key="name" class="name-card"> <view class="name-title">{{item.name}}</view> <view class="detail">五行契合度: {{item.fit_score}}</view> <view class="detail">诗词出处: 《{{item.source_poem}}》</view> </view>5. 后端:五行预处理与结构化 Prompt
后端有两个关键步骤:
5.1 五行计算(预处理)
由于 LLM 在日期/时间计算上可能存在误差,我们应使用传统的日期库(如 Python 的lunar_python或 Node.js 的dayjs-plugin-lunar)来推算用户的八字,进而确定五行缺补。
JavaScript
// naming_service.js (简化逻辑) function calculateFiveElements(birthTime) { // 假设通过第三方库计算得出 return { missing: ['水', '木'], strong: ['土'] }; }5.2 结构化 JSON Prompt (核心)
这是确保输出可控、可解析的关键。我们要求 LLM 以JSON 格式返回结果列表。
JavaScript
// naming_service.js const promptTemplate = ` 你是一位专业的起名大师,精通诗词文化与五行学。 请根据用户的输入和五行分析,生成 3 个高质量的中文名。 **角色与任务:** 1. 名字必须从中国古代诗词、古籍中选取,并提供出处。 2. 名字必须符合五行缺补要求(优先补【水】和【木】)。 3. 名字需包含寓意解析、音律评估和五行评分。 **输入信息:** - 姓氏:张 - 性别:女 - 五行缺补要求:**急需补水,宜用属水或属木的字。** - 风格偏好:清新脱俗,有书卷气。 **输出要求:** **必须严格按照下面的 JSON 结构返回结果,不要添加任何解释性文字。** [ { "name": "张XX", "meaning": "名字的寓意解析,15字以内。", "source_poem": "诗词出处,精确到篇名和句子。", "element_required": "水/木", "element_used": "名字所用字的五行属性", "sound_assessment": "音律评估 (例如:平仄相宜,朗朗上口)", "fit_score": "95" }, ... (共3个结果) ] `;6. Prompt 设计思路
Prompt 的设计目标是让 LLM 成为一个“文化检索器” + “评分模型”。
强制检索:必须要求 AI 给出具体的诗词出处。这能有效利用 LLM 的知识库,并避免它编造名字。
评分机制:要求 LLM 对自身生成的名字进行打分(
fit_score),这能触发其“自我评估”的思维链,提高名字质量。JSON 结构:使用
responseMimeType: "application/json"和responseSchema确保后端接收到的是可解析的 JSON 字符串。
7. JSON Schema 结构示例
在实际的 API 调用中,我们将定义如下结构:
JavaScript
// generationConfig.responseSchema const responseSchema = { type: "ARRAY", description: "Generated names list", items: { type: "OBJECT", properties: { "name": { "type": "string", "description": "Generated full name." }, "meaning": { "type": "string", "description": "Meaning and analysis." }, "source_poem": { "type": "string", "description": "Source poem or classic text." }, "element_required": { "type": "string" }, "element_used": { "type": "string" }, "sound_assessment": { "type": "string" }, "fit_score": { "type": "string" } }, required: ["name", "meaning", "source_poem", "fit_score"] } };8. 总结
“AI 测名与起名大师”小程序的价值,在于利用 LLM 的知识广度和结构化能力,将一个高度依赖经验的传统服务标准化、高效化。
高效率:几秒内即可生成数十个具有文化出处的备选名字。
高品质:名字拥有诗词古籍背书,赋予了产品高附加值。
可扩展性:通过修改 Prompt,可以轻松支持公司起名、英文名生成、产品命名等多种业务线,形成完整的命名服务矩阵。