微信小程序
PAI 提供原生微信小程序客户端,用户可通过小程序与 AI 进行对话,并使用日历、记账等功能。小程序通过 HTTP API 与后端通信,可选配 WebSocket 实现实时消息推送。
架构说明
微信小程序 ←→ HTTP API / WebSocket ←→ PAI 后端
│
▼
微信登录服务(code → openid)
与 Telegram、微信等平台不同,小程序不通过 Webhook 接收消息,而是主动调用后端 HTTP API 发送消息和获取响应。
环境变量配置
MINIAPP_SUBSCRIBE_TEMPLATE_ID
订阅消息模板 ID,用于日程提醒等场景的消息推送
MINIAPP_APP_ID=wx1234567890abcdef
MINIAPP_APP_SECRET=your-app-secret
MINIAPP_SUBSCRIBE_TEMPLATE_ID=your-template-id
认证流程
小程序使用微信登录 + JWT Token 认证:
获取登录凭证
小程序调用 wx.login() 获取临时登录凭证 code
后端换取 OpenID
将 code 发送到 PAI 后端,后端调用微信 code2Session 接口换取用户 openid 和 session_key
签发 JWT
后端验证成功后,为该用户签发 JWT Token
后续请求鉴权
小程序在后续所有请求的 Header 中携带 JWT Token 进行身份认证
wx.login() → code → PAI 后端 → 微信 code2Session → openid
│
▼
签发 JWT Token → 小程序存储并使用
页面结构
小程序包含以下核心页面:
| 页面 | 路径 | 说明 |
|---|
| 首页 | /pages/home | 功能入口和快捷操作 |
| 对话 | /pages/chat | AI 对话界面,支持文本和图片 |
| 日历 | /pages/calendar | 日程管理和提醒查看 |
| 记账 | /pages/ledger | 收支记录和统计 |
| 登录 | /pages/login | 微信登录页 |
| 个人中心 | /pages/profile | 用户设置和信息管理 |
订阅消息通知
小程序支持通过微信订阅消息实现日程提醒等推送功能:
配置模板
在微信公众平台配置订阅消息模板,获取模板 ID
用户授权
在小程序中引导用户点击授权订阅消息(每次触发需用户主动同意)
后端推送
当日程到期时,PAI 后端调用微信订阅消息 API 向用户推送提醒
微信订阅消息需要用户主动授权,且每次授权仅允许发送一条消息。建议在创建日程时引导用户完成授权。
通信方式
HTTP API
小程序的主要通信方式,通过 POST 请求发送消息和获取响应:
POST /api/chat/send
Authorization: Bearer <jwt-token>
Content-Type: application/json
{
"content": "帮我记一笔今天午餐花了 35 元",
"image_urls": []
}
WebSocket(可选)
可通过 WebSocket 实现实时消息推送和流式响应,提升用户体验。
功能支持
| 功能 | 支持 | 说明 |
|---|
| 文本对话 | ✅ | 完整 AI 对话能力 |
| 图片识别 | ✅ | 支持发送图片进行多模态处理 |
| 记账 | ✅ | 自然语言记账和查询 |
| 日程 | ✅ | 创建和管理日程提醒 |
| 订阅通知 | ✅ | 日程到期自动推送 |