File size: 2,697 Bytes
6da6419
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#!/bin/bash
# Setup script for DFlash-MLX-Universal using `uv`
# Works on macOS with Apple Silicon (M1/M2/M3/M4)

set -euo pipefail

echo "=========================================="
echo "DFlash-MLX-Universal UV Setup"
echo "=========================================="

# ── 1. Check if uv is installed ─────────────────────────────────────────────
if ! command -v uv &> /dev/null; then
    echo "❌ uv is not installed. Install it first:"
    echo "   brew install uv"
    echo "   # or: curl -LsSf https://astral.sh/uv/install.sh | sh"
    exit 1
fi

echo "βœ… uv found: $(uv --version)"

# ── 2. Create virtual environment ───────────────────────────────────────────
echo ""
echo "πŸ“¦ Creating virtual environment..."
uv venv

# ── 3. Install package with all extras ────────────────────────────────────
echo ""
echo "πŸ“₯ Installing dflash-mlx-universal with dev + server extras..."
uv pip install -e ".[dev,server]"

# ── 4. Lock dependencies ────────────────────────────────────────────────────
echo ""
echo "πŸ”’ Locking dependencies (this may take a moment)..."
uv lock

# ── 5. Quick verification ───────────────────────────────────────────────────
echo ""
echo "πŸ§ͺ Running quick verification..."
uv run python -c "import dflash_mlx; print(f'βœ… dflash_mlx version: {dflash_mlx.__version__}')"
uv run python -c "import mlx; print(f'βœ… mlx version: {mlx.__version__}')"
uv run python -c "import mlx_lm; print(f'βœ… mlx-lm installed')"

# ── 6. Print usage summary ──────────────────────────────────────────────────
echo ""
echo "=========================================="
echo "βœ… Setup complete!"
echo "=========================================="
echo ""
echo "Quick start:"
echo "  uv run python examples/qwen3_4b_demo.py"
echo ""
echo "Convert a drafter:"
echo "  uv run python -m dflash_mlx.convert --model z-lab/Qwen3-4B-DFlash-b16 --output ./drafter"
echo ""
echo "Run tests:"
echo "  uv run pytest tests/ -v"
echo ""
echo "Start server:"
echo "  uv run python -m dflash_mlx.serve --target mlx-community/Qwen3-4B-bf16 --draft ./drafter --port 8000"
echo ""
echo "For full docs see USAGE_GUIDE.md"