微信小程序接入大模型实战1:实现「AI 抽签算命」功能(含代码)

169 阅读1分钟

 

引言:本文将深入剖析如何利用大语言模型(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}

输出要求:

  1. 字数控制在 60~90 字
  2. 不要给出确定性结论(如“一定会”“肯定不会”)
  3. 不要直接给行动建议(如“应该分手”“马上辞职”)
  4. 避免使用灾难性或绝对化词汇
  5. 语言偏向象征、提醒、可能性

输出风格示例(仅供参考):
“此签多指过程中的变化,而非最终结果,
关键在于当下的选择与心态。”

现在请开始解读。

代码配合展示

function buildFortunePrompt(level, question) {
  return `
你是一位传统算命解读者,语气平和、克制、不夸张。

签文等级:${level}
用户问题:${question}

请给出 60~90 字的模糊解读,
不要下结论,不要给建议,
只提供象征性和启发性表达。
`
}