Skip to content

Commit e8624e6

Browse files
committed
chore: Add usage examples for jig commands
1 parent a357ed6 commit e8624e6

2 files changed

Lines changed: 167 additions & 10 deletions

File tree

src/together/lib/cli/__init__.py

Lines changed: 66 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -30,17 +30,29 @@
3030
EVALS_HELP_EXAMPLES,
3131
FILES_HELP_EXAMPLES,
3232
MODELS_HELP_EXAMPLES,
33+
JIG_LOGS_HELP_EXAMPLES,
34+
JIG_PUSH_HELP_EXAMPLES,
3335
ENDPOINTS_HELP_EXAMPLES,
36+
JIG_BUILD_HELP_EXAMPLES,
3437
TOP_LEVEL_HELP_EXAMPLES,
38+
JIG_DEPLOY_HELP_EXAMPLES,
39+
JIG_SUBMIT_HELP_EXAMPLES,
3540
FINE_TUNING_HELP_EXAMPLES,
41+
JIG_DESTROY_HELP_EXAMPLES,
3642
EVALS_CREATE_HELP_EXAMPLES,
3743
FILES_UPLOAD_HELP_EXAMPLES,
3844
BETA_CLUSTERS_HELP_EXAMPLES,
3945
MODELS_UPLOAD_HELP_EXAMPLES,
46+
JIG_JOB_STATUS_HELP_EXAMPLES,
47+
JIG_SECRETS_SET_HELP_EXAMPLES,
4048
ENDPOINTS_CREATE_HELP_EXAMPLES,
4149
ENDPOINTS_UPDATE_HELP_EXAMPLES,
50+
JIG_SECRETS_UNSET_HELP_EXAMPLES,
4251
ENDPOINTS_HARDWARE_HELP_EXAMPLES,
4352
FINE_TUNING_CREATE_HELP_EXAMPLES,
53+
JIG_SECRETS_DELETE_HELP_EXAMPLES,
54+
JIG_VOLUMES_CREATE_HELP_EXAMPLES,
55+
JIG_VOLUMES_UPDATE_HELP_EXAMPLES,
4456
BETA_CLUSTERS_CREATE_HELP_EXAMPLES,
4557
BETA_CLUSTERS_UPDATE_HELP_EXAMPLES,
4658
FINE_TUNING_DOWNLOAD_HELP_EXAMPLES,
@@ -476,28 +488,68 @@ async def run_command() -> None:
476488
jig_app.command(
477489
(f"{_CLI}.beta.jig.jig:dockerfile_cli"), name="dockerfile", help="Generate Dockerfile from jig configuration"
478490
)
479-
jig_app.command((f"{_CLI}.beta.jig.jig:build_cli"), name="build", help="Build container image")
480-
jig_app.command((f"{_CLI}.beta.jig.jig:push_cli"), name="push", help="Push image to registry")
481-
jig_app.command((f"{_CLI}.beta.jig.jig:deploy_cli"), name="deploy", help="Deploy model to Together")
491+
jig_app.command(
492+
(f"{_CLI}.beta.jig.jig:build_cli"),
493+
name="build",
494+
help="Build container image",
495+
help_epilogue=JIG_BUILD_HELP_EXAMPLES,
496+
)
497+
jig_app.command(
498+
(f"{_CLI}.beta.jig.jig:push_cli"), name="push", help="Push image to registry", help_epilogue=JIG_PUSH_HELP_EXAMPLES
499+
)
500+
jig_app.command(
501+
(f"{_CLI}.beta.jig.jig:deploy_cli"),
502+
name="deploy",
503+
help="Deploy model to Together",
504+
help_epilogue=JIG_DEPLOY_HELP_EXAMPLES,
505+
)
482506
jig_app.command((f"{_CLI}.beta.jig.jig:status_cli"), name="status", help="Get deployment status")
483507
jig_app.command((f"{_CLI}.beta.jig.jig:endpoint_cli"), name="endpoint", help="Get deployment endpoint URL")
484-
jig_app.command((f"{_CLI}.beta.jig.jig:logs_cli"), name="logs", help="Get deployment logs")
485-
jig_app.command((f"{_CLI}.beta.jig.jig:destroy_cli"), name="destroy", help="Destroy deployment")
486-
jig_app.command((f"{_CLI}.beta.jig.jig:submit_cli"), name="submit", help="Submit a job to the deployment")
487-
jig_app.command((f"{_CLI}.beta.jig.jig:job_status_cli"), name="job-status", help="Get status of a specific job")
508+
jig_app.command(
509+
(f"{_CLI}.beta.jig.jig:logs_cli"), name="logs", help="Get deployment logs", help_epilogue=JIG_LOGS_HELP_EXAMPLES
510+
)
511+
jig_app.command(
512+
(f"{_CLI}.beta.jig.jig:destroy_cli"),
513+
name="destroy",
514+
help="Destroy deployment",
515+
help_epilogue=JIG_DESTROY_HELP_EXAMPLES,
516+
)
517+
jig_app.command(
518+
(f"{_CLI}.beta.jig.jig:submit_cli"),
519+
name="submit",
520+
help="Submit a job to the deployment",
521+
help_epilogue=JIG_SUBMIT_HELP_EXAMPLES,
522+
)
523+
jig_app.command(
524+
(f"{_CLI}.beta.jig.jig:job_status_cli"),
525+
name="job-status",
526+
help="Get status of a specific job",
527+
help_epilogue=JIG_JOB_STATUS_HELP_EXAMPLES,
528+
)
488529
jig_app.command(
489530
(f"{_CLI}.beta.jig.jig:queue_status_cli"), name="queue-status", help="Get queue metrics for the deployment"
490531
)
491532
jig_app.command((f"{_CLI}.beta.jig.jig:list_deployments_cli"), name="list", alias="ls", help="List all deployments")
492533

493534
secrets_app = jig_app.command(App(name="secrets", help="Manage deployment secrets", group="Subcommands"))
494-
secrets_app.command((f"{_CLI}.beta.jig.jig:secrets_set_cli"), name="set", help="Set a secret (create or update)")
495-
secrets_app.command((f"{_CLI}.beta.jig.jig:secrets_unset_cli"), name="unset", help="Remove a secret from local state")
535+
secrets_app.command(
536+
(f"{_CLI}.beta.jig.jig:secrets_set_cli"),
537+
name="set",
538+
help="Set a secret (create or update)",
539+
help_epilogue=JIG_SECRETS_SET_HELP_EXAMPLES,
540+
)
541+
secrets_app.command(
542+
(f"{_CLI}.beta.jig.jig:secrets_unset_cli"),
543+
name="unset",
544+
help="Remove a secret from local state",
545+
help_epilogue=JIG_SECRETS_UNSET_HELP_EXAMPLES,
546+
)
496547
secrets_app.command(
497548
(f"{_CLI}.beta.jig.jig:secrets_delete_cli"),
498549
name="delete",
499550
help="Delete a secret and unset it locally",
500551
alias="-d",
552+
help_epilogue=JIG_SECRETS_DELETE_HELP_EXAMPLES,
501553
)
502554
secrets_app.command(
503555
(f"{_CLI}.beta.jig.jig:secrets_list_cli"), name="list", alias="ls", help="List all secrets with sync status"
@@ -510,9 +562,13 @@ async def run_command() -> None:
510562
name="create",
511563
alias="-c",
512564
help="Create a new volume for a Jig deployment",
565+
help_epilogue=JIG_VOLUMES_CREATE_HELP_EXAMPLES,
513566
)
514567
storage_app.command(
515-
(f"{_CLI}.beta.jig.jig:jig_volumes_update_cli"), name="update", help="Update a volume and re-upload files"
568+
(f"{_CLI}.beta.jig.jig:jig_volumes_update_cli"),
569+
name="update",
570+
help="Update a volume and re-upload files",
571+
help_epilogue=JIG_VOLUMES_UPDATE_HELP_EXAMPLES,
516572
)
517573
storage_app.command((f"{_CLI}.beta.jig.jig:jig_volumes_delete_cli"), name="delete", help="Delete a volume", alias="-d")
518574
storage_app.command(

src/together/lib/cli/utils/_help_examples.py

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -328,3 +328,104 @@
328328
[dim]-[/dim] Grow a volume to 4 TiB:
329329
[primary]tg beta clusters storage update <volume-id> --size-tib 4[/primary]
330330
"""
331+
332+
## Beta > Jig commands
333+
334+
JIG_BUILD_HELP_EXAMPLES = """[dim]Examples:[/dim]
335+
[dim]-[/dim] Build with default tag ([primary]latest[/primary]):
336+
[primary]tg beta jig build[/primary]
337+
338+
[dim]-[/dim] Build a tagged image with warmup (torch compile cache):
339+
[primary]tg beta jig build --tag v1 --warmup[/primary]
340+
341+
[dim]-[/dim] Pass extra Docker build arguments:
342+
[primary]tg beta jig build --docker-args '--no-cache'[/primary]
343+
"""
344+
345+
JIG_PUSH_HELP_EXAMPLES = """[dim]Examples:[/dim]
346+
[dim]-[/dim] Push the default ([primary]latest[/primary]) image:
347+
[primary]tg beta jig push[/primary]
348+
349+
[dim]-[/dim] Push a specific tag:
350+
[primary]tg beta jig push --tag v1[/primary]
351+
"""
352+
353+
JIG_DEPLOY_HELP_EXAMPLES = """[dim]Examples:[/dim]
354+
[dim]-[/dim] Build, push, and deploy from config in the current directory:
355+
[primary]tg beta jig deploy[/primary]
356+
357+
[dim]-[/dim] Deploy using an image that is already in the registry (skip build/push):
358+
[primary]tg beta jig deploy --image my-registry.example.com/my-org/my-model:abc123[/primary]
359+
360+
[dim]-[/dim] Only build and push; do not update the deployment:
361+
[primary]tg beta jig deploy --build-only[/primary]
362+
363+
[dim]-[/dim] Start deploy and return immediately without waiting:
364+
[primary]tg beta jig deploy --detach[/primary]
365+
"""
366+
367+
JIG_DESTROY_HELP_EXAMPLES = """[dim]Examples:[/dim]
368+
[dim]-[/dim] Tear down the deployment for this project ([primary]jig.toml[/primary] / [primary]pyproject.toml[/primary]):
369+
[primary]tg beta jig destroy[/primary]
370+
"""
371+
372+
JIG_LOGS_HELP_EXAMPLES = """[dim]Examples:[/dim]
373+
[dim]-[/dim] Print recent logs once:
374+
[primary]tg beta jig logs[/primary]
375+
376+
[dim]-[/dim] Stream logs ([primary]Ctrl+C[/primary] to stop):
377+
[primary]tg beta jig logs --follow[/primary]
378+
"""
379+
380+
JIG_SUBMIT_HELP_EXAMPLES = """[dim]Examples:[/dim]
381+
[dim]-[/dim] Submit a simple prompt job:
382+
[primary]tg beta jig submit --prompt "Hello, world!"[/primary]
383+
384+
[dim]-[/dim] Submit with a JSON payload (advanced request body):
385+
[primary]tg beta jig submit --payload '{"prompt":"Explain transformers","max_tokens":256}'[/primary]
386+
387+
[dim]-[/dim] Submit and poll until the job finishes:
388+
[primary]tg beta jig submit --prompt "Summarize this README." --watch[/primary]
389+
"""
390+
391+
JIG_JOB_STATUS_HELP_EXAMPLES = """[dim]Examples:[/dim]
392+
[dim]-[/dim] Look up a job by request ID (from submit output):
393+
[primary]tg beta jig job-status --request-id <request-id>[/primary]
394+
395+
[dim]-[/dim] Machine-readable status:
396+
[primary]tg beta jig job-status --request-id <request-id> --json[/primary]
397+
"""
398+
399+
JIG_SECRETS_SET_HELP_EXAMPLES = """[dim]Examples:[/dim]
400+
[dim]-[/dim] Create or update a secret from the shell:
401+
[primary]tg beta jig secrets set --name HF_TOKEN --value "$HF_TOKEN"[/primary]
402+
403+
[dim]-[/dim] Set a secret with a description (shown in listings):
404+
[primary]tg beta jig secrets set --name API_KEY --value "$API_KEY" --description "Third-party API credentials"[/primary]
405+
"""
406+
407+
JIG_SECRETS_UNSET_HELP_EXAMPLES = """[dim]Examples:[/dim]
408+
[dim]-[/dim] Drop a secret from local state only (does not delete remotely):
409+
[primary]tg beta jig secrets unset --name OLD_KEY[/primary]
410+
"""
411+
412+
JIG_SECRETS_DELETE_HELP_EXAMPLES = """[dim]Examples:[/dim]
413+
[dim]-[/dim] Delete the secret on the server and remove it locally:
414+
[primary]tg beta jig secrets delete --name REVOKED_KEY[/primary]
415+
"""
416+
417+
JIG_VOLUMES_CREATE_HELP_EXAMPLES = """[dim]Examples:[/dim]
418+
[dim]-[/dim] Create a volume and upload files from a directory:
419+
[primary]tg beta jig volumes create --name model-weights --source ./weights[/primary]
420+
421+
[dim]-[/dim] Same using positional arguments:
422+
[primary]tg beta jig volumes create model-weights ./weights[/primary]
423+
"""
424+
425+
JIG_VOLUMES_UPDATE_HELP_EXAMPLES = """[dim]Examples:[/dim]
426+
[dim]-[/dim] Upload a new directory tree as the next volume version:
427+
[primary]tg beta jig volumes update --name model-weights --source ./weights[/primary]
428+
429+
[dim]-[/dim] Positional form:
430+
[primary]tg beta jig volumes update model-weights ./weights[/primary]
431+
"""

0 commit comments

Comments
 (0)