This directory contains practical examples for using QueryGym with Docker.
📖 Quick Reference: See DOCKER_SETUP.md in the root directory for a quick setup guide.
- Docker installed
- For GPU support: NVIDIA GPU + nvidia-container-toolkit
-
Create directories:
mkdir -p data outputs notebooks
-
Set your API key:
export OPENAI_API_KEY="sk-..." # Or create a .env file echo "OPENAI_API_KEY=sk-..." > .env
-
Run with Docker Compose:
# GPU version (interactive shell) docker compose run --rm querygym # CPU version (interactive shell) docker compose run --rm querygym-cpu # Jupyter notebook server docker compose up jupyter # Then open http://localhost:8888
docker-compose.yml- Pre-configured services using GHCR images (symlink to root)quickstart.ipynb- Example Jupyter notebookdata/- Mount your datasets hereoutputs/- Reformulated queries saved herenotebooks/- Your Jupyter notebooks
docker compose run --rm querygym
# Inside container:
python
>>> import querygym as qg
>>> queries = qg.load_queries("data/queries.tsv")
>>> reformulator = qg.create_reformulator("genqr")
>>> result = reformulator.reformulate(queries[0])
>>> print(result.reformulated)# Create your script
cat > my_experiment.py << 'EOF'
import querygym as qg
queries = qg.load_queries("data/queries.tsv")
reformulator = qg.create_reformulator("genqr_ensemble", model="gpt-4")
results = reformulator.reformulate_batch(queries)
qg.DataLoader.save_queries(
[qg.QueryItem(r.qid, r.reformulated) for r in results],
"outputs/reformulated.tsv"
)
print(f"Reformulated {len(results)} queries!")
EOF
# Run it
docker compose run --rm querygym python my_experiment.py# Start Jupyter server
docker compose up jupyter
# Open http://localhost:8888 in your browser
# Try the included quickstart.ipynb notebook# Use the CPU version if you don't have a GPU
docker compose run --rm querygym-cpuSet these in a .env file or export them:
OPENAI_API_KEY=sk-... # Required for LLM-based methods
OPENAI_BASE_URL=https://... # Optional: custom API endpointThe compose file mounts these directories:
./data→/workspace/data(your datasets)./outputs→/workspace/outputs(results)./notebooks→/workspace/notebooks(Jupyter notebooks)
# Verify nvidia-docker is working
docker run --rm --gpus all nvidia/cuda:12.1.0-base nvidia-smi
# If not working, install nvidia-container-toolkit:
# https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html# Run as your user
docker compose run --rm -u $(id -u):$(id -g) querygym# Update to latest version
docker compose pull