#!/bin/bash
# LiveKit Voice AI - 启动脚本（无TTS版本）

set -e

echo "=== LiveKit Voice AI 启动 ==="
echo ""

# 检查 .env 文件
if [ ! -f ".env" ]; then
    echo "⚠️  未找到 .env 文件，正在创建..."
    cp .env.example .env
    echo ""
    echo "请编辑 .env 文件并填写以下配置:"
    echo "  - LIVEKIT_API_KEY"
    echo "  - LIVEKIT_API_SECRET"
    echo "  - HUGGINGFACE_HUB_TOKEN（可选，用于下载 gated 模型）"
    echo "  - OPENAI_BASE_URL / OPENAI_API_KEY"
    echo ""
    echo "如需下载模型，请先运行:"
    echo "  ./scripts/download_models.sh"
    echo ""
fi

# 检查 Docker
if ! command -v docker &> /dev/null; then
    echo "❌ Docker 未安装，请先安装 Docker Desktop"
    exit 1
fi

if ! docker info &> /dev/null; then
    echo "❌ Docker 服务未运行，请先启动 Docker Desktop"
    exit 1
fi

echo "✅ Docker 已就绪"
echo ""

# 启动服务（排除 IndexTTS）
echo "🚀 启动所有服务（不含 TTS）..."
docker-compose up -d

echo ""
echo "=== 服务状态 ==="
docker-compose ps
echo ""

# 等待服务就绪
echo "⏳ 等待服务启动..."
sleep 10

# 健康检查
echo ""
echo "=== 健康检查 ==="
for service in livekit-server funasr hermes agent-worker; do
    status=$(docker-compose ps $service 2>/dev/null | grep "Up" || echo "Not ready")
    echo "  $service: $status"
done

# 跳过 TTS 和 Diarization
echo "  index-tts: ⏸ 已禁用（内存不足）"
echo "  pyannote:  ⏸ 已禁用（可选）"
echo ""
echo "=== 访问地址 ==="
echo "  LiveKit Server:    http://localhost:7880"
echo "  FunASR STT:        http://localhost:8080"
echo "  Hermes API:        http://localhost:8642"
echo "  Prometheus:        http://localhost:9090"
echo "  Grafana:           http://localhost:3000"
echo ""
echo "=== 下一步 ==="
echo "  1. 查看日志: docker-compose logs -f"
echo "  2. 测试对话: 用 LiveKit Live View"
echo "  3. 启用 TTS: 在 docker-compose.yml 中取消 index-tts 注释"
echo ""
