# 项目研发基线 V0.1 ## 已冻结范围 - 自建云端负责设备身份、通话控制、家庭与长者业务、授权、数据治理、Agent编排和运行维护。 - 实时语音由设备、火山引擎RTC和豆包语音智能体直接传输,自建应用服务器不转发、不落盘。 - 录音在授权有效时由设备直接上传S3兼容对象存储,应用接口只签发短期授权并核验结果。 - PostgreSQL保存最终业务事实;Redis只保存可重建在线状态、租约、限流、幂等结果和短期缓存。 - 机器生成的故事和事实必须经过家庭用户核对,确认后才能成为正式记忆。 ## 技术栈 | 层次 | 首版选择 | |---|---| | 后端 | Go模块化单体,`api`、`callbacks`、`worker`独立进程 | | 前端 | React、TypeScript、Vite | | 业务数据库 | PostgreSQL 16与pgvector | | 缓存 | Redis 7 | | 对象存储 | S3兼容存储,本地使用MinIO | | 身份 | OIDC/OAuth 2.1;本地先使用模拟身份,接入方式保持可替换 | | 接口 | REST/JSON、OpenAPI 3.1;状态通知使用SSE | | 部署 | Docker、Docker Compose;后续接入环境流水线 | ## 第一批外部待确认项 以下内容不会阻止本地工程和模拟闭环开发,但会阻止真实设备及真实供应商验收: 1. 硬件设备身份材料、绑定码规则、固件接口和RTC能力。 2. 火山引擎RTC与豆包真实测试账号、区域、配额、回调签名和错误码。 3. 正式OIDC提供方、Claim映射、会话策略和多因素认证要求。 4. 生产对象存储、KMS、域名、证书、网络和数据驻留要求。 5. 授权文本、数据保留期、删除例外和运营审计规则的业务与法务确认。 ## 配置和安全约定 - 仓库只提交`.env.example`,不提交`.env`、Token、证书、长期密钥和真实个人数据。 - 所有对外资源编号使用不可猜测标识;内部数据库标识不得作为可枚举接口编号。 - 请求使用`X-Request-Id`关联;修改类接口逐步接入`Idempotency-Key`。 - 数据库事务中不调用外部网络服务,外部副作用使用outbox衔接。