merge main

This commit is contained in:
zxhlyh 2025-03-10 11:17:33 +08:00
commit 7ad5415a38
6 changed files with 19 additions and 7 deletions

View File

@ -256,6 +256,7 @@ const DatasetConfig: FC = () => {
<div className='py-2 border-t border-t-divider-subtle'> <div className='py-2 border-t border-t-divider-subtle'>
<MetadataFilter <MetadataFilter
metadataList={metadataList} metadataList={metadataList}
selectedDatasetsLoaded
metadataFilterMode={datasetConfigs.metadata_filtering_mode} metadataFilterMode={datasetConfigs.metadata_filtering_mode}
metadataFilteringConditions={datasetConfigs.metadata_filtering_conditions} metadataFilteringConditions={datasetConfigs.metadata_filtering_conditions}
handleAddCondition={handleAddCondition} handleAddCondition={handleAddCondition}

View File

@ -238,7 +238,7 @@ const DatePicker = ({
</div> </div>
)} )}
</PortalToFollowElemTrigger> </PortalToFollowElemTrigger>
<PortalToFollowElemContent className='z-50'> <PortalToFollowElemContent className={popupZIndexClassname}>
<div className='w-[252px] mt-1 bg-components-panel-bg rounded-xl shadow-lg shadow-shadow-shadow-5 border-[0.5px] border-components-panel-border'> <div className='w-[252px] mt-1 bg-components-panel-bg rounded-xl shadow-lg shadow-shadow-shadow-5 border-[0.5px] border-components-panel-border'>
{/* Header */} {/* Header */}
{view === ViewType.date ? ( {view === ViewType.date ? (

View File

@ -2,6 +2,7 @@ import {
useEffect, useEffect,
useState, useState,
} from 'react' } from 'react'
import { unionBy } from 'lodash-es'
import { useTranslation } from 'react-i18next' import { useTranslation } from 'react-i18next'
import { RiFilter3Line } from '@remixicon/react' import { RiFilter3Line } from '@remixicon/react'
import MetadataPanel from './metadata-panel' import MetadataPanel from './metadata-panel'
@ -15,21 +16,25 @@ import type { MetadataShape } from '@/app/components/workflow/nodes/knowledge-re
const MetadataTrigger = ({ const MetadataTrigger = ({
metadataFilteringConditions, metadataFilteringConditions,
metadataList = [], metadataList: originalMetadataList = [],
handleRemoveCondition, handleRemoveCondition,
selectedDatasetsLoaded,
...restProps ...restProps
}: MetadataShape) => { }: MetadataShape) => {
const { t } = useTranslation() const { t } = useTranslation()
const [open, setOpen] = useState(false) const [open, setOpen] = useState(false)
const conditions = metadataFilteringConditions?.conditions || [] const conditions = metadataFilteringConditions?.conditions || []
const metadataList = unionBy(originalMetadataList, 'name').sort(a => a.id === 'built-in' ? 1 : -1)
useEffect(() => { useEffect(() => {
conditions.forEach((condition) => { if (selectedDatasetsLoaded) {
if (!metadataList.find(metadata => metadata.name === condition.name)) conditions.forEach((condition) => {
handleRemoveCondition(condition.name) if (!metadataList.find(metadata => metadata.name === condition.name))
}) handleRemoveCondition(condition.name)
})
}
// eslint-disable-next-line react-hooks/exhaustive-deps // eslint-disable-next-line react-hooks/exhaustive-deps
}, [metadataList, handleRemoveCondition]) }, [metadataList, handleRemoveCondition, selectedDatasetsLoaded])
return ( return (
<PortalToFollowElem <PortalToFollowElem

View File

@ -37,6 +37,7 @@ const Panel: FC<NodePanelProps<KnowledgeRetrievalNodeType>> = ({
handleRetrievalModeChange, handleRetrievalModeChange,
handleMultipleRetrievalConfigChange, handleMultipleRetrievalConfigChange,
selectedDatasets, selectedDatasets,
selectedDatasetsLoaded,
handleOnDatasetsChange, handleOnDatasetsChange,
isShowSingleRun, isShowSingleRun,
hideSingleRun, hideSingleRun,
@ -130,6 +131,7 @@ const Panel: FC<NodePanelProps<KnowledgeRetrievalNodeType>> = ({
<div className='mb-2 py-2'> <div className='mb-2 py-2'>
<MetadataFilter <MetadataFilter
metadataList={metadataList} metadataList={metadataList}
selectedDatasetsLoaded={selectedDatasetsLoaded}
metadataFilterMode={inputs.metadata_filtering_mode} metadataFilterMode={inputs.metadata_filtering_mode}
metadataFilteringConditions={inputs.metadata_filtering_conditions} metadataFilteringConditions={inputs.metadata_filtering_conditions}
handleAddCondition={handleAddCondition} handleAddCondition={handleAddCondition}

View File

@ -110,6 +110,7 @@ export type HandleToggleConditionLogicalOperator = () => void
export type MetadataShape = { export type MetadataShape = {
metadataList?: MetadataInDoc[] metadataList?: MetadataInDoc[]
selectedDatasetsLoaded?: boolean
metadataFilteringConditions?: MetadataFilteringConditions metadataFilteringConditions?: MetadataFilteringConditions
handleAddCondition: HandleAddCondition handleAddCondition: HandleAddCondition
handleRemoveCondition: HandleRemoveCondition handleRemoveCondition: HandleRemoveCondition

View File

@ -211,6 +211,7 @@ const useConfig = (id: string, payload: KnowledgeRetrievalNodeType) => {
setInputs(newInputs) setInputs(newInputs)
}, [inputs, setInputs, selectedDatasets, currentRerankModel, currentRerankProvider]) }, [inputs, setInputs, selectedDatasets, currentRerankModel, currentRerankProvider])
const [selectedDatasetsLoaded, setSelectedDatasetsLoaded] = useState(false)
// datasets // datasets
useEffect(() => { useEffect(() => {
(async () => { (async () => {
@ -225,6 +226,7 @@ const useConfig = (id: string, payload: KnowledgeRetrievalNodeType) => {
draft._datasets = selectedDatasets draft._datasets = selectedDatasets
}) })
setInputs(newInputs) setInputs(newInputs)
setSelectedDatasetsLoaded(true)
})() })()
// eslint-disable-next-line react-hooks/exhaustive-deps // eslint-disable-next-line react-hooks/exhaustive-deps
}, []) }, [])
@ -418,6 +420,7 @@ const useConfig = (id: string, payload: KnowledgeRetrievalNodeType) => {
handleModelChanged, handleModelChanged,
handleCompletionParamsChange, handleCompletionParamsChange,
selectedDatasets: selectedDatasets.filter(d => d.name), selectedDatasets: selectedDatasets.filter(d => d.name),
selectedDatasetsLoaded,
handleOnDatasetsChange, handleOnDatasetsChange,
isShowSingleRun, isShowSingleRun,
hideSingleRun, hideSingleRun,