#!/bin/bash
# start-server.sh - 启动 llama.cpp 推理服务 (Intel Mac 8GB 内存优化)

MODEL_DIR="${HOME}/.llama/models"
MODEL_NAME="qwen3-1.8b-q4_k_m.gguf"
MODEL_PATH="$MODEL_DIR/$MODEL_NAME"

# 检查模型是否存在
if [ ! -f "$MODEL_PATH" ]; then
    echo "❌ 模型未找到: $MODEL_PATH"
    echo "请先运行: ./download-model.sh"
    exit 1
fi

echo "=== 启动 llama.cpp 推理服务 ==="
echo "模型: $MODEL_NAME"
echo "内存优化: 针对 Intel Mac 8GB 优化"
echo ""

# Intel CPU + 8GB 内存优化参数
# -t 4: 使用4线程 (你的CPU是4核8线程，留一些给系统)
# -c 4096: 上下文长度 4K (省内存)
# -np 1: 单并发 (避免内存爆炸)
# --mlock: 锁定内存防止 swap (可选，如果你的内存够)
# --host 0.0.0.0: 允许局域网访问 (可选)

llama-server \
    --model "$MODEL_PATH" \
    --threads 4 \
    --ctx-size 4096 \
    --parallel 1 \
    --batch-size 512 \
    --timeout 300 \
    --host 127.0.0.1 \
    --port 8080 \
    --api-key "local-llm-key" \
    --verbose \
    "$@"

# 如果 llama-server 找不到，尝试 llama-cli
if [ $? -ne 0 ]; then
    echo ""
    echo "⚠️ llama-server 未找到，尝试 llama-cli 交互模式..."
    echo "(注意: llama-cli 不提供 API 服务，仅用于测试)"
    llama-cli \
        --model "$MODEL_PATH" \
        --threads 4 \
        --ctx-size 4096 \
        --interactive \
        --verbose-prompt
fi
