Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: Fix parent child retrieval issues #12206

Merged
merged 24 commits into from
Jan 2, 2025
Merged
Changes from 1 commit
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
229e7a1
feat: add invalid document handling and improve modal close functiona…
WTW0313 Dec 26, 2024
9214cc8
fix: disabled retrieval setting in document settings page
douxc Dec 27, 2024
12b67df
fix: retrieval test trunk preview style update
douxc Dec 27, 2024
beb96db
fix: update rerank model error messages for clarity and consistency
WTW0313 Dec 27, 2024
5b150a0
fix: update Score component, return null if score is unavailable
douxc Dec 27, 2024
c09b46d
Update build-push.yml
douxc Dec 27, 2024
b0e302c
test:format code, trigger build
douxc Dec 27, 2024
9969e1e
Merge branch 'fix/parent-child-retrieval' of https://github.com/langg…
WTW0313 Dec 27, 2024
d1bb8ea
feat: add parent-child related parameters to dataset API doc
nite-knite Dec 28, 2024
91e814d
refactor: modify retrieval model configuration in settings modal
WTW0313 Dec 30, 2024
d876773
fix: enhance rerank model validation and configuration
WTW0313 Dec 30, 2024
b163b71
Merge branch 'main' into fix/parent-child-retrieval
WTW0313 Dec 30, 2024
14d34e6
fix: simplify click handler in ResultItem component
WTW0313 Dec 30, 2024
5c45ff7
fix: fix layout responsiveness issue with flex box
WTW0313 Dec 30, 2024
8382948
Merge branch 'main' into fix/parent-child-retrieval
WTW0313 Dec 30, 2024
6f1a7fd
fix: update translation for rerank model requirement and clean up SWR…
WTW0313 Dec 31, 2024
796a327
fix: remove unused rerank model variables and improve retrieval confi…
WTW0313 Jan 2, 2025
e2becb9
Merge branch 'main' into fix/parent-child-retrieval
WTW0313 Jan 2, 2025
fa60a3d
fix: simplify model selector logic in retrieval parameter configuration
WTW0313 Jan 2, 2025
3432c87
fix: update reranking model structure for consistency in retrieval co…
WTW0313 Jan 2, 2025
f01d0c2
fix: enhance document detail handling with invalidation logic for seg…
WTW0313 Jan 2, 2025
f0d66f9
Merge branch 'main' into fix/parent-child-retrieval
WTW0313 Jan 2, 2025
3443fec
fix: remove 'fix/parent-child-retrieval' branch from workflow triggers
WTW0313 Jan 2, 2025
89a8866
fix: update reranking model structure for improved clarity and consis…
WTW0313 Jan 2, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
fix: enhance rerank model validation and configuration
WTW0313 committed Dec 30, 2024
commit d876773c11fb7510e711adb210b5b01f1763930e
Original file line number Diff line number Diff line change
@@ -3,6 +3,7 @@
import { memo, useCallback, useEffect, useMemo } from 'react'
import type { FC } from 'react'
import { useTranslation } from 'react-i18next'
import { useBoolean } from 'ahooks'
import WeightedScore from './weighted-score'
import TopKItem from '@/app/components/base/param-item/top-k-item'
import ScoreThresholdItem from '@/app/components/base/param-item/score-threshold-item'
@@ -60,7 +61,6 @@ const ConfigContent: FC<Props> = ({
const {
modelList: rerankModelList,
defaultModel: rerankDefaultModel,
currentModel: isRerankDefaultModelValid,
} = useModelListAndDefaultModelAndCurrentProviderAndModel(ModelTypeEnum.rerank)

const {
@@ -162,31 +162,29 @@ const ConfigContent: FC<Props> = ({

const canManuallyToggleRerank = useMemo(() => {
return (selectedDatasetsMode.allInternal && selectedDatasetsMode.allEconomic)
|| selectedDatasetsMode.allExternal
|| selectedDatasetsMode.allExternal
}, [selectedDatasetsMode.allEconomic, selectedDatasetsMode.allExternal, selectedDatasetsMode.allInternal])

const showRerankModel = useMemo(() => {
if (!canManuallyToggleRerank)
return true
else if (canManuallyToggleRerank && !isRerankDefaultModelValid)
return false

return datasetConfigs.reranking_enable
}, [canManuallyToggleRerank, datasetConfigs.reranking_enable, isRerankDefaultModelValid])
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [canManuallyToggleRerank])

const handleDisabledSwitchClick = useCallback(() => {
if (!currentRerankModel && !showRerankModel)
Toast.notify({ type: 'error', message: t('workflow.errorMsg.rerankModelRequired') })
}, [currentRerankModel, showRerankModel, t])
const [rerankingEnable, { toggle: toggleRerankingEnable }] = useBoolean(showRerankModel)

useEffect(() => {
if (canManuallyToggleRerank && showRerankModel !== datasetConfigs.reranking_enable) {
onChange({
...datasetConfigs,
reranking_enable: showRerankModel,
})
}
}, [canManuallyToggleRerank, showRerankModel, datasetConfigs, onChange])
const handleDisabledSwitchClick = useCallback((enable: boolean) => {
toggleRerankingEnable()
if (!currentRerankModel && enable)
Toast.notify({ type: 'error', message: t('workflow.errorMsg.rerankModelRequired') })
onChange({
...datasetConfigs,
reranking_enable: enable,
})
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [currentRerankModel, datasetConfigs, onChange])

return (
<div>
@@ -267,24 +265,12 @@ const ConfigContent: FC<Props> = ({
<div className='flex items-center'>
{
selectedDatasetsMode.allEconomic && !selectedDatasetsMode.mixtureInternalAndExternal && (
<div
className='flex items-center'
onClick={handleDisabledSwitchClick}
>
<Switch
size='md'
defaultValue={showRerankModel}
disabled={!currentRerankModel || !canManuallyToggleRerank}
onChange={(v) => {
if (canManuallyToggleRerank) {
onChange({
...datasetConfigs,
reranking_enable: v,
})
}
}}
/>
</div>
<Switch
size='md'
defaultValue={rerankingEnable}
disabled={!canManuallyToggleRerank}
onChange={handleDisabledSwitchClick}
/>
)
}
<div className='leading-[32px] ml-1 text-text-secondary system-sm-semibold'>{t('common.modelProvider.rerankModel.key')}</div>
@@ -298,21 +284,24 @@ const ConfigContent: FC<Props> = ({
triggerClassName='ml-1 w-4 h-4'
/>
</div>
<div>
<ModelSelector
defaultModel={rerankModel && { provider: rerankModel?.provider_name, model: rerankModel?.model_name }}
onSelect={(v) => {
onChange({
...datasetConfigs,
reranking_model: {
reranking_provider_name: v.provider,
reranking_model_name: v.model,
},
})
}}
modelList={rerankModelList}
/>
</div>
{
rerankingEnable && (
<div>
<ModelSelector
defaultModel={rerankModel && { provider: rerankModel?.provider_name, model: rerankModel?.model_name }}
onSelect={(v) => {
onChange({
...datasetConfigs,
reranking_model: {
reranking_provider_name: v.provider,
reranking_model_name: v.model,
},
})
}}
modelList={rerankModelList}
/>
</div>
)}
</div>
)
}
Original file line number Diff line number Diff line change
@@ -59,7 +59,8 @@ const RetrievalConfig: FC<Props> = ({
}, [onOpenFromPropsChange])

const {
defaultModel: rerankDefaultModel,
currentProvider: validRerankDefaultProvider,
currentModel: validRerankDefaultModel,
} = useModelListAndDefaultModelAndCurrentProviderAndModel(ModelTypeEnum.rerank)

const { multiple_retrieval_config } = payload
@@ -75,8 +76,8 @@ const RetrievalConfig: FC<Props> = ({
? undefined
: (!configs.reranking_model?.reranking_provider_name
? {
provider: rerankDefaultModel?.provider?.provider || '',
model: rerankDefaultModel?.model || '',
provider: validRerankDefaultProvider?.provider || '',
model: validRerankDefaultModel?.model || '',
}
: {
provider: configs.reranking_model?.reranking_provider_name,
@@ -86,7 +87,7 @@ const RetrievalConfig: FC<Props> = ({
weights: configs.weights as any,
reranking_enable: configs.reranking_enable,
})
}, [onMultipleRetrievalConfigChange, payload.retrieval_mode, rerankDefaultModel?.provider?.provider, rerankDefaultModel?.model, onRetrievalModeChange])
}, [onMultipleRetrievalConfigChange, payload.retrieval_mode, validRerankDefaultProvider, validRerankDefaultModel, onRetrievalModeChange])

return (
<PortalToFollowElem
2 changes: 1 addition & 1 deletion web/i18n/en-US/workflow.ts
Original file line number Diff line number Diff line change
@@ -189,7 +189,7 @@ const translation = {
variableValue: 'Variable Value',
code: 'Code',
model: 'Model',
rerankModel: 'Rerank Model',
rerankModel: 'A configured Rerank Model',
visionVariable: 'Vision Variable',
},
invalidVariable: 'Invalid variable',
4 changes: 2 additions & 2 deletions web/service/knowledge/use-document.ts
Original file line number Diff line number Diff line change
@@ -98,7 +98,7 @@ export const useSyncWebsite = () => {
})
}

const useDocumentDetailKey = [NAME_SPACE, 'documentDetail']
const useDocumentDetailKey = [NAME_SPACE, 'documentDetail', 'withoutMetaData']
export const useDocumentDetail = (payload: {
datasetId: string
documentId: string
@@ -118,7 +118,7 @@ export const useDocumentMetadata = (payload: {
}) => {
const { datasetId, documentId, params } = payload
return useQuery<DocumentDetailResponse>({
queryKey: [...useDocumentDetailKey, 'withMetaData', datasetId, documentId],
queryKey: [...useDocumentDetailKey, 'onlyMetaData', datasetId, documentId],
queryFn: () => get<DocumentDetailResponse>(`/datasets/${datasetId}/documents/${documentId}`, { params }),
})
}