基于大语言模型的星座运势微信小程序

78 阅读5分钟

引言

本文将介绍如何利用大语言模型(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}
  • 运势状态:{偏低 / 平稳 / 偏高}

输出要求

  1. 字数控制在 70~100 字
  2. 不要给出确定性结论
  3. 不要直接给行动建议
  4. 避免使用极端、绝对化词汇
  5. 语言偏向描述、提醒、可能性

输出风格示例(仅供参考)

“当前阶段更适合关注自身节奏,而非结果本身,外部变化可能带来新的理解方式。”

现在请开始生成。

8. Prompt 构建函数示例

function buildZodiacPrompt(zodiac, level) {
  return `
你是一位星座运势解读者,语气理性、克制。
星座:${zodiac}
今日运势状态:${level}

请输出 70~100 字的运势解读,
不下结论,不给建议,
只描述状态与可能性。
`
}

转存失败,建议直接上传图片文件

从工程角度看,星座运势并不是一个“玄学系统”,而是一个:

  • 用户分桶(星座)
  • 状态映射(运势等级)
  • 文本生成规则(Prompt)

通过引入大语言模型,可以在不增加内容维护成本的前提下,大幅提升内容的新鲜度和可扩展性。