jan/autoqa/COMMAND_REFERENCE.md

442 lines
12 KiB
Markdown

# AutoQA Command Reference
📚 Complete reference for all AutoQA command line arguments and options.
## Command Line Arguments
### Basic Syntax
```bash
python main.py [OPTIONS]
```
### Argument Groups
Arguments are organized into logical groups for easier understanding and usage.
## Computer Server Configuration
| Argument | Environment Variable | Default | Description |
|----------|---------------------|---------|-------------|
| `--skip-server-start` | `SKIP_SERVER_START` | `false` | Skip automatic computer server startup |
**Examples:**
```bash
# Auto-start computer server (default)
python main.py
# Use external computer server
python main.py --skip-server-start
# Using environment variable
SKIP_SERVER_START=true python main.py
```
## ReportPortal Configuration
| Argument | Environment Variable | Default | Description |
|----------|---------------------|---------|-------------|
| `--enable-reportportal` | `ENABLE_REPORTPORTAL` | `false` | Enable ReportPortal integration |
| `--rp-endpoint` | `RP_ENDPOINT` | `https://reportportal.menlo.ai` | ReportPortal endpoint URL |
| `--rp-project` | `RP_PROJECT` | `default_personal` | ReportPortal project name |
| `--rp-token` | `RP_TOKEN` | - | ReportPortal API token (required when RP enabled) |
| `--launch-name` | `LAUNCH_NAME` | - | Custom launch name for ReportPortal |
**Examples:**
```bash
# Basic ReportPortal integration
python main.py --enable-reportportal --rp-token "YOUR_TOKEN"
# Full ReportPortal configuration
python main.py \
--enable-reportportal \
--rp-endpoint "https://reportportal.example.com" \
--rp-project "my_project" \
--rp-token "YOUR_TOKEN" \
--launch-name "Custom Test Run"
# Using environment variables
ENABLE_REPORTPORTAL=true RP_TOKEN=secret python main.py
```
## Jan Application Configuration
| Argument | Environment Variable | Default | Description |
|----------|---------------------|---------|-------------|
| `--jan-app-path` | `JAN_APP_PATH` | auto-detected | Path to Jan application executable |
| `--jan-process-name` | `JAN_PROCESS_NAME` | platform-specific | Jan process name for monitoring |
**Platform-specific defaults:**
- **Windows**: `Jan.exe`
- **macOS**: `Jan`
- **Linux**: `Jan-nightly`
**Examples:**
```bash
# Custom Jan app path
python main.py --jan-app-path "C:/Custom/Path/Jan.exe"
# Custom process name
python main.py --jan-process-name "Jan-nightly.exe"
# Using environment variable
JAN_APP_PATH="D:/Apps/Jan/Jan.exe" python main.py
```
## Model Configuration
| Argument | Environment Variable | Default | Description |
|----------|---------------------|---------|-------------|
| `--model-loop` | `MODEL_LOOP` | `uitars` | Agent loop type |
| `--model-provider` | `MODEL_PROVIDER` | `oaicompat` | Model provider |
| `--model-name` | `MODEL_NAME` | `ByteDance-Seed/UI-TARS-1.5-7B` | AI model name |
| `--model-base-url` | `MODEL_BASE_URL` | `http://10.200.108.58:1234/v1` | Model API endpoint |
**Examples:**
```bash
# OpenAI GPT-4
python main.py \
--model-provider "openai" \
--model-name "gpt-4" \
--model-base-url "https://api.openai.com/v1"
# Anthropic Claude
python main.py \
--model-provider "anthropic" \
--model-name "claude-3-sonnet-20240229" \
--model-base-url "https://api.anthropic.com"
# Custom local model
python main.py \
--model-name "my-custom-model" \
--model-base-url "http://localhost:8000/v1"
# Using environment variables
MODEL_NAME=gpt-4 MODEL_BASE_URL=https://api.openai.com/v1 python main.py
```
## Test Execution Configuration
| Argument | Environment Variable | Default | Description |
|----------|---------------------|---------|-------------|
| `--max-turns` | `MAX_TURNS` | `30` | Maximum number of turns per test |
| `--tests-dir` | `TESTS_DIR` | `tests` | Directory containing test files |
| `--delay-between-tests` | `DELAY_BETWEEN_TESTS` | `3` | Delay between tests (seconds) |
**Examples:**
```bash
# Increase turn limit
python main.py --max-turns 50
# Custom test directory
python main.py --tests-dir "my_tests"
# Longer delay between tests
python main.py --delay-between-tests 10
# Using environment variables
MAX_TURNS=50 DELAY_BETWEEN_TESTS=5 python main.py
```
## Migration Testing Arguments
| Argument | Environment Variable | Default | Description |
|----------|---------------------|---------|-------------|
| `--enable-migration-test` | `ENABLE_MIGRATION_TEST` | `false` | Enable migration testing mode |
| `--migration-test-case` | `MIGRATION_TEST_CASE` | - | Specific migration test case to run |
| `--migration-batch-mode` | `MIGRATION_BATCH_MODE` | `false` | Use batch mode for migration tests |
| `--old-version` | `OLD_VERSION` | - | Path to old version installer |
| `--new-version` | `NEW_VERSION` | - | Path to new version installer |
## Reliability Testing Arguments
| Argument | Environment Variable | Default | Description |
|----------|---------------------|---------|-------------|
| `--enable-reliability-test` | `ENABLE_RELIABILITY_TEST` | `false` | Enable reliability testing mode |
| `--reliability-phase` | `RELIABILITY_PHASE` | `development` | Testing phase: development (5 runs) or deployment (20 runs) |
| `--reliability-runs` | `RELIABILITY_RUNS` | `0` | Custom number of runs (overrides phase setting) |
| `--reliability-test-path` | `RELIABILITY_TEST_PATH` | - | Specific test file path for reliability testing |
**Examples:**
```bash
# Basic migration test
python main.py \
--enable-migration-test \
--migration-test-case "assistants" \
--old-version "C:\path\to\old\installer.exe" \
--new-version "C:\path\to\new\installer.exe"
# Batch mode migration test
python main.py \
--enable-migration-test \
--migration-test-case "assistants-complete" \
--migration-batch-mode \
--old-version "C:\path\to\old\installer.exe" \
--new-version "C:\path\to\new\installer.exe"
# Using environment variables
ENABLE_MIGRATION_TEST=true \
MIGRATION_TEST_CASE=assistants \
OLD_VERSION="C:\path\to\old.exe" \
NEW_VERSION="C:\path\to\new.exe" \
python main.py
```
## Complete Command Examples
### Basic Testing
```bash
# Run all tests with defaults
python main.py
# Run specific test category
python main.py --tests-dir "tests/base"
# Custom configuration
python main.py \
--max-turns 50 \
--model-name "gpt-4" \
--model-base-url "https://api.openai.com/v1" \
--tests-dir "tests/base"
```
### Migration Testing
```bash
# Simple migration test
python main.py \
--enable-migration-test \
--migration-test-case "assistants" \
--old-version "Jan_0.6.6.exe" \
--new-version "Jan_0.6.7.exe" \
--max-turns 65
# Complete migration test with ReportPortal
python main.py \
--enable-migration-test \
--migration-test-case "assistants-complete" \
--migration-batch-mode \
--old-version "Jan_0.6.6.exe" \
--new-version "Jan_0.6.7.exe" \
--max-turns 75 \
--enable-reportportal \
--rp-token "YOUR_TOKEN" \
--rp-project "jan_migration_tests"
# Reliability testing - deployment phase with ReportPortal
python main.py \
--enable-reliability-test \
--reliability-phase deployment \
--reliability-test-path "tests/base/default-jan-assistant.txt" \
--max-turns 50 \
--enable-reportportal \
--rp-token "YOUR_TOKEN" \
--rp-project "jan_reliability_tests"
### Reliability Testing
```bash
# Development phase reliability test (5 runs)
python main.py \
--enable-reliability-test \
--reliability-phase development \
--max-turns 40
# Deployment phase reliability test (20 runs)
python main.py \
--enable-reliability-test \
--reliability-phase deployment \
--max-turns 40
# Custom number of runs
python main.py \
--enable-reliability-test \
--reliability-runs 10 \
--max-turns 40
# Test specific file with reliability testing
python main.py \
--enable-reliability-test \
--reliability-phase development \
--reliability-test-path "tests/base/default-jan-assistant.txt" \
--max-turns 40
# Reliability testing with ReportPortal
python main.py \
--enable-reliability-test \
--reliability-phase deployment \
--enable-reportportal \
--rp-token "YOUR_TOKEN" \
--max-turns 40
```
### Advanced Configuration
```bash
# Full custom configuration
python main.py \
--skip-server-start \
--enable-reportportal \
--rp-endpoint "https://custom.rp.com" \
--rp-project "jan_tests" \
--rp-token "YOUR_TOKEN" \
--jan-app-path "C:/Custom/Jan/Jan.exe" \
--jan-process-name "Jan-custom.exe" \
--model-provider "openai" \
--model-name "gpt-4-turbo" \
--model-base-url "https://api.openai.com/v1" \
--max-turns 100 \
--tests-dir "custom_tests" \
--delay-between-tests 5
```
## Environment Variables Summary
### Computer Server
- `SKIP_SERVER_START`: Skip auto computer server startup
### ReportPortal
- `ENABLE_REPORTPORTAL`: Enable ReportPortal integration
- `RP_ENDPOINT`: ReportPortal endpoint URL
- `RP_PROJECT`: ReportPortal project name
- `RP_TOKEN`: ReportPortal API token
- `LAUNCH_NAME`: Custom launch name
### Jan Application
- `JAN_APP_PATH`: Path to Jan executable
- `JAN_PROCESS_NAME`: Jan process name
### Model Configuration
- `MODEL_LOOP`: Agent loop type
- `MODEL_PROVIDER`: Model provider
- `MODEL_NAME`: AI model name
- `MODEL_BASE_URL`: Model API endpoint
### Test Execution
- `MAX_TURNS`: Maximum turns per test
- `TESTS_DIR`: Test files directory
- `DELAY_BETWEEN_TESTS`: Delay between tests
### Migration Testing
- `ENABLE_MIGRATION_TEST`: Enable migration mode
- `MIGRATION_TEST_CASE`: Migration test case
- `MIGRATION_BATCH_MODE`: Use batch mode
- `OLD_VERSION`: Old installer path
- `NEW_VERSION`: New installer path
### Reliability Testing
- `ENABLE_RELIABILITY_TEST`: Enable reliability testing mode
- `RELIABILITY_PHASE`: Testing phase (development/deployment)
- `RELIABILITY_RUNS`: Custom number of runs
- `RELIABILITY_TEST_PATH`: Specific test file path
## Help and Information
### Get Help
```bash
# Show all available options
python main.py --help
# Show help for specific section
python main.py --help | grep -A 10 "Migration"
```
### Version Information
```bash
# Check Python version
python --version
# Check AutoQA installation
python -c "import autoqa; print(autoqa.__version__)"
```
### Debug Information
```bash
# Enable debug logging
export LOG_LEVEL=DEBUG
export PYTHONPATH=.
# Run with verbose output
python main.py --enable-migration-test ...
```
## Best Practices
### 1. Use Environment Variables
```bash
# Set common configuration
export MAX_TURNS=65
export MODEL_NAME="gpt-4"
export JAN_APP_PATH="C:\path\to\Jan.exe"
# Use in commands
python main.py --max-turns "$MAX_TURNS"
```
### 2. Combine Arguments Logically
```bash
# Group related arguments
python main.py \
--enable-migration-test \
--migration-test-case "assistants" \
--old-version "old.exe" \
--new-version "new.exe" \
--max-turns 65 \
--enable-reportportal \
--rp-token "token"
```
### 3. Use Absolute Paths
```bash
# Windows
--old-version "C:\Users\username\Downloads\Jan_0.6.6.exe"
# Linux/macOS
--old-version "/home/user/downloads/Jan_0.6.6.deb"
```
### 4. Test Incrementally
```bash
# Start simple
python main.py
# Add migration
python main.py --enable-migration-test ...
# Add ReportPortal
python main.py --enable-migration-test ... --enable-reportportal ...
```
## Troubleshooting Commands
### Check Dependencies
```bash
# Verify Python packages
pip list | grep -E "(autoqa|computer|agent)"
# Check imports
python -c "import computer, agent, autoqa; print('All imports successful')"
```
### Check Configuration
```bash
# Validate arguments
python main.py --help
# Test specific configuration
python main.py --jan-app-path "nonexistent" 2>&1 | grep "not found"
```
### Debug Mode
```bash
# Enable debug logging
export LOG_LEVEL=DEBUG
export PYTHONPATH=.
# Run with debug output
python main.py --enable-migration-test ...
```
For more detailed information, see [MIGRATION_TESTING.md](MIGRATION_TESTING.md), [QUICK_START.md](QUICK_START.md), and [README.md](README.md).