|
#!/bin/bash |
|
|
|
|
|
|
|
|
|
set -e |
|
|
|
echo "π Setting up Cyber-LLM project..." |
|
|
|
|
|
python_version=$(python3 --version 2>&1 | cut -d' ' -f2) |
|
echo "π Python version: $python_version" |
|
|
|
|
|
if [ ! -d "venv" ]; then |
|
echo "π¦ Creating virtual environment..." |
|
python3 -m venv venv |
|
fi |
|
|
|
|
|
echo "π Activating virtual environment..." |
|
source venv/bin/activate |
|
|
|
|
|
echo "β¬οΈ Upgrading pip..." |
|
pip install --upgrade pip |
|
|
|
|
|
echo "π Installing requirements..." |
|
pip install -r requirements.txt |
|
|
|
|
|
echo "π Creating project directories..." |
|
mkdir -p logs |
|
mkdir -p outputs |
|
mkdir -p models |
|
chmod +x src/deployment/cli/cyber_cli.py |
|
|
|
|
|
if command -v dvc &> /dev/null; then |
|
echo "π Initializing DVC..." |
|
dvc init --no-scm 2>/dev/null || echo "DVC already initialized" |
|
fi |
|
|
|
|
|
if command -v pre-commit &> /dev/null; then |
|
echo "π§ Setting up pre-commit hooks..." |
|
pre-commit install 2>/dev/null || echo "Pre-commit hooks setup skipped" |
|
fi |
|
|
|
|
|
echo "π₯ Setting up sample data..." |
|
mkdir -p src/data/raw/samples |
|
echo "Sample cybersecurity dataset placeholder" > src/data/raw/samples/sample.txt |
|
|
|
|
|
echo "βοΈ Creating configuration files..." |
|
cat > configs/training_config.yaml << 'EOF' |
|
|
|
model: |
|
base_model: "microsoft/Phi-3-mini-4k-instruct" |
|
max_length: 2048 |
|
|
|
lora: |
|
r: 16 |
|
lora_alpha: 32 |
|
lora_dropout: 0.1 |
|
|
|
training: |
|
batch_size: 4 |
|
learning_rate: 2e-4 |
|
num_epochs: 3 |
|
|
|
mlops: |
|
use_wandb: false |
|
use_mlflow: false |
|
experiment_name: "cyber-llm-local" |
|
EOF |
|
|
|
|
|
echo "π§ͺ Running initial tests..." |
|
python -c " |
|
import sys |
|
print('β
Python import test passed') |
|
|
|
try: |
|
import torch |
|
print(f'β
PyTorch {torch.__version__} available') |
|
print(f' CUDA available: {torch.cuda.is_available()}') |
|
except ImportError: |
|
print('β οΈ PyTorch not available - install manually if needed') |
|
|
|
try: |
|
import transformers |
|
print(f'β
Transformers {transformers.__version__} available') |
|
except ImportError: |
|
print('β οΈ Transformers not available - install manually if needed') |
|
" |
|
|
|
|
|
echo "π Creating sample workflow files..." |
|
mkdir -p src/orchestration/workflows |
|
cat > src/orchestration/workflows/basic_red_team.yaml << 'EOF' |
|
name: "Basic Red Team Assessment" |
|
description: "Standard red team workflow" |
|
phases: |
|
- name: "reconnaissance" |
|
agents: ["recon"] |
|
parallel: false |
|
safety_check: true |
|
human_approval: true |
|
- name: "initial_access" |
|
agents: ["c2"] |
|
parallel: false |
|
safety_check: true |
|
human_approval: true |
|
depends_on: ["reconnaissance"] |
|
EOF |
|
|
|
echo "" |
|
echo "β
Cyber-LLM setup completed successfully!" |
|
echo "" |
|
echo "π Next steps:" |
|
echo " 1. Activate virtual environment: source venv/bin/activate" |
|
echo " 2. Run CLI: python src/deployment/cli/cyber_cli.py --help" |
|
echo " 3. Train adapters: python src/training/train.py --help" |
|
echo " 4. Check README.md for detailed instructions" |
|
echo "" |
|
echo "π For red team operations, ensure you have proper authorization!" |
|
echo "π§ Questions? Contact: [email protected]" |
|
echo "" |
|
|