Skip to content

Commit e0984ff

Browse files
committed
chore: Add usage examples for jig commands
1 parent 1316203 commit e0984ff

2 files changed

Lines changed: 164 additions & 10 deletions

File tree

src/together/lib/cli/__init__.py

Lines changed: 63 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,18 @@
3939
ENDPOINTS_HARDWARE_HELP_EXAMPLES,
4040
FINE_TUNING_CREATE_HELP_EXAMPLES,
4141
FINE_TUNING_DOWNLOAD_HELP_EXAMPLES,
42+
JIG_BUILD_HELP_EXAMPLES,
43+
JIG_PUSH_HELP_EXAMPLES,
44+
JIG_DEPLOY_HELP_EXAMPLES,
45+
JIG_DESTROY_HELP_EXAMPLES,
46+
JIG_LOGS_HELP_EXAMPLES,
47+
JIG_SUBMIT_HELP_EXAMPLES,
48+
JIG_JOB_STATUS_HELP_EXAMPLES,
49+
JIG_SECRETS_SET_HELP_EXAMPLES,
50+
JIG_SECRETS_UNSET_HELP_EXAMPLES,
51+
JIG_SECRETS_DELETE_HELP_EXAMPLES,
52+
JIG_VOLUMES_CREATE_HELP_EXAMPLES,
53+
JIG_VOLUMES_UPDATE_HELP_EXAMPLES,
4254
)
4355
from together.lib.cli.utils._help_formatter import help_formatter
4456
from together.lib.cli.utils._preparse_tokens import preparse_tokens
@@ -426,28 +438,65 @@ async def run_command() -> None:
426438
jig_app.command(
427439
(f"{_CLI}.beta.jig.jig:dockerfile_cli"), name="dockerfile", help="Generate Dockerfile from jig configuration"
428440
)
429-
jig_app.command((f"{_CLI}.beta.jig.jig:build_cli"), name="build", help="Build container image")
430-
jig_app.command((f"{_CLI}.beta.jig.jig:push_cli"), name="push", help="Push image to registry")
431-
jig_app.command((f"{_CLI}.beta.jig.jig:deploy_cli"), name="deploy", help="Deploy model to Together")
441+
jig_app.command(
442+
(f"{_CLI}.beta.jig.jig:build_cli"), name="build", help="Build container image", help_epilogue=JIG_BUILD_HELP_EXAMPLES
443+
)
444+
jig_app.command(
445+
(f"{_CLI}.beta.jig.jig:push_cli"), name="push", help="Push image to registry", help_epilogue=JIG_PUSH_HELP_EXAMPLES
446+
)
447+
jig_app.command(
448+
(f"{_CLI}.beta.jig.jig:deploy_cli"),
449+
name="deploy",
450+
help="Deploy model to Together",
451+
help_epilogue=JIG_DEPLOY_HELP_EXAMPLES,
452+
)
432453
jig_app.command((f"{_CLI}.beta.jig.jig:status_cli"), name="status", help="Get deployment status")
433454
jig_app.command((f"{_CLI}.beta.jig.jig:endpoint_cli"), name="endpoint", help="Get deployment endpoint URL")
434-
jig_app.command((f"{_CLI}.beta.jig.jig:logs_cli"), name="logs", help="Get deployment logs")
435-
jig_app.command((f"{_CLI}.beta.jig.jig:destroy_cli"), name="destroy", help="Destroy deployment")
436-
jig_app.command((f"{_CLI}.beta.jig.jig:submit_cli"), name="submit", help="Submit a job to the deployment")
437-
jig_app.command((f"{_CLI}.beta.jig.jig:job_status_cli"), name="job-status", help="Get status of a specific job")
455+
jig_app.command(
456+
(f"{_CLI}.beta.jig.jig:logs_cli"), name="logs", help="Get deployment logs", help_epilogue=JIG_LOGS_HELP_EXAMPLES
457+
)
458+
jig_app.command(
459+
(f"{_CLI}.beta.jig.jig:destroy_cli"),
460+
name="destroy",
461+
help="Destroy deployment",
462+
help_epilogue=JIG_DESTROY_HELP_EXAMPLES,
463+
)
464+
jig_app.command(
465+
(f"{_CLI}.beta.jig.jig:submit_cli"),
466+
name="submit",
467+
help="Submit a job to the deployment",
468+
help_epilogue=JIG_SUBMIT_HELP_EXAMPLES,
469+
)
470+
jig_app.command(
471+
(f"{_CLI}.beta.jig.jig:job_status_cli"),
472+
name="job-status",
473+
help="Get status of a specific job",
474+
help_epilogue=JIG_JOB_STATUS_HELP_EXAMPLES,
475+
)
438476
jig_app.command(
439477
(f"{_CLI}.beta.jig.jig:queue_status_cli"), name="queue-status", help="Get queue metrics for the deployment"
440478
)
441479
jig_app.command((f"{_CLI}.beta.jig.jig:list_deployments_cli"), name="list", alias="ls", help="List all deployments")
442480

443481
secrets_app = jig_app.command(App(name="secrets", help="Manage deployment secrets", group="Subcommands"))
444-
secrets_app.command((f"{_CLI}.beta.jig.jig:secrets_set_cli"), name="set", help="Set a secret (create or update)")
445-
secrets_app.command((f"{_CLI}.beta.jig.jig:secrets_unset_cli"), name="unset", help="Remove a secret from local state")
482+
secrets_app.command(
483+
(f"{_CLI}.beta.jig.jig:secrets_set_cli"),
484+
name="set",
485+
help="Set a secret (create or update)",
486+
help_epilogue=JIG_SECRETS_SET_HELP_EXAMPLES,
487+
)
488+
secrets_app.command(
489+
(f"{_CLI}.beta.jig.jig:secrets_unset_cli"),
490+
name="unset",
491+
help="Remove a secret from local state",
492+
help_epilogue=JIG_SECRETS_UNSET_HELP_EXAMPLES,
493+
)
446494
secrets_app.command(
447495
(f"{_CLI}.beta.jig.jig:secrets_delete_cli"),
448496
name="delete",
449497
help="Delete a secret and unset it locally",
450498
alias="-d",
499+
help_epilogue=JIG_SECRETS_DELETE_HELP_EXAMPLES,
451500
)
452501
secrets_app.command(
453502
(f"{_CLI}.beta.jig.jig:secrets_list_cli"), name="list", alias="ls", help="List all secrets with sync status"
@@ -460,9 +509,13 @@ async def run_command() -> None:
460509
name="create",
461510
alias="-c",
462511
help="Create a new volume for a Jig deployment",
512+
help_epilogue=JIG_VOLUMES_CREATE_HELP_EXAMPLES,
463513
)
464514
storage_app.command(
465-
(f"{_CLI}.beta.jig.jig:jig_volumes_update_cli"), name="update", help="Update a volume and re-upload files"
515+
(f"{_CLI}.beta.jig.jig:jig_volumes_update_cli"),
516+
name="update",
517+
help="Update a volume and re-upload files",
518+
help_epilogue=JIG_VOLUMES_UPDATE_HELP_EXAMPLES,
466519
)
467520
storage_app.command((f"{_CLI}.beta.jig.jig:jig_volumes_delete_cli"), name="delete", help="Delete a volume", alias="-d")
468521
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
@@ -193,3 +193,104 @@
193193
--model-b-system-template "You are a concise assistant." \\
194194
--model-b-input-template $'Answer the following:\\n\\n{{prompt}}'[/primary]
195195
"""
196+
197+
## Beta > Jig commands
198+
199+
JIG_BUILD_HELP_EXAMPLES = """[dim]Examples:[/dim]
200+
[dim]-[/dim] Build with default tag ([primary]latest[/primary]):
201+
[primary]tg beta jig build[/primary]
202+
203+
[dim]-[/dim] Build a tagged image with warmup (torch compile cache):
204+
[primary]tg beta jig build --tag v1 --warmup[/primary]
205+
206+
[dim]-[/dim] Pass extra Docker build arguments:
207+
[primary]tg beta jig build --docker-args '--no-cache'[/primary]
208+
"""
209+
210+
JIG_PUSH_HELP_EXAMPLES = """[dim]Examples:[/dim]
211+
[dim]-[/dim] Push the default ([primary]latest[/primary]) image:
212+
[primary]tg beta jig push[/primary]
213+
214+
[dim]-[/dim] Push a specific tag:
215+
[primary]tg beta jig push --tag v1[/primary]
216+
"""
217+
218+
JIG_DEPLOY_HELP_EXAMPLES = """[dim]Examples:[/dim]
219+
[dim]-[/dim] Build, push, and deploy from config in the current directory:
220+
[primary]tg beta jig deploy[/primary]
221+
222+
[dim]-[/dim] Deploy using an image that is already in the registry (skip build/push):
223+
[primary]tg beta jig deploy --image my-registry.example.com/my-org/my-model:abc123[/primary]
224+
225+
[dim]-[/dim] Only build and push; do not update the deployment:
226+
[primary]tg beta jig deploy --build-only[/primary]
227+
228+
[dim]-[/dim] Start deploy and return immediately without waiting:
229+
[primary]tg beta jig deploy --detach[/primary]
230+
"""
231+
232+
JIG_DESTROY_HELP_EXAMPLES = """[dim]Examples:[/dim]
233+
[dim]-[/dim] Tear down the deployment for this project ([primary]jig.toml[/primary] / [primary]pyproject.toml[/primary]):
234+
[primary]tg beta jig destroy[/primary]
235+
"""
236+
237+
JIG_LOGS_HELP_EXAMPLES = """[dim]Examples:[/dim]
238+
[dim]-[/dim] Print recent logs once:
239+
[primary]tg beta jig logs[/primary]
240+
241+
[dim]-[/dim] Stream logs ([primary]Ctrl+C[/primary] to stop):
242+
[primary]tg beta jig logs --follow[/primary]
243+
"""
244+
245+
JIG_SUBMIT_HELP_EXAMPLES = """[dim]Examples:[/dim]
246+
[dim]-[/dim] Submit a simple prompt job:
247+
[primary]tg beta jig submit --prompt "Hello, world!"[/primary]
248+
249+
[dim]-[/dim] Submit with a JSON payload (advanced request body):
250+
[primary]tg beta jig submit --payload '{"prompt":"Explain transformers","max_tokens":256}'[/primary]
251+
252+
[dim]-[/dim] Submit and poll until the job finishes:
253+
[primary]tg beta jig submit --prompt "Summarize this README." --watch[/primary]
254+
"""
255+
256+
JIG_JOB_STATUS_HELP_EXAMPLES = """[dim]Examples:[/dim]
257+
[dim]-[/dim] Look up a job by request ID (from submit output):
258+
[primary]tg beta jig job-status --request-id <request-id>[/primary]
259+
260+
[dim]-[/dim] Machine-readable status:
261+
[primary]tg beta jig job-status --request-id <request-id> --json[/primary]
262+
"""
263+
264+
JIG_SECRETS_SET_HELP_EXAMPLES = """[dim]Examples:[/dim]
265+
[dim]-[/dim] Create or update a secret from the shell:
266+
[primary]tg beta jig secrets set --name HF_TOKEN --value "$HF_TOKEN"[/primary]
267+
268+
[dim]-[/dim] Set a secret with a description (shown in listings):
269+
[primary]tg beta jig secrets set --name API_KEY --value "$API_KEY" --description "Third-party API credentials"[/primary]
270+
"""
271+
272+
JIG_SECRETS_UNSET_HELP_EXAMPLES = """[dim]Examples:[/dim]
273+
[dim]-[/dim] Drop a secret from local state only (does not delete remotely):
274+
[primary]tg beta jig secrets unset --name OLD_KEY[/primary]
275+
"""
276+
277+
JIG_SECRETS_DELETE_HELP_EXAMPLES = """[dim]Examples:[/dim]
278+
[dim]-[/dim] Delete the secret on the server and remove it locally:
279+
[primary]tg beta jig secrets delete --name REVOKED_KEY[/primary]
280+
"""
281+
282+
JIG_VOLUMES_CREATE_HELP_EXAMPLES = """[dim]Examples:[/dim]
283+
[dim]-[/dim] Create a volume and upload files from a directory:
284+
[primary]tg beta jig volumes create --name model-weights --source ./weights[/primary]
285+
286+
[dim]-[/dim] Same using positional arguments:
287+
[primary]tg beta jig volumes create model-weights ./weights[/primary]
288+
"""
289+
290+
JIG_VOLUMES_UPDATE_HELP_EXAMPLES = """[dim]Examples:[/dim]
291+
[dim]-[/dim] Upload a new directory tree as the next volume version:
292+
[primary]tg beta jig volumes update --name model-weights --source ./weights[/primary]
293+
294+
[dim]-[/dim] Positional form:
295+
[primary]tg beta jig volumes update model-weights ./weights[/primary]
296+
"""

0 commit comments

Comments
 (0)