引言
本文将介绍如何利用大语言模型(LLM)与结构化 Prompt 设计,将传统“星座运势”这种高度模糊、强主观的内容,重构为一个可控、可复用、低风险的生成式文本系统。
从技术视角看,星座运势并不是预测问题,而是一个典型的:
基于固定标签(星座)+ 情绪状态映射 + 巴纳姆效应的文本生成问题
本文将给出一个完整示例,演示如何实现一个
“看起来像星座运势,实际是 Prompt 驱动的文本生成规则系统” 。
商务合作:18094708823
1. 项目背景
星座运势类小程序长期存在稳定需求,常见实现方式通常是:
- 固定星座运势文案
- 按日期或星座直接返回
- 更新成本高、内容同质化严重
这类实现方式的问题在于:
- 运势内容“可读性强,但复访价值低”
- 用户很容易意识到是“模板内容”
- 难以支持个性化扩展(如今日状态、提问)
本文尝试使用 大语言模型 + 结构化 Prompt,实现一个:
看起来像星座运势,实际是文本生成规则系统
从而在不引入真实预测的前提下,提升内容的代入感与新鲜度。
2. 产品示意图
编辑
3. 技术架构
整体架构较为简单,适合快速验证:
微信小程序
|
| 选择星座 / 查看运势
v
Node.js 后端
|
| 星座信息 + Prompt
v
大语言模型 API
该架构的核心在于:
前端不关心运势内容如何生成,只负责展示结果。
4. 小程序端:星座运势触发
4.1 页面示例
<button bindtap="getFortune">查看今日运势</button>
<view>{{fortune}}</view>
4.2 页面逻辑
Page({
data: {
fortune: ''
},
getFortune() {
wx.request({
url: 'https://your-server/api/fortune',
method: 'GET',
data: {
zodiac: '白羊座'
},
success: res => {
this.setData({
fortune: res.data.text
})
}
})
}
})
5. 后端:星座运势生成逻辑
5.1 星座与运势维度定义
const zodiacs = [
'白羊座','金牛座','双子座','巨蟹座',
'狮子座','处女座','天秤座','天蝎座',
'射手座','摩羯座','水瓶座','双鱼座'
]
const levels = ['偏低', '平稳', '偏高']
5.2 运势接口实现
app.get('/api/fortune', async (req, res) => {
const zodiac = req.query.zodiac
const level = levels[Math.floor(Math.random() * levels.length)]
const prompt = `
你是一位星座运势解读者。
星座:${zodiac}
今日整体运势:${level}
请用不超过 100 字进行解读,
语言模糊、克制,偏向状态描述,
不要给出明确结论或具体建议。
`
const text = await callLLM(prompt)
res.json({ text })
})
6. Prompt 设计思路
在星座运势场景中,Prompt 的设计目标并不是“预测准确”,而是:
- 增强代入感
- 避免确定性判断
- 保持长期可用性
核心设计原则如下:
6.1 模糊性优先
模糊表达可以覆盖更多用户状态,符合巴纳姆效应。
6.2 不给明确建议
避免诸如“应该”“一定要”“马上去做”等指令式表达,降低风险。
6.3 固定角色设定
保持输出风格一致,避免模型输出情绪过激或风格漂移。
7. 推荐 Prompt(可直接使用)
角色设定
你是一位星座运势解读者,语气理性、克制,不夸张、不渲染焦虑。
任务说明
根据给定的星座和今日运势状态,
生成一段偏向“状态提醒”的星座运势文本。
输入信息
- 星座:{zodiac}
- 运势状态:{偏低 / 平稳 / 偏高}
输出要求
- 字数控制在 70~100 字
- 不要给出确定性结论
- 不要直接给行动建议
- 避免使用极端、绝对化词汇
- 语言偏向描述、提醒、可能性
输出风格示例(仅供参考)
“当前阶段更适合关注自身节奏,而非结果本身,外部变化可能带来新的理解方式。”
现在请开始生成。
8. Prompt 构建函数示例
function buildZodiacPrompt(zodiac, level) {
return `
你是一位星座运势解读者,语气理性、克制。
星座:${zodiac}
今日运势状态:${level}
请输出 70~100 字的运势解读,
不下结论,不给建议,
只描述状态与可能性。
`
}
从工程角度看,星座运势并不是一个“玄学系统”,而是一个:
- 用户分桶(星座)
- 状态映射(运势等级)
- 文本生成规则(Prompt)
通过引入大语言模型,可以在不增加内容维护成本的前提下,大幅提升内容的新鲜度和可扩展性。