mirror of
https://github.com/langgenius/dify.git
synced 2026-04-28 11:56:55 +08:00
refactor: update variable utility functions to include isRagVariableVar for enhanced variable validation
This commit is contained in:
parent
3e187ba6aa
commit
58a3471a5f
@ -41,7 +41,7 @@ import type { DataSet } from '@/models/datasets'
|
|||||||
import { fetchDatasets } from '@/service/datasets'
|
import { fetchDatasets } from '@/service/datasets'
|
||||||
import { MAX_TREE_DEPTH } from '@/config'
|
import { MAX_TREE_DEPTH } from '@/config'
|
||||||
import useNodesAvailableVarList from './use-nodes-available-var-list'
|
import useNodesAvailableVarList from './use-nodes-available-var-list'
|
||||||
import { getNodeUsedVars, isConversationVar, isENV, isSystemVar } from '../nodes/_base/components/variable/utils'
|
import { getNodeUsedVars, isSpecialVar } from '../nodes/_base/components/variable/utils'
|
||||||
|
|
||||||
export const useChecklist = (nodes: Node[], edges: Edge[]) => {
|
export const useChecklist = (nodes: Node[], edges: Edge[]) => {
|
||||||
const { t } = useTranslation()
|
const { t } = useTranslation()
|
||||||
@ -122,10 +122,8 @@ export const useChecklist = (nodes: Node[], edges: Edge[]) => {
|
|||||||
const availableVars = map[node.id].availableVars
|
const availableVars = map[node.id].availableVars
|
||||||
|
|
||||||
for (const variable of usedVars) {
|
for (const variable of usedVars) {
|
||||||
const isEnv = isENV(variable)
|
const isSpecialVars = isSpecialVar(variable[0])
|
||||||
const isConvVar = isConversationVar(variable)
|
if (!isSpecialVars) {
|
||||||
const isSysVar = isSystemVar(variable)
|
|
||||||
if (!isEnv && !isConvVar && !isSysVar) {
|
|
||||||
const usedNode = availableVars.find(v => v.nodeId === variable?.[0])
|
const usedNode = availableVars.find(v => v.nodeId === variable?.[0])
|
||||||
if (usedNode) {
|
if (usedNode) {
|
||||||
const usedVar = usedNode.vars.find(v => v.variable === variable?.[1])
|
const usedVar = usedNode.vars.find(v => v.variable === variable?.[1])
|
||||||
@ -165,7 +163,7 @@ export const useChecklist = (nodes: Node[], edges: Edge[]) => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
return list
|
return list
|
||||||
}, [nodes, edges, buildInTools, customTools, workflowTools, language, nodesExtraData, t, strategyProviders, getCheckData, getStartNodes, getToolIcon, dataSourceList])
|
}, [nodes, getStartNodes, nodesExtraData, edges, buildInTools, customTools, workflowTools, language, dataSourceList, getToolIcon, strategyProviders, getCheckData, t, map])
|
||||||
|
|
||||||
return needWarningNodes
|
return needWarningNodes
|
||||||
}
|
}
|
||||||
|
|||||||
@ -14,7 +14,7 @@ import { BlockEnum } from '@/app/components/workflow/types'
|
|||||||
import { Line3 } from '@/app/components/base/icons/src/public/common'
|
import { Line3 } from '@/app/components/base/icons/src/public/common'
|
||||||
import { Variable02 } from '@/app/components/base/icons/src/vender/solid/development'
|
import { Variable02 } from '@/app/components/base/icons/src/vender/solid/development'
|
||||||
import { BubbleX, Env } from '@/app/components/base/icons/src/vender/line/others'
|
import { BubbleX, Env } from '@/app/components/base/icons/src/vender/line/others'
|
||||||
import { getNodeInfoById, isConversationVar, isENV, isSystemVar } from '@/app/components/workflow/nodes/_base/components/variable/utils'
|
import { getNodeInfoById, isConversationVar, isENV, isRagVariableVar, isSystemVar } from '@/app/components/workflow/nodes/_base/components/variable/utils'
|
||||||
import Tooltip from '@/app/components/base/tooltip'
|
import Tooltip from '@/app/components/base/tooltip'
|
||||||
import cn from '@/utils/classnames'
|
import cn from '@/utils/classnames'
|
||||||
import { isExceptionVariable } from '@/app/components/workflow/utils'
|
import { isExceptionVariable } from '@/app/components/workflow/utils'
|
||||||
@ -43,7 +43,8 @@ const VariableTag = ({
|
|||||||
|
|
||||||
const isEnv = isENV(valueSelector)
|
const isEnv = isENV(valueSelector)
|
||||||
const isChatVar = isConversationVar(valueSelector)
|
const isChatVar = isConversationVar(valueSelector)
|
||||||
const isValid = Boolean(node) || isEnv || isChatVar
|
const isRagVar = isRagVariableVar(valueSelector)
|
||||||
|
const isValid = Boolean(node) || isEnv || isChatVar || isRagVar
|
||||||
|
|
||||||
const variableName = isSystemVar(valueSelector) ? valueSelector.slice(0).join('.') : valueSelector.slice(1).join('.')
|
const variableName = isSystemVar(valueSelector) ? valueSelector.slice(0).join('.') : valueSelector.slice(1).join('.')
|
||||||
const isException = isExceptionVariable(variableName, node?.data.type)
|
const isException = isExceptionVariable(variableName, node?.data.type)
|
||||||
|
|||||||
@ -295,7 +295,7 @@ const VarReferencePicker: FC<Props> = ({
|
|||||||
const isEnv = isENV(value as ValueSelector)
|
const isEnv = isENV(value as ValueSelector)
|
||||||
const isChatVar = isConversationVar(value as ValueSelector)
|
const isChatVar = isConversationVar(value as ValueSelector)
|
||||||
const isRagVar = isRagVariableVar(value as ValueSelector)
|
const isRagVar = isRagVariableVar(value as ValueSelector)
|
||||||
const isValidVar = Boolean(outputVarNode) || isEnv || isChatVar
|
const isValidVar = Boolean(outputVarNode) || isEnv || isChatVar || isRagVar
|
||||||
const isException = isExceptionVariable(varName, outputVarNode?.type)
|
const isException = isExceptionVariable(varName, outputVarNode?.type)
|
||||||
return {
|
return {
|
||||||
isEnv,
|
isEnv,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user