#!/usr/bin/env bash
# 一键部署 LLM + Embedding + Reranker
# 按照显存占用从大到小的顺序启动

set -euo pipefail

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"

echo "=== A100 多模型部署 ==="
echo "启动顺序: LLM → Embedding → Reranker"
echo ""

# 1. 启动 LLM
echo "[1/3] 启动 Qwen3.5-27B-AWQ (vLLM)..."
"${SCRIPT_DIR}/start_vllm.sh"
if [[ $? -ne 0 ]]; then
  echo "❌ LLM 启动失败"
  exit 1
fi
echo "✓ LLM 启动成功"
echo ""

# 等待 LLM 完全加载
echo "等待 LLM 完全加载（预计 30-60 秒）..."
sleep 30

# 2. 启动 Embedding
echo "[2/3] 启动 Qwen3-Embedding-8B..."
"${SCRIPT_DIR}/start_embedding.sh"
if [[ $? -ne 0 ]]; then
  echo "❌ Embedding 启动失败"
  exit 1
fi
echo "✓ Embedding 启动成功"
echo ""

# 3. 启动 Reranker
echo "[3/3] 启动 Qwen3-Reranker-8B..."
"${SCRIPT_DIR}/start_reranker.sh"
if [[ $? -ne 0 ]]; then
  echo "❌ Reranker 启动失败"
  exit 1
fi
echo "✓ Reranker 启动成功"
echo ""

# 显示状态
echo "=== 部署完成 ==="
echo ""
nvidia-smi --query-gpu=memory.used,memory.total --format=csv,noheader
echo ""
echo "服务端点:"
echo "  LLM:       http://localhost:8100/v1/chat/completions"
echo "  Embedding: http://localhost:8200/v1/embeddings"
echo "  Reranker:  http://localhost:8300/v1/rerank"
