引言:本文将深入剖析如何利用大语言模型(LLM)与结构化 Prompt 设计,把传统上依赖随机数的“抽签”过程,升级为一个高度个性化、符合巴纳姆效应的“生成式解签规则系统” 。
商务合作:18094708823
1. 项目背景
“抽签算命”类小程序一直有稳定用户需求,但传统实现通常是:
- 固定签文
- 随机返回
- 缺乏个性化
本文尝试用 大模型 + 结构化 Prompt,实现一个 “看起来像算命,实际是文本生成规则系统” 的抽签功能。
2. 产品示意图
编辑
3. 技术架构
微信小程序
|
| 点击抽签
v
Node.js 后端
|
| 抽签结果 + Prompt
v
大模型 API
4. 小程序端:抽签触发
<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}
输出要求:
- 字数控制在 60~90 字
- 不要给出确定性结论(如“一定会”“肯定不会”)
- 不要直接给行动建议(如“应该分手”“马上辞职”)
- 避免使用灾难性或绝对化词汇
- 语言偏向象征、提醒、可能性
输出风格示例(仅供参考):
“此签多指过程中的变化,而非最终结果,
关键在于当下的选择与心态。”现在请开始解读。
代码配合展示
function buildFortunePrompt(level, question) {
return `
你是一位传统算命解读者,语气平和、克制、不夸张。
签文等级:${level}
用户问题:${question}
请给出 60~90 字的模糊解读,
不要下结论,不要给建议,
只提供象征性和启发性表达。
`
}