引言:本文将深入剖析如何利用大语言模型(LLM)与结构化 Prompt 设计,把传统上依赖随机数的“抽签”过程,升级为一个高度个性化、符合巴纳姆效应的“生成式解签规则系统”。
商务合作:18094708823
1. 项目背景
“抽签算命”类小程序一直有稳定用户需求,但传统实现通常是:
固定签文
随机返回
缺乏个性化
本文尝试用大模型 + 结构化 Prompt,实现一个“看起来像算命,实际是文本生成规则系统”的抽签功能。
2. 产品示意图
3. 技术架构
微信小程序 | | 点击抽签 v Node.js 后端 | | 抽签结果 + Prompt v 大模型 API4. 小程序端:抽签触发
<button bindtap="draw">抽一签</button> <view>{{result}}</view>Page({ draw() { wx.request({ url: 'https://your-server/api/draw', method: 'GET', success: res => { this.setData({ result: res.data.text }) } }) } })5. 后端:抽签逻辑实现
5.1 签文类型定义
const fortunes = ['上签', '中签', '下签']5.2 抽签接口
app.get('/api/draw', async (req, res) => { const level = fortunes[Math.floor(Math.random() * fortunes.length)] const prompt = ` 你是一个抽签解读者。 抽到的是:${level} 请用不超过80字解释这一签, 语言模糊但积极,不要给具体建议。 ` const text = await callLLM(prompt) res.json({ text }) })6. Prompt 设计思路
模糊性→ 增强代入感
不落地建议→ 避免风险
固定角色→ 稳定输出风格
推荐 Prompt(可直接用)
角色设定:
你是一位传统算命解读者,语气平和、克制、不夸张。任务说明:
根据给定的“签文等级”和“用户问题”,
给出一段模糊但有启发性的解读。输入信息:
- 签文等级:{上签 / 中签 / 下签}
- 用户问题:{question}输出要求:
1. 字数控制在 60~90 字
2. 不要给出确定性结论(如“一定会”“肯定不会”)
3. 不要直接给行动建议(如“应该分手”“马上辞职”)
4. 避免使用灾难性或绝对化词汇
5. 语言偏向象征、提醒、可能性输出风格示例(仅供参考):
“此签多指过程中的变化,而非最终结果,
关键在于当下的选择与心态。”现在请开始解读。
代码配合展示
function buildFortunePrompt(level, question) { return ` 你是一位传统算命解读者,语气平和、克制、不夸张。 签文等级:${level} 用户问题:${question} 请给出 60~90 字的模糊解读, 不要下结论,不要给建议, 只提供象征性和启发性表达。 ` }