1. 项目背景与核心价值
作为一名同时养了三只猫的资深程序员,我深知宠物主人在出差或旅行时面临的困扰。去年春节回老家时,我不得不将猫咪寄养在宠物店,结果接回来后发现其中一只出现了严重的应激反应。这次经历让我萌生了开发Pet Topia的想法——一个能提供专业上门喂养服务,同时实时监控宠物健康状况的智能平台。
Pet Topia的创新点在于将传统上门服务与物联网、AI技术深度结合。通过智能项圈采集的生理数据,配合计算机视觉分析的宠物行为识别,我们能够比主人更早发现潜在健康问题。平台上线半年内,已成功预警了17例早期疾病,包括3例需要立即就医的紧急情况。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 系统架构设计
2.1 整体技术栈选型
选择Flutter作为前端框架经过了严格验证。我们对比了React Native的性能数据:在华为P40 Pro上,Flutter的列表滚动帧率稳定在58-60fps,而RN平均只有45fps。这对需要实时展示健康曲线图的场景至关重要。
后端采用Spring Boot + MySQL的组合主要基于以下考量:
- 订单服务需要ACID事务保证(如:服务者接单后库存立即锁定)
- 健康数据查询涉及复杂联表(宠物档案表JOIN健康记录表JOIN服务评价表)
- 团队有丰富的Java微服务治理经验
AI服务独立部署的决策来自实际压力测试:当并发请求超过500QPS时,与主服务耦合的Python进程成为性能瓶颈。最终我们使用FastAPI构建了专用容器,通过gRPC与Java服务通信。
2.2 核心数据流设计
智能项圈的数据采集流程经过多次优化:
- BLE广播间隔从默认1s调整为300ms(平衡功耗与实时性)
- 手机端采用环形缓冲区存储未上传数据(应对网络抖动)
- 服务端使用Kafka做消息队列削峰(实测可承受10万级/分钟的数据量)
python复制# 健康数据预处理关键代码
def process_raw_data(raw_bytes):
# 解析BLE广播包
temp = int.from_bytes(raw_bytes[0:2], 'big') / 10.0 # 体温
hr = raw_bytes[2] # 心率
motion = struct.unpack('f', raw_b
