跳转到主要内容

安装方法

选择最适合您需求的安装方法:
无论是开发环境还是生产环境,Docker 部署都是推荐的方法。

第 1 步:安装 Docker

下载并安装 Docker Desktop for Mac
brew install --cask docker
从应用程序文件夹启动 Docker Desktop。

第 2 步:克隆仓库

git clone https://github.com/thetahealth/mirobody-health.git
cd mirobody-health

第 3 步:配置环境

创建配置文件:
cp .env.example .env
cp config.yaml config.localdb.yaml
编辑 .env 设置您的环境:
ENV=localdb
config.localdb.yaml 中添加至少一个 LLM API 密钥:
# ============ LLM API 密钥 (至少需要一个) ============
GOOGLE_API_KEY: ''      # 用于 Gemini 模型
OPENAI_API_KEY: ''      # 用于 GPT 模型  
OPENROUTER_API_KEY: ''  # 用于 Claude、DeepSeek 等模型

# ============ Agent 配置 ============
MCP_TOOL_DIRS:
  - mirobody/pub/tools
  - mirobody/pub/tools_health

MCP_RESOURCE_DIRS:
  - mirobody/pub/resources

AGENT_DIRS:
  - mirobody/pub/agents

第 4 步:部署

./run.sh
部署脚本将构建并启动所有必需的服务。

验证安装

安装完成后,验证一切运行正常:
1

检查服务健康状况

curl http://localhost:18080/health
预期响应:
{
  "status": "healthy",
  "version": "1.0.1",
  "services": {
    "database": "connected",
    "redis": "connected"
  }
}
2

列出可用提供商

curl http://localhost:18080/api/v1/pulse/providers
应返回可用健康提供商的列表。
3

检查日志

查看应用程序日志以确保没有错误:
# Docker 部署
docker-compose logs -f backend

# 直接安装
# 日志将显示在您运行 main.py 的终端中

安装后设置

要启用健康设备集成,您需要从每个提供商处获取 OAuth 凭据。有关获取和设置以下提供商的 OAuth 凭据的详细说明,请参阅配置指南
  • Garmin Connect
  • Whoop
  • 自定义提供商
要启用 AI 功能,请在 config.localdb.yaml 中添加至少一个 API 密钥:
# ============ LLM API 密钥 (至少需要一个) ============
GOOGLE_API_KEY: ''      # 用于 Gemini 模型
OPENAI_API_KEY: ''      # 用于 GPT 模型
OPENROUTER_API_KEY: ''  # 用于 Claude、DeepSeek 等模型

# ============ Agent 配置 ============
MCP_TOOL_DIRS:
  - mirobody/pub/tools
  - mirobody/pub/tools_health

MCP_RESOURCE_DIRS:
  - mirobody/pub/resources

AGENT_DIRS:
  - mirobody/pub/agents
Mirobody Health 包含两种 Agent 类型:
  • DeepAgent (基于 LangChain): 最适合复杂任务、文件操作、多步骤规划
  • BaselineAgent (原生 Gemini): 最适合简单对话、轻量级 MCP 集成
有关配置详情,请参阅 工具概览
对于生产环境,请设置安全的加密密钥:
DATABASE_DECRYPTION_KEY: '您的_32_位加密密钥'
JWT_KEY: '您的_安全_JWT_密钥'
在生产环境中使用强随机生成的密钥。切勿将这些密钥提交到版本控制系统中。
配置兼容 S3 的存储用于数据备份:
S3_KEY: '您的访问密钥'
S3_TOKEN: '您的私钥'
S3_REGION: 'us-east-1'
S3_BUCKET: '您的存储桶名称'

目录结构

安装后,您的目录结构将如下所示:
mirobody-health/
├── mirobody/                  # 主应用程序包
│   ├── chat/                 # 聊天和 Agent 服务
│   ├── mcp/                  # MCP 协议实现
│   ├── pulse/                # 健康数据提供商
│   │   ├── theta/           # OAuth 提供商 (Garmin, Whoop 等)
│   │   ├── apple/           # Apple 健康平台
│   │   ├── core/            # 核心健康数据服务
│   │   └── file_parser/     # 文件处理程序
│   ├── pub/                  # 公共工具和 Agent
│   │   ├── tools/           # 通用 MCP 工具
│   │   ├── tools_health/    # 健康专用 MCP 工具
│   │   ├── resources/       # MCP 资源
│   │   └── agents/          # Agent 实现
│   ├── server/               # HTTP 服务器
│   ├── user/                 # 用户身份验证
│   └── utils/                # 实用程序
├── database/                  # 数据库模式和迁移
│   └── resource/             # SQL 初始化文件
├── image/                     # Logo 和品牌资产
├── compose.yaml              # Docker Compose 配置
├── config.yaml               # 基础配置 (不可更改)
├── config.localdb.yaml       # 您的环境配置
├── .env                      # 环境变量
├── main.py                   # 应用程序入口
├── requirements.txt          # Python 依赖
├── package.json              # Node.js 依赖
├── run.sh                    # 部署脚本
└── README.md                 # 文档

安装问题排查

问题: Docker 命令因权限错误而失败。解决方案:
# Linux: 将用户添加到 docker 组
sudo usermod -aG docker $USER

# 注销并重新登录
newgrp docker
问题: 端口 18080 已被占用。解决方案: 在 config.localdb.yaml 中更改端口:
HTTP_PORT: 18081  # 使用任何可用端口
问题: 无法连接到 PostgreSQL。解决方案:
  1. 验证 PostgreSQL 正在运行:
    docker-compose ps postgres
    
  2. 检查 config.localdb.yaml 中的连接设置:
    PG_HOST: db  # Docker 环境使用 'db',本地安装使用 'localhost'
    PG_PORT: 5432
    PG_USER: holistic_user
    PG_DBNAME: holistic_db
    
  3. 检查数据库日志:
    docker-compose logs postgres
    
问题: Python 3.12 不可用。解决方案:
brew install python@3.12
问题: 运行应用程序时出现 ModuleNotFoundError解决方案:
# 确保安装了所有依赖项
pip install -r requirements.txt

# 以开发模式安装
pip install -e .

卸载

删除所有容器、卷和镜像:
# 停止并删除容器
docker-compose down

# 删除卷 (警告: 这将删除所有数据)
docker-compose down -v

# 删除镜像
docker-compose down --rmi all

下一步