Skip to main content

微信小程序

PAI 提供原生微信小程序客户端,用户可通过小程序与 AI 进行对话,并使用日历、记账等功能。小程序通过 HTTP API 与后端通信,可选配 WebSocket 实现实时消息推送。

架构说明

微信小程序 ←→ HTTP API / WebSocket ←→ PAI 后端


          微信登录服务(code → openid)
与 Telegram、微信等平台不同,小程序不通过 Webhook 接收消息,而是主动调用后端 HTTP API 发送消息和获取响应。

环境变量配置

MINIAPP_APP_ID
string
required
微信小程序的 App ID
MINIAPP_APP_SECRET
string
required
微信小程序的 App Secret
MINIAPP_SUBSCRIBE_TEMPLATE_ID
string
订阅消息模板 ID,用于日程提醒等场景的消息推送
MINIAPP_APP_ID=wx1234567890abcdef
MINIAPP_APP_SECRET=your-app-secret
MINIAPP_SUBSCRIBE_TEMPLATE_ID=your-template-id

认证流程

小程序使用微信登录 + JWT Token 认证:
1

获取登录凭证

小程序调用 wx.login() 获取临时登录凭证 code
2

后端换取 OpenID

code 发送到 PAI 后端,后端调用微信 code2Session 接口换取用户 openidsession_key
3

签发 JWT

后端验证成功后,为该用户签发 JWT Token
4

后续请求鉴权

小程序在后续所有请求的 Header 中携带 JWT Token 进行身份认证
wx.login() → code → PAI 后端 → 微信 code2Session → openid


                              签发 JWT Token → 小程序存储并使用

页面结构

小程序包含以下核心页面:
页面路径说明
首页/pages/home功能入口和快捷操作
对话/pages/chatAI 对话界面,支持文本和图片
日历/pages/calendar日程管理和提醒查看
记账/pages/ledger收支记录和统计
登录/pages/login微信登录页
个人中心/pages/profile用户设置和信息管理

订阅消息通知

小程序支持通过微信订阅消息实现日程提醒等推送功能:
1

配置模板

在微信公众平台配置订阅消息模板,获取模板 ID
2

用户授权

在小程序中引导用户点击授权订阅消息(每次触发需用户主动同意)
3

后端推送

当日程到期时,PAI 后端调用微信订阅消息 API 向用户推送提醒
微信订阅消息需要用户主动授权,且每次授权仅允许发送一条消息。建议在创建日程时引导用户完成授权。

通信方式

HTTP API

小程序的主要通信方式,通过 POST 请求发送消息和获取响应:
POST /api/chat/send
Authorization: Bearer <jwt-token>
Content-Type: application/json

{
  "content": "帮我记一笔今天午餐花了 35 元",
  "image_urls": []
}

WebSocket(可选)

可通过 WebSocket 实现实时消息推送和流式响应,提升用户体验。

功能支持

功能支持说明
文本对话完整 AI 对话能力
图片识别支持发送图片进行多模态处理
记账自然语言记账和查询
日程创建和管理日程提醒
订阅通知日程到期自动推送