Skip to content

Commit

Permalink
address comments on 12/30. remove unnecessary try-catch blocks in new…
Browse files Browse the repository at this point in the history
…workflows file and modify processors for each preset in the fetch function

Signed-off-by: Kama Huang <[email protected]>
  • Loading branch information
Kama Huang committed Dec 31, 2024
1 parent 71bf71f commit b57af43
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 94 deletions.
26 changes: 13 additions & 13 deletions public/pages/workflow_detail/workflow_detail.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -39,22 +39,22 @@ const renderWithRouter = (
initialEntries: [`/workflow/${workflowId}`],
});

const needsVersion = [
WORKFLOW_TYPE.SEMANTIC_SEARCH,
WORKFLOW_TYPE.MULTIMODAL_SEARCH,
WORKFLOW_TYPE.HYBRID_SEARCH,
].includes(workflowType);
const mockInput = {
id: workflowId,
name: workflowName,
type: workflowType,
version: [
WORKFLOW_TYPE.SEMANTIC_SEARCH,
WORKFLOW_TYPE.MULTIMODAL_SEARCH,
WORKFLOW_TYPE.HYBRID_SEARCH,
].includes(workflowType)
? MINIMUM_FULL_SUPPORTED_VERSION
: undefined,
};

return {
...render(
<Provider
store={mockStore({
id: workflowId,
name: workflowName,
type: workflowType,
version: needsVersion ? MINIMUM_FULL_SUPPORTED_VERSION : undefined,
})}
>
<Provider store={mockStore(mockInput)}>
<Router history={history}>
<Switch>
<Route
Expand Down
59 changes: 21 additions & 38 deletions public/pages/workflows/new_workflow/new_workflow.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -81,31 +81,23 @@ const filterPresetsByVersion = async (
WORKFLOW_TYPE.HYBRID_SEARCH,
];

try {
const version = await getEffectiveVersion(dataSourceId);

if (semver.lt(version, MIN_SUPPORTED_VERSION)) {
return [];
}
const version = await getEffectiveVersion(dataSourceId);

if (
semver.gte(version, MIN_SUPPORTED_VERSION) &&
semver.lt(version, MINIMUM_FULL_SUPPORTED_VERSION)
) {
return workflows.filter((workflow) => {
const workflowType =
workflow.ui_metadata?.type ?? WORKFLOW_TYPE.UNKNOWN;
return allowedPresetsFor217.includes(workflowType as WORKFLOW_TYPE);
});
}
if (semver.lt(version, MIN_SUPPORTED_VERSION)) {
return [];
}

return workflows;
} catch (error) {
if (
semver.gte(version, MIN_SUPPORTED_VERSION) &&
semver.lt(version, MINIMUM_FULL_SUPPORTED_VERSION)
) {
return workflows.filter((workflow) => {
const workflowType = workflow.ui_metadata?.type ?? WORKFLOW_TYPE.UNKNOWN;
return allowedPresetsFor217.includes(workflowType as WORKFLOW_TYPE);
});
}

return workflows;
};

/**
Expand Down Expand Up @@ -177,29 +169,20 @@ export function NewWorkflow(props: NewWorkflowProps) {

setIsVersionLoading(true);

try {
const version = await getEffectiveVersion(dataSourceId);
const version = await getEffectiveVersion(dataSourceId);

const enrichedWorkflows = presetWorkflows.map((presetWorkflow) =>
enrichPresetWorkflowWithUiMetadata(presetWorkflow, version)
);
const enrichedWorkflows = presetWorkflows.map((presetWorkflow) =>
enrichPresetWorkflowWithUiMetadata(presetWorkflow, version)
);

const versionFilteredWorkflows = await filterPresetsByVersion(
enrichedWorkflows,
dataSourceId
);
const versionFilteredWorkflows = await filterPresetsByVersion(
enrichedWorkflows,
dataSourceId
);

setAllWorkflows(versionFilteredWorkflows);
setFilteredWorkflows(versionFilteredWorkflows);
setIsVersionLoading(false);
} catch (error) {
console.error('Error loading workflows:', error);
setAllWorkflows([]);
setFilteredWorkflows([]);
if (dataSourceId) {
setIsVersionLoading(false);
}
}
setAllWorkflows(versionFilteredWorkflows);
setFilteredWorkflows(versionFilteredWorkflows);
setIsVersionLoading(false);
};

loadWorkflows();
Expand Down
56 changes: 13 additions & 43 deletions public/pages/workflows/new_workflow/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,22 +42,25 @@ export function enrichPresetWorkflowWithUiMetadata(
presetWorkflow: Partial<WorkflowTemplate>,
version: string
): WorkflowTemplate {
const defaultVersion = MINIMUM_FULL_SUPPORTED_VERSION;
const workflowVersion = version ?? defaultVersion;

let uiMetadata = {} as UIState;
switch (presetWorkflow.ui_metadata?.type || WORKFLOW_TYPE.CUSTOM) {
case WORKFLOW_TYPE.SEMANTIC_SEARCH: {
uiMetadata = fetchSemanticSearchMetadata(version);
uiMetadata = fetchSemanticSearchMetadata(workflowVersion);
break;
}
case WORKFLOW_TYPE.MULTIMODAL_SEARCH: {
uiMetadata = fetchMultimodalSearchMetadata(version);
uiMetadata = fetchMultimodalSearchMetadata(workflowVersion);
break;
}
case WORKFLOW_TYPE.HYBRID_SEARCH: {
uiMetadata = fetchHybridSearchMetadata(version);
uiMetadata = fetchHybridSearchMetadata(workflowVersion);
break;
}
case WORKFLOW_TYPE.RAG: {
uiMetadata = fetchRAGMetadata(version);
uiMetadata = fetchRAGMetadata(workflowVersion);
break;
}
default: {
Expand Down Expand Up @@ -146,20 +149,12 @@ export function fetchEmptyUIConfig(): WorkflowConfig {
}

export function fetchSemanticSearchMetadata(version: string): UIState {
if (!version) {
throw new Error(
'Version parameter is required for fetchSemanticSearchMetadata'
);
}
const isPreV219 = semver.lt(version, MINIMUM_FULL_SUPPORTED_VERSION);
let baseState = fetchEmptyMetadata();
baseState.type = WORKFLOW_TYPE.SEMANTIC_SEARCH;
const isPreV219 = semver.lt(version, MINIMUM_FULL_SUPPORTED_VERSION);

baseState.config.ingest.enrich.processors = isPreV219
? [
new TextEmbeddingIngestProcessor().toObj(),
new TextImageEmbeddingIngestProcessor().toObj(),
]
? [new TextEmbeddingIngestProcessor().toObj()]
: [new MLIngestProcessor().toObj()];

baseState.config.ingest.index.name.value = generateId('knn_index', 6);
Expand All @@ -184,22 +179,12 @@ export function fetchSemanticSearchMetadata(version: string): UIState {
}

export function fetchMultimodalSearchMetadata(version: string): UIState {
if (!version) {
throw new Error(
'Version parameter is required for fetchSemanticSearchMetadata'
);
}

const isPreV219 = semver.lt(version, MINIMUM_FULL_SUPPORTED_VERSION);
let baseState = fetchEmptyMetadata();
baseState.type = WORKFLOW_TYPE.MULTIMODAL_SEARCH;

const isPreV219 = semver.lt(version, MINIMUM_FULL_SUPPORTED_VERSION);

baseState.config.ingest.enrich.processors = isPreV219
? [
new TextEmbeddingIngestProcessor().toObj(),
new TextImageEmbeddingIngestProcessor().toObj(),
]
? [new TextImageEmbeddingIngestProcessor().toObj()]
: [new MLIngestProcessor().toObj()];

baseState.config.ingest.index.name.value = generateId('knn_index', 6);
Expand All @@ -224,21 +209,12 @@ export function fetchMultimodalSearchMetadata(version: string): UIState {
}

export function fetchHybridSearchMetadata(version: string): UIState {
if (!version) {
throw new Error(
'Version parameter is required for fetchSemanticSearchMetadata'
);
}

const isPreV219 = semver.lt(version, MINIMUM_FULL_SUPPORTED_VERSION);
let baseState = fetchEmptyMetadata();
baseState.type = WORKFLOW_TYPE.HYBRID_SEARCH;
const isPreV219 = semver.lt(version, MINIMUM_FULL_SUPPORTED_VERSION);

baseState.config.ingest.enrich.processors = isPreV219
? [
new TextEmbeddingIngestProcessor().toObj(),
new TextImageEmbeddingIngestProcessor().toObj(),
]
? [new TextEmbeddingIngestProcessor().toObj()]
: [new MLIngestProcessor().toObj()];

baseState.config.ingest.index.name.value = generateId('knn_index', 6);
Expand Down Expand Up @@ -269,12 +245,6 @@ export function fetchHybridSearchMetadata(version: string): UIState {
}

export function fetchRAGMetadata(version: string): UIState {
if (!version) {
throw new Error(
'Version parameter is required for fetchSemanticSearchMetadata'
);
}

let baseState = fetchEmptyMetadata();
baseState.type = WORKFLOW_TYPE.RAG;
baseState.config.ingest.index.name.value = generateId('my_index', 6);
Expand Down

0 comments on commit b57af43

Please sign in to comment.