| @@ -270,7 +270,7 @@ const DatasetConfig: FC = () => { | |||
| handleMetadataModelChange={handleMetadataModelChange} | |||
| handleMetadataCompletionParamsChange={handleMetadataCompletionParamsChange} | |||
| isCommonVariable | |||
| availableCommonStringVars={promptVariablesToSelect.filter(item => item.type === MetadataFilteringVariableType.string)} | |||
| availableCommonStringVars={promptVariablesToSelect.filter(item => item.type === MetadataFilteringVariableType.string || item.type === MetadataFilteringVariableType.select)} | |||
| availableCommonNumberVars={promptVariablesToSelect.filter(item => item.type === MetadataFilteringVariableType.number)} | |||
| /> | |||
| </div> | |||
| @@ -77,7 +77,9 @@ const ConditionItem = ({ | |||
| const valueAndValueMethod = useMemo(() => { | |||
| if ( | |||
| (currentMetadata?.type === MetadataFilteringVariableType.string || currentMetadata?.type === MetadataFilteringVariableType.number) | |||
| (currentMetadata?.type === MetadataFilteringVariableType.string | |||
| || currentMetadata?.type === MetadataFilteringVariableType.number | |||
| || currentMetadata?.type === MetadataFilteringVariableType.select) | |||
| && typeof condition.value === 'string' | |||
| ) { | |||
| const regex = isCommonVariable ? COMMON_VARIABLE_REGEX : VARIABLE_REGEX | |||
| @@ -140,7 +142,9 @@ const ConditionItem = ({ | |||
| </div> | |||
| <div className='border-t border-t-divider-subtle'> | |||
| { | |||
| !comparisonOperatorNotRequireValue(condition.comparison_operator) && currentMetadata?.type === MetadataFilteringVariableType.string && ( | |||
| !comparisonOperatorNotRequireValue(condition.comparison_operator) | |||
| && (currentMetadata?.type === MetadataFilteringVariableType.string | |||
| || currentMetadata?.type === MetadataFilteringVariableType.select) && ( | |||
| <ConditionString | |||
| valueMethod={localValueMethod} | |||
| onValueMethodChange={handleValueMethodChange} | |||
| @@ -22,6 +22,7 @@ export const isComparisonOperatorNeedTranslate = (operator?: ComparisonOperator) | |||
| export const getOperators = (type?: MetadataFilteringVariableType) => { | |||
| switch (type) { | |||
| case MetadataFilteringVariableType.string: | |||
| case MetadataFilteringVariableType.select: | |||
| return [ | |||
| ComparisonOperator.is, | |||
| ComparisonOperator.isNot, | |||
| @@ -18,7 +18,7 @@ const MetadataIcon = ({ | |||
| return ( | |||
| <> | |||
| { | |||
| type === MetadataFilteringVariableType.string && ( | |||
| (type === MetadataFilteringVariableType.string || type === MetadataFilteringVariableType.select) && ( | |||
| <RiTextSnippet className={cn('h-3.5 w-3.5', className)} /> | |||
| ) | |||
| } | |||
| @@ -80,6 +80,7 @@ export enum MetadataFilteringVariableType { | |||
| string = 'string', | |||
| number = 'number', | |||
| time = 'time', | |||
| select = 'select', | |||
| } | |||
| export type MetadataFilteringCondition = { | |||