跳转至

系统架构总览

1. 架构图

系统架构图

源文件:backend-data-pipeline.drawio(用 draw.io 打开编辑)

1.1 图例

节点颜色

属性 颜色 对应组件
外部服务 蓝色 RingCentral API、Lark Suite / Gmail、Deepgram、Amazon Bedrock
自有代码(部署在 AWS) 橙色 + 绿色粗边框 所有 Lambda 函数、Prompt 配置文件 —— 代码存放在 GitHub,通过 CDK 部署到 AWS 运行
自有代码(未部署到 AWS) 橙色(无绿边) studio-website-monorepo 的 apps/web(部署在 Cloudflare)
共享库 灰色 callytics-common
AWS 托管服务 绿色 / 青色 DynamoDB(绿色圆柱)、SQS(绿色长方体)、S3(青色圆柱)
文档 蓝灰色 docs

连线颜色

数据流 颜色 路径
通话语音流 浅蓝色粗实线 RingCentral → Webhook接收 → SQS队列 → 下载录音 → S3
AI 分析流 深蓝色粗实线 Deepgram转录 → SQS → 结果处理 → Bedrock AI分析 → DynamoDB
修复管道 紫色线 每日凌晨检测遗漏通话 → 修复任务队列 → 修复Worker → 注入回主队列重新处理
SMS 数据流 品红色粗实线 RingCentral → apps/api → SMS缓存
线索数据流 绿色粗实线 邮箱 → lead-tracking → 线索数据库
应用层查询 黑色粗实线 数据库/S3 → apps/api → apps/web
依赖/配置 灰色虚线 服务间引用、OAuth认证、Prompt配置、Lambda调用

2. 四条数据线

系统有四条并行的数据线路

2.1 线路一:通话分析(主动推送) 浅蓝色 + 深蓝色

对应图例:通话语音流 浅蓝色)+ AI 分析流 深蓝色)

客户打电话 → RingCentral 记录 → Webhook 通知
→ ringcentralSubscriptionService 贴标签
→ SQS 队列(等5分钟)
→ callytics-infrastructure 转录 + AI 分析
→ DynamoDB 存储结果
→ apps/api 查询 → apps/web 展示

2.2 线路二:修复管道(定时检测) 紫色

对应图例:修复管道 紫色)

每日凌晨定时触发
→ 检测前一天遗漏/失败的通话记录
→ 生成修复任务 → 修复任务队列
→ 修复 Worker 逐条处理
→ 注入回主队列(线路一)重新转录 + AI 分析
→ 补全 DynamoDB 中缺失的分析结果

2.3 线路三:线索采集(定时轮询) 绿色

对应图例:线索数据流 绿色)

潜在客户在健身房网站填表
→ 系统发通知邮件到指定邮箱
→ lead-tracking 每5分钟轮询邮箱(IMAP)
→ 解析邮件提取:姓名、电话、邮箱、预约时间
→ DynamoDB LeadTracking-v2 表存储
→ apps/api 按电话号码关联通话记录
→ apps/web 展示线索跟踪

2.4 线路四:SMS 短信(按需拉取) 品红色

对应图例:SMS 数据流 品红色)

客户发短信到 RingCentral 号码
→ 短信存储在 RingCentral 云端
→ 用户打开消息页面时触发拉取
→ apps/api 调用 RingCentral /message-store API
→ 三层缓存:内存(5分钟) → DynamoDB studio-Cache(10分钟) → API
→ 按 conversationId 分组成对话线程
→ apps/web 展示(聊天气泡、已读/未读、MMS图片)

四条线路在 studio-monorepo 汇合——后端通过电话号码把"谁打了电话"、"哪些通话被修复补全了"、"谁是网站来的线索"、"谁发过短信"关联起来,帮助健身房全面了解每个客户的互动记录。

3. 仓库说明

仓库 角色 说明
studio-website-monorepo 前端 + 后端 Turborepo monorepo——apps/web 是用户看到的网页,apps/api 是后端服务,负责查询数据库并关联通话与线索
callytics-infrastructure AI 工厂 录音进去,分析结果出来。Prompt 文件在这里驱动 AI 分析
ringcentralSubscriptionService 接线员 接收 RingCentral 电话通知,贴标签后丢进队列
lead-tracking 线索采集员 每5分钟轮询邮箱,解析潜在客户表单邮件,提取姓名/电话/预约信息存入数据库
callytics-common 公共工具箱 错误处理、日志、重试等公共能力,被后端和 AI 工厂共同依赖
docs 内部知识库 产品设计、架构文档、业务背景知识

4. 技术栈总览

层级 技术
前端 Vue 3 + Vite + Tailwind CSS + shadcn-vue + ECharts
前端部署 Cloudflare Pages
后端 Hono + TypeScript + AWS Lambda
数据库 DynamoDB (10+ 张表)
存储 S3 (录音 + 配置)
消息队列 SQS
AI 分析 AWS Bedrock (Kimi K2 / Claude)
语音转录 Deepgram
邮件采集 IMAP (Lark Suite) + Google Apps Script
认证 AWS Cognito + RingCentral OAuth
基础设施 AWS CDK (TypeScript)
监控 CloudWatch + Sentry + Discord/飞书通知

5. 外部依赖

服务 用途
RingCentral 电话数据来源(通话记录、录音、SMS)
AWS 全套云服务(Lambda、DynamoDB、S3、SQS、Cognito、Bedrock)
Deepgram 语音转文字
Lark Suite 邮箱服务(线索邮件接收)
Cloudflare 前端托管 + 文档托管
Sentry 错误追踪
Discord / 飞书 告警通知