trip-assistant · trip.jarrich.cn 系统架构

trip-assistant · trip.jarrich.cn 系统架构 由 Archify 生成的架构图。 H5 Web 应用 · Vue3 · Pinia · Leaflet · 架构组件 · 含 /admin 管理台 H5 Web 应用 Vue3 · Pinia · Leaflet 含 /admin 管理台 微信小程序 · uni-app · wx.login · 架构组件 · AI 规划 · 支付入口 微信小程序 uni-app · wx.login AI 规划 · 支付入口 PaySkill 服务 · 微信支付 · 攻略生成 · :8123 · 服务器 hk.jarrich.cn · Ubuntu · pm2 · 源码随仓库 · 脱敏 PaySkill 服务 微信支付 · 攻略生成 · :8123 源码随仓库 · 脱敏 Nginx 网关 · trip.jarrich.cn · TLS · 服务器 hk.jarrich.cn · Ubuntu · pm2 · 同域反代 + 静态 Nginx 网关 trip.jarrich.cn · TLS 同域反代 + 静态 Express 主后端 · REST + Socket.IO · :3100 · 服务器 hk.jarrich.cn · Ubuntu · pm2 · pm2: trip-assistant · v1.3.4 Express 主后端 REST + Socket.IO · :3100 pm2: trip-assistant · v1.3.4 Redis · 127.0.0.1 · 验证码/缓存/在线 · 服务器 hk.jarrich.cn · Ubuntu · pm2 · ioredis Redis 127.0.0.1 · 验证码/缓存/在线 ioredis MongoDB · trip_assistant · 127.0.0.1 · 服务器 hk.jarrich.cn · Ubuntu · pm2 · Mongoose ODM MongoDB trip_assistant · 127.0.0.1 Mongoose ODM DeepSeek · AI 行程规划 · OpenAI 兼容 · 架构组件 DeepSeek AI 行程规划 · OpenAI 兼容 微信开放平台 · openid 登录 · JSAPI 支付 · 架构组件 微信开放平台 openid 登录 · JSAPI 支付 腾讯位置服务 · 地理编码 · POI · 驾车路线 · 架构组件 腾讯位置服务 地理编码 · POI · 驾车路线 SMTP 邮件 · 邮箱验证码发信 · 架构组件 SMTP 邮件 邮箱验证码发信 AI 助手 Agent · Skills 接入层 · 架构组件 · 付费 / 免费攻略 AI 助手 Agent Skills 接入层 付费 / 免费攻略 HTTPS · /trip/* HTTPS · /trip-api 反代 /pay-skill · /payskill REST + WS 反代 ODM 读写 验证码·缓存·在线 行程 JSON 生成 code 换 openid 代理地理编码/路线 nodemailer 发信 HTTPS /pay-skill · /payskill 服务器 hk.jarrich.cn · Ubuntu · pm2 图例 前端 后端 数据库 云服务 外部系统

客户端

  • • 外部 AI 助手 Agent:持 Skills(付费 trip-assistant / 免费 trip-guide)代客下单,微信 AI 专属卡支付后经邮件交付
  • • H5 SPA(Vue3 + Pinia + Leaflet)覆盖登录/首页/AI 规划/行程地图/聊天/记账/成员管理
  • • 管理台 /admin 独立路由与 adminToken,与业务 trip_token 完全隔离
  • • uni-app 小程序(微信登录 + 邀请码入团 + AI 规划 + 支付入口)

后端服务

  • • Express 路由模块:auth/trips/chat/location/itinerary/expenses/upload/misc/imgproxy/tmap/ai/admin;Socket.IO /trip-socket 承载实时位置与聊天
  • • payskill 独立服务 :8123:支付门禁(小程序 JSAPI / AI 专属卡 x402 402 支付码)、攻略 HTML+PDF 生成、modifyLeft≤3 次修改、免费异步攻略 /payskill/free-guide 与三层限流
  • • payskill 履约时回环调用 /api/local/create-trip(仅 127.0.0.1)建团,攻略链接写入其订单台账
  • • payskill 与 skills 源码已随仓库版本控制(脱敏,.env 仅以 example 入库)

存储与中间件

  • • MongoDB:User / Trip / Location / Message / Itinerary / Expense / InviteCode 等集合
  • • Redis:邮箱验证码(10 分钟)、限流计数、在线状态与位置缓存
  • • 上传文件落盘 /var/www/trip-assistant/uploads,经 nginx 静态服务

安全边界

  • • JWT 双通道:业务 trip_token 与 adminToken(role=admin)独立校验
  • • 腾讯地图 Key 与 DeepSeek Key 均只存在于服务端,端上经代理访问
  • • payskill 与主后端仅回环互调,公网只暴露 nginx 443

外部集成

  • • DeepSeek(OpenAI 兼容)生成严格 JSON schema 的结构化行程,未配置时前端回退本地模板
  • • 腾讯位置服务 WebService:地理编码 / POI 检索 / 驾车路线,服务端缓存规避配额
  • • 微信:wx.login code 换 openid 登录;JSAPI 支付 + AI 专属卡(WeixinPay-Required 402 支付码)双通道,AI 侧凭支付码经 step4/step7 两次 invoke 履约
  • • SMTP:绑定/换绑邮箱的验证码发信,开发模式支持回传 devCode 联调