Projects

View as Markdown

Projects are optional organizational tags within a workspace. They let you group related resources—such as datasets, customization jobs, and evaluation results—without creating separate access boundaries. Anyone with access to the workspace can see all its projects.

Use projects when you need to organize related work within a team. For example, group everything related to a fine-tuning experiment (llama-3-customer-support-v2) or an evaluation campaign (quarterly-eval-2025q1). For access isolation between teams or environments, use separate workspaces instead.

Project vs. Workspace

NeedSolution
Separate teams or usersDifferent workspaces
Separate environments (dev/prod)Different workspaces
Group related workProject within a workspace
Quick one-off taskWorkspace only, no project

Think of workspaces as filing cabinets (separate, locked) and projects as labels you can apply to documents within a cabinet.

Create a Project

To create a project, provide a name and optionally a description. The name must be unique within the workspace.

Resource names must follow these rules:

  • Must start with a lowercase letter (a-z)
  • 2-63 characters long
  • Allowed characters: lowercase letters, digits, hyphens, and temporarily @, ., +, _
  • No consecutive hyphens (--)
  • Cannot end with a hyphen

Example valid names: my-model, llama-3.2-3b, test-config-v1

Once created, a project cannot be renamed.

1import os
2from nemo_platform import NeMoPlatform
3
4client = NeMoPlatform(
5 base_url=os.environ.get("NMP_BASE_URL", "http://localhost:8080"),
6 workspace="default",
7)
8
9project = client.projects.create(
10 workspace="ml-team",
11 name="llama-finetune-v2",
12 description="Fine-tuning experiment for customer support",
13)

List Projects

To list projects in a workspace, call the list endpoint. The response includes pagination metadata.

1import os
2from nemo_platform import NeMoPlatform
3
4client = NeMoPlatform(
5 base_url=os.environ.get("NMP_BASE_URL", "http://localhost:8080"),
6 workspace="default",
7)
8
9response = client.projects.list(workspace="ml-team")
10for project in response.data:
11 print(f"{project.name}: {project.description}")

Get a Project

To retrieve a specific project by its name:

1import os
2from nemo_platform import NeMoPlatform
3
4client = NeMoPlatform(
5 base_url=os.environ.get("NMP_BASE_URL", "http://localhost:8080"),
6 workspace="default",
7)
8
9project = client.projects.retrieve("llama-finetune-v2", workspace="ml-team")

Update a Project

To update a project, only the description field can be modified. The name cannot be changed after creation.

1import os
2from nemo_platform import NeMoPlatform
3
4client = NeMoPlatform(
5 base_url=os.environ.get("NMP_BASE_URL", "http://localhost:8080"),
6 workspace="default",
7)
8
9project = client.projects.update(
10 "llama-finetune-v2",
11 workspace="ml-team",
12 description="Updated: Fine-tuning experiment for customer support chatbot",
13)

Delete a Project

To delete a project:

1import os
2from nemo_platform import NeMoPlatform
3
4client = NeMoPlatform(
5 base_url=os.environ.get("NMP_BASE_URL", "http://localhost:8080"),
6 workspace="default",
7)
8
9client.projects.delete("llama-finetune-v2", workspace="ml-team")