Skip to content

feat(studio): Templates from Data Designer Recipes#857

Open
steramae-nvidia wants to merge 1 commit into
mainfrom
steramae/dd-templates
Open

feat(studio): Templates from Data Designer Recipes#857
steramae-nvidia wants to merge 1 commit into
mainfrom
steramae/dd-templates

Conversation

@steramae-nvidia

@steramae-nvidia steramae-nvidia commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Signed-off-by: Sean Teramae steramae@nvidia.com

Summary by CodeRabbit

  • New Features

    • Added ready-made recipes for Text to SQL, Product Information Q&A, and Tool/Function Calling workflows.
    • Template cards can now display multiple descriptive tags with distinct styling.
    • Expanded recipe coverage for generation, validation, extraction, search, and preference modeling use cases.
  • UI Improvements

    • Simplified the data builder toolbar by removing the template badge and giving column-count information more prominence.

Signed-off-by: Sean Teramae <steramae@nvidia.com>
@steramae-nvidia
steramae-nvidia requested review from a team as code owners July 23, 2026 00:03
@steramae-nvidia

Copy link
Copy Markdown
Contributor Author

This change is part of the following stack:

Change managed by git-spice.

@github-actions github-actions Bot added the feat label Jul 23, 2026
@coderabbitai

coderabbitai Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

Recipe templates now support multiple badges, three recipes are added, and the build toolbar no longer displays template badges.

Changes

Recipe templates and toolbar metadata

Layer / File(s) Summary
Multiple-tag contract and card rendering
web/packages/studio/src/components/CreateFilesetStart/types.ts, web/packages/studio/src/components/CreateFilesetStart/TemplateCard.tsx, web/packages/studio/src/components/CreateFilesetStart/templates.ts
Template metadata uses tags, existing recipes define multiple tags, and cards render one badge per tag.
Recipe catalog expansion
web/packages/studio/src/components/CreateFilesetStart/templates.ts
Adds text-to-SQL, product info Q&A, and tool-calling recipes while migrating expression transforms to the plural tag format.
Build toolbar badge removal
web/packages/studio/src/routes/DataDesignerJobBuildRoute/BuilderToolbar.tsx, web/packages/studio/src/routes/DataDesignerJobBuildRoute/index.tsx
Removes the toolbar’s template-tag prop and rendering, including the route-level prop assignment.

Possibly related PRs

Suggested reviewers: aray12, htolentino-nvidia, nv-odrulea

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title matches the main change: adding Studio templates sourced from Data Designer recipes.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch steramae/dd-templates

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
web/packages/studio/src/components/CreateFilesetStart/types.ts (1)

54-65: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Consider readonly for the new tags field.

tags is a mutable array on a shared, exported FilesetTemplate catalog (FILESET_TEMPLATES) consumed by multiple components. Marking it readonly StartOptionTag[] prevents accidental in-place mutation by any consumer.

As per coding guidelines, "Use readonly for immutable properties in TypeScript interfaces and types."

♻️ Proposed fix
-  tags: StartOptionTag[];
+  tags: readonly StartOptionTag[];
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@web/packages/studio/src/components/CreateFilesetStart/types.ts` around lines
54 - 65, Update the exported FilesetTemplate interface so its tags property uses
a readonly StartOptionTag[] type, preventing consumers of FILESET_TEMPLATES from
mutating the shared tag arrays while preserving the existing tag values and
behavior.

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@web/packages/studio/src/components/CreateFilesetStart/templates.ts`:
- Around line 528-534: Update the product_price expression in the fileset
template so the subtraction is parenthesized before applying the round(2)
filter, ensuring the computed price rather than 0.01 is rounded.

---

Nitpick comments:
In `@web/packages/studio/src/components/CreateFilesetStart/types.ts`:
- Around line 54-65: Update the exported FilesetTemplate interface so its tags
property uses a readonly StartOptionTag[] type, preventing consumers of
FILESET_TEMPLATES from mutating the shared tag arrays while preserving the
existing tag values and behavior.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: a5e897f6-70b3-4363-8fa8-5c5f7d6a14eb

📥 Commits

Reviewing files that changed from the base of the PR and between 7662279 and facf4e4.

📒 Files selected for processing (5)
  • web/packages/studio/src/components/CreateFilesetStart/TemplateCard.tsx
  • web/packages/studio/src/components/CreateFilesetStart/templates.ts
  • web/packages/studio/src/components/CreateFilesetStart/types.ts
  • web/packages/studio/src/routes/DataDesignerJobBuildRoute/BuilderToolbar.tsx
  • web/packages/studio/src/routes/DataDesignerJobBuildRoute/index.tsx
💤 Files with no reviewable changes (1)
  • web/packages/studio/src/routes/DataDesignerJobBuildRoute/index.tsx

Comment on lines +528 to +534
columnType: 'expression',
name: 'product_price',
values: {
expr: '{{ (price_tens_of_dollars * 10) - 0.01 | round(2) }}',
dtype: 'float',
},
},

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

sed -n '500,545p' web/packages/studio/src/components/CreateFilesetStart/templates.ts

Repository: NVIDIA-NeMo/nemo-platform

Length of output: 1981


🏁 Script executed:

python3 - <<'PY'
from pathlib import Path
import re

path = Path('web/packages/studio/src/components/CreateFilesetStart/templates.ts')
text = path.read_text()

for name in ['price_tens_of_dollars', 'product_price']:
    print(f'--- {name} ---')
    for m in re.finditer(name, text):
        start = max(0, m.start()-220)
        end = min(len(text), m.end()+280)
        print(text[start:end])
        print()
        break
PY

Repository: NVIDIA-NeMo/nemo-platform

Length of output: 1253


🏁 Script executed:

python3 - <<'PY'
import sys

try:
    import jinja2
    from jinja2 import Environment
except Exception as e:
    print(f'JINJA2_IMPORT_FAILED: {e}')
    sys.exit(0)

env = Environment()
expr = '{{ (price_tens_of_dollars * 10) - 0.01 | round(2) }}'
ast = env.parse(expr)
print('JINJA2_OK')
print(ast)
PY

Repository: NVIDIA-NeMo/nemo-platform

Length of output: 210


🏁 Script executed:

python3 - <<'PY'
from pathlib import Path

path = Path('web/packages/studio/src/components/CreateFilesetStart/templates.ts')
lines = path.read_text().splitlines()
for i in range(510, 540):
    print(f'{i+1}: {lines[i]}')
PY

Repository: NVIDIA-NeMo/nemo-platform

Length of output: 1390


Parenthesize the subtraction before round(2)

round(2) currently applies to 0.01, not the computed price. Wrap the subtraction so the whole value is rounded.

🐛 Proposed fix
-          expr: '{{ (price_tens_of_dollars * 10) - 0.01 | round(2) }}',
+          expr: '{{ ((price_tens_of_dollars * 10) - 0.01) | round(2) }}',
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
columnType: 'expression',
name: 'product_price',
values: {
expr: '{{ (price_tens_of_dollars * 10) - 0.01 | round(2) }}',
dtype: 'float',
},
},
columnType: 'expression',
name: 'product_price',
values: {
expr: '{{ ((price_tens_of_dollars * 10) - 0.01) | round(2) }}',
dtype: 'float',
},
},
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@web/packages/studio/src/components/CreateFilesetStart/templates.ts` around
lines 528 - 534, Update the product_price expression in the fileset template so
the subtraction is parenthesized before applying the round(2) filter, ensuring
the computed price rather than 0.01 is rounded.

@github-actions

Copy link
Copy Markdown
Contributor
Suite Lines Covered Line Rate Branch Rate
Unit Tests 27113/34832 77.8% 62.1%
Integration Tests 15892/33443 47.5% 19.9%

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant