# Request Analysis On Debian 12 VPS

This setup runs the request-analysis worker on the VPS only when needed.

## How It Works

- the API server accepts pending launcher requests
- when a new pending request is created, the server schedules the worker
- only one worker run is active at a time
- if more pending requests remain after a run finishes, the server schedules another pass
- you can also trigger a run manually through `POST /api/launcher-requests/process-pending`

The worker itself still uses DeepSeek's hosted API, so the VPS is coordinating queue work instead of doing local inference.

## Required Environment

Recommended env file:

`/srv/worldshaper/shared/worldshaper.env`

Example:

```bash
DEEPSEEK_API_KEY=your-key-here
REQUEST_ANALYZER_AUTORUN=1
REQUEST_ANALYZER_PROVIDER=deepseek
REQUEST_ANALYZER_MODEL=deepseek-v4-flash
REQUEST_ANALYZER_PROMOTE_THRESHOLD=0.85
REQUEST_ANALYZER_THINKING=disabled
```

## PM2 Deploy Hook

The sample post-receive hook in [scripts/vps-post-receive.sample.sh](../scripts/vps-post-receive.sample.sh) now:

- loads `/srv/worldshaper/shared/worldshaper.env` if present
- restarts PM2 with `--update-env`
- passes the request-analysis environment through on restart/start

## Manual Trigger

If you want to force a queue run:

```bash
curl -X POST http://127.0.0.1:5180/api/launcher-requests/process-pending
```

## Notes

- autorun is opt-in through `REQUEST_ANALYZER_AUTORUN=1`
- the worker only launches if pending requests exist
- DeepSeek credentials stay on the VPS in the shared env file, not in the repo
