IntelliHealthCare(智诊康养)是一个面向长者、家属与机构运营团队的智慧康养平台。仓库采用 npm workspaces 管理的 Monorepo 结构,统一维护用户端、后台端、NestJS 后端以及共享脚本与文档,目标是把健康档案、健康监测、服务预约、内容社区和智能体能力落到同一套业务底座中。
| 组成 | 路径 | 说明 |
|---|---|---|
| 用户端 | apps/user-web |
面向长者与家属的统一 Web 应用 |
| 后台端 | apps/admin-web |
面向运营、医生、护理、机构管理人员的后台 |
| 后端 | apps/backend |
基于 NestJS + Prisma + PostgreSQL + Redis/BullMQ + MinIO 的统一业务服务 |
| 共享运行时 | packages/page-core |
前端页面清单、页面元信息和共享基础能力 |
| 脚本与工具 | scripts |
本地开发、页面脚手架、后端冒烟回归等脚本 |
| 文档 | docs |
架构、开发、API、Agent、RAG 等说明文档 |
- 统一用户侧入口:老人和家属共用一套用户端,通过家庭绑定、授权范围和页面差异区分角色。
- 模块化后端:认证、用户、家庭、健康档案、健康指标、服务目录、订单、支付、报告、消息、内容、社区、后台和智能体能力统一落在一个 NestJS 服务中。
- 多智能体运行时:后端内置 Hermes 受控多智能体宿主,已接入任务调度、工具调用、追踪、人工复核和审计。
- RAG 检索闭环:已具备知识库构建、增量更新、真实 embedding 接入、App 侧检索、内部检索与评测回归能力。
- 本地联调友好:Swagger、种子数据、数据库自动回退、MinIO 文件上传和冒烟脚本均已内置。
| 层级 | 技术方案 |
|---|---|
| 前端 | Vue 3、TypeScript、Vite |
| 后端框架 | NestJS、TypeScript |
| 数据访问 | Prisma、PostgreSQL |
| 缓存与队列 | Redis、BullMQ、ioredis |
| 对象存储 | MinIO(S3-compatible) |
| 接口契约 | Swagger / OpenAPI |
| 校验与配置 | class-validator、class-transformer、zod |
| AI 能力 | LLM Gateway、Embedding Gateway、RAG、Agent Orchestration |
.
├── apps/
│ ├── user-web/
│ ├── admin-web/
│ └── backend/
├── packages/
│ └── page-core/
├── scripts/
├── docs/
├── docker-compose.backend.yml
└── package.json
- Node.js
>= 20 - npm
>= 10 - Docker 与 Docker Compose
npm installcp apps/backend/.env.example apps/backend/.envdocker compose -f docker-compose.backend.yml up -d默认端口:
- PostgreSQL:
5432 - Redis:
6379 - MinIO API:
9000 - MinIO Console:
9001
说明:
- 镜像默认通过
docker.m.daocloud.io拉取,可用IHC_IMAGE_REGISTRY=docker.io切回官方源。 - 开发环境下若
DATABASE_URL不可达,后端支持自动回退到嵌入式 PostgreSQL,并可自动执行 migration/seed。
npm run db:migrate:backend
npm run db:seed:backendnpm run dev:user
npm run dev:admin
npm run dev:backend如需让后端常驻在独立 tmux 会话中:
npm run dev:backend:tmux
npm run dev:backend:tmux:attach如果希望后端在联调期间保持稳定,不随代码改动自动重启,可改用编译后常驻模式:
npm run serve:backend如需让稳定模式在独立 tmux 会话中常驻:
npm run serve:backend:tmux
npm run serve:backend:tmux:attach说明:
- 默认创建
ihc-backend会话。 backend窗口会先执行docker compose -f docker-compose.backend.yml up -d,再启动npm run dev:backend。infra窗口会展示依赖容器状态。npm run dev:backend:tmux:stop只关闭tmux会话,不会自动执行docker compose down。serve:backend/serve:backend:tmux会先编译后端,再运行dist/main.js,只有手动重启才会更新代码。
默认访问地址:
- 用户端:
http://server.mctown.online:5173 - 后台端:
http://server.mctown.online:5174 - 后端 API:
http://server.mctown.online:8190/api/v1 - Swagger:
http://server.mctown.online:8190/api/v1/docs - 健康检查:
http://server.mctown.online:8190/api/v1/system/health
npm run dev:user
npm run dev:page -- --page home/dashboard
npm run dev:admin
npm run dev:admin:page -- --page dashboard/overviewnpm run check
npm run build按工作区执行:
npm run check:user
npm run check:admin
npm run check:backend
npm run build:user
npm run build:admin
npm run build:backendnpm run db:generate:backend
npm run db:migrate:backend
npm run db:seed:backend
npm run db:build-rag:backend
npm run db:rebuild-rag:backend
npm run db:eval-rag:backendnpm run test:backend
npm run test:backend:unit
npm run test:backend:integration
npm run test:backend:smoke:regressionnpm run create:page -- --group health --page health-data --title "健康数据" --owner "成员A"
npm run create:admin-page -- --group elder --page member-list --title "长者档案" --owner "后台组"后端当前已完成以下能力:
- 统一 API 前缀与通用响应封装:
/api/v1 - 用户端、后台端、公开接口、系统接口、内部智能体接口的分层路由
- JWT 鉴权、RBAC、内部接口来源 IP 与共享密钥校验
- Prisma 数据模型、Redis/BullMQ 队列、MinIO 文件上传
- Hermes 多智能体运行时、RAG 检索、RAG 构建与评测、人工复核与审计日志
后端当前已挂载的主要模块:
systemauthusersfamilyhealth-archivehealth-metricshealth-lifestyleservice-catalogorderspaymentsreportsfilesmessagingcommunitycontentagentsadmin
默认种子账号:
- 家属账号:
13900139000 / 123456 - 长者账号:
13800138000 / 123456 - 后台账号:
13600136000 / 123456
- 提交前至少执行一次
npm run check,后端改动建议补跑npm run test:backend。 - 涉及后端模型、接口、RAG 或智能体能力的修改时,请同步更新
docs/智诊康养后端开发文档.md与docs/backend-api-manual.md。 - 新增页面优先使用脚手架命令,避免遗漏
Page.vue、mock.ts与pages.manifest.json登记。