diff --git a/web/packages/studio/src/components/FilterFields/BaseModelSearchFilterField.tsx b/web/packages/studio/src/components/FilterFields/BaseModelSearchFilterField.tsx index 6d75dc5e9d..7c406e8a56 100644 --- a/web/packages/studio/src/components/FilterFields/BaseModelSearchFilterField.tsx +++ b/web/packages/studio/src/components/FilterFields/BaseModelSearchFilterField.tsx @@ -39,7 +39,7 @@ const BaseModelSearchFilterFieldSingle: FC< const { models, fetchNextPage, hasNextPage, isFetchingNextPage, isLoading } = useBaseModels({ workspace, - filter: searchInput.trim() ? { name: searchInput.trim() } : undefined, + filter: searchInput.trim() ? { name: { $like: searchInput.trim() } } : undefined, sort: ModelEntitySortField.name, }); @@ -52,7 +52,11 @@ const BaseModelSearchFilterFieldSingle: FC< }, [selectedBaseModel, form]); const options = useMemo( - () => models.map((model) => ({ value: model.name ?? '', label: model.name ?? '' })), + () => + models.map((model) => ({ + value: `${model.workspace}/${model.name ?? ''}`, + label: model.name ?? '', + })), [models] ); diff --git a/web/packages/studio/src/components/dataViews/VirtualModelsDataView/index.tsx b/web/packages/studio/src/components/dataViews/VirtualModelsDataView/index.tsx index 47627fb016..ae6d1c1941 100644 --- a/web/packages/studio/src/components/dataViews/VirtualModelsDataView/index.tsx +++ b/web/packages/studio/src/components/dataViews/VirtualModelsDataView/index.tsx @@ -77,13 +77,21 @@ export const VirtualModelsDataView: FC = ({ const columnFilters = new Map(dataViewState.debouncedColumnFilters.map((f) => [f.id, f.value])); const name = dataViewState.debouncedSearchBar || undefined; const defaultModelEntity = columnFilters.get('default_model_entity') as string | undefined; + // API requires workspace-qualified form ("default/model-name"); dropdown yields bare names. + const qualifiedDefaultModelEntity = defaultModelEntity + ? defaultModelEntity.includes('/') + ? defaultModelEntity + : `${workspace}/${defaultModelEntity}` + : undefined; const createdAt = columnFilters.get('created_at') as DatetimeFilter | undefined; return withOperators({ ...(name ? { name: { $like: name } } : {}), - ...(defaultModelEntity ? { default_model_entity: { $eq: defaultModelEntity } } : {}), + ...(qualifiedDefaultModelEntity + ? { default_model_entity: { $eq: qualifiedDefaultModelEntity } } + : {}), ...(createdAt ? { created_at: createdAt } : {}), }); - }, [dataViewState.debouncedSearchBar, dataViewState.debouncedColumnFilters]); + }, [dataViewState.debouncedSearchBar, dataViewState.debouncedColumnFilters, workspace]); const { data, isFetching, error } = useListVirtualModels( workspace,