Skip to content

Add tool calling support to Model catalog#2687

Open
manaswinidas wants to merge 1 commit into
kubeflow:mainfrom
manaswinidas:feat/tool-calling-ui
Open

Add tool calling support to Model catalog#2687
manaswinidas wants to merge 1 commit into
kubeflow:mainfrom
manaswinidas:feat/tool-calling-ui

Conversation

@manaswinidas
Copy link
Copy Markdown
Contributor

Description

Screenshot 2026-05-11 at 1 13 03 PM Screenshot 2026-05-11 at 1 12 51 PM

Add validated configurations card to model details page with expandable tool calling section behind a feature flag. Update
"Validated" label to "Validated by Red Hat" with green check icon, and show validated task labels with check indicators.

  • Add ServingConfig/ToolCallingConfig types to BFF and frontend
  • Add validatedTasks field to CatalogModel
  • Add hasValidatedToolCalling utility
  • Gate all new UI behind TempDevFeature.ToolCallingConfiguration
  • Format task labels for human-readable display
  • Update BFF, frontend, and Cypress mocks

How Has This Been Tested?

Switch on the feature flag on the browser console and check for the labels in the model card and the tool calling validation configurations in the catalog details page as shown in the screenshots.

Merge criteria:

  • All the commits have been signed-off (To pass the DCO check)
  • The commits have meaningful messages
  • Automated tests are provided as part of the PR for major new functionalities; testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).
  • The developer has manually tested the changes and verified that the changes work.
  • Code changes follow the kubeflow contribution guidelines.
  • For first time contributors: Please reach out to the Reviewers to ensure all tests are being run, ensuring the label ok-to-test has been added to the PR.

If you have UI changes

  • The developer has added tests or explained why testing cannot be added.
  • Included any necessary screenshots or gifs if it was a UI change.
  • Verify that UI/UX changes conform the UX guidelines for Kubeflow.

@google-oss-prow google-oss-prow Bot requested review from chambridge and fege May 11, 2026 07:52
@google-oss-prow
Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please ask for approval from manaswinidas. For more information see the Kubernetes Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Copy link
Copy Markdown
Contributor

@ppadti ppadti left a comment

Choose a reason for hiding this comment

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

@manaswinidas we also need to update our OpenAPI spec to have these changes of type in CatalogModel.
And when we close the sidebar - The alignment of logo, label in the card changes

Image

className="pf-v6-u-p-xs"
icon={<HelpIcon />}
<Stack hasGutter>
{isToolCallingValidated && model.servingConfig?.toolCalling && (
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.

Isn't this condition redundant? because isToolCallingValidated already checks for model.servingConfig?.toolCalling, no?

name: 'validated-model',
tasks: ['text-generation'],
tasks: ['text-generation', 'tool-calling'],
validatedTasks: ['tool-calling'],
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.

would it be better to have this tool-calling as a constant?

artifacts: CatalogArtifacts[],
): boolean => isModelValidated(model) && hasPerformanceArtifacts(artifacts);

export const hasValidatedToolCalling = (model: CatalogModel): boolean =>
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.

can we add unit test for this?

): boolean => isModelValidated(model) && hasPerformanceArtifacts(artifacts);

export const hasValidatedToolCalling = (model: CatalogModel): boolean =>
!!model.validatedTasks?.includes('tool-calling') && !!model.servingConfig?.toolCalling;
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.

Nit: Just from the readability perspective
can we make it

Suggested change
!!model.validatedTasks?.includes('tool-calling') && !!model.servingConfig?.toolCalling;
model.validatedTasks?.includes('tool-calling') === true && model.servingConfig?.toolCalling != null;

Either way its right - no strong opinion though.

<CheckCircleIcon color="var(--pf-t--global--color--status--success--default)" />
}
>
Validated by Red Hat
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.

We might have to get clarification for this label from backend - whether we get this as a label ot should we construct one?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

The existing "Validated" label is getting a revamp - screenshot here

- Add validatedTasks, ServingConfig, ToolCallingConfig to BFF types, frontend types, and OpenAPI spec
- Add Validated configurations card with expandable tool calling section
- Update Validated label to 'Validated by Red Hat' with success status
- Show validated task labels with green check icon
- Gate tool calling features behind TempDevFeature.ToolCallingConfiguration
- Use MODEL_CATALOG_TASK_NAME_MAPPING for task label display names
- Add hasValidatedToolCalling utility with unit tests
- Update BFF, frontend, and Cypress mocks

Ref: RHOAIENG-60925
Signed-off-by: manaswinidas <dasmanaswini10@gmail.com>
@manaswinidas manaswinidas force-pushed the feat/tool-calling-ui branch from c2113ea to 708b123 Compare May 13, 2026 09:56
@google-oss-prow google-oss-prow Bot added size/XL and removed size/L labels May 13, 2026
@manaswinidas
Copy link
Copy Markdown
Contributor Author

Removed " by Red Hat" from the labels - it just says "Validated" now.

Screenshot 2026-05-13 at 3 26 25 PM

@manaswinidas
Copy link
Copy Markdown
Contributor Author

Screenshot 2026-05-13 at 3 56 00 PM

Updated screenshot for details page

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants