Skip to content

Commit 9db5b06

Browse files
authored
[elsa] 知识检索节点去除userId入参,在option中增加knowledgeConfigId参数 (#119)
1 parent b6059ba commit 9db5b06

File tree

7 files changed

+46
-35
lines changed

7 files changed

+46
-35
lines changed

framework/elsa/fit-elsa-react/src/common/Consts.js

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -208,14 +208,10 @@ export const DEFAULT_LOOP_NODE_CONTEXT = {
208208
}],
209209
};
210210

211-
export const DEFAULT_KNOWLEDGE_RETRIEVAL_NODE_USER_ID = {
212-
id: `userId_${uuidv4()}`,
213-
name: 'userId',
214-
type: 'String',
215-
from: 'Reference',
216-
referenceNode: VIRTUAL_CONTEXT_NODE.id,
217-
referenceId: VIRTUAL_CONTEXT_NODE_VARIABLES.USER_ID,
218-
referenceKey: VIRTUAL_CONTEXT_NODE_VARIABLES.USER_ID,
219-
editable: false,
220-
value: [VIRTUAL_CONTEXT_NODE_VARIABLES.USER_ID],
211+
export const DEFAULT_KNOWLEDGE_RETRIEVAL_NODE_KNOWLEDGE_CONFIG_ID = {
212+
id: `knowledgeConfigId_${uuidv4()}`,
213+
name: 'knowledgeConfigId',
214+
type: DATA_TYPES.STRING,
215+
from: FROM_TYPE.INPUT,
216+
value: null,
221217
};

framework/elsa/fit-elsa-react/src/components/knowledgeRetrieval/KnowledgeRetrievalWrapper.jsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ export const KnowledgeRetrievalWrapper = ({data, shapeStatus}) => {
2626
const outputParams = data && data.outputParams;
2727
const option = data.inputParams.find(item => item.name === 'option');
2828
const groupId = getConfigValue(option, ['groupId'], 'value');
29+
const knowledgeConfigId = getConfigValue(option, ['knowledgeConfigId'], 'value');
2930
const {t} = useTranslation();
3031
const dispatch = useDispatch();
3132

@@ -43,7 +44,7 @@ export const KnowledgeRetrievalWrapper = ({data, shapeStatus}) => {
4344
content={tips}
4445
maxInputLength={1000}
4546
editable={false}/>
46-
<KnowledgeForm knowledge={knowledge} groupId={groupId} disabled={shapeStatus.disabled}/>
47+
<KnowledgeForm knowledge={knowledge} groupId={groupId} knowledgeConfigId={knowledgeConfigId} disabled={shapeStatus.disabled}/>
4748
<SearchForm option={option} groupId={groupId} shapeStatus={shapeStatus}/>
4849
<OutputForm outputParams={outputParams} outputPopover={'knowledgeBaseOutputPopover'}/>
4950
</>);

framework/elsa/fit-elsa-react/src/components/knowledgeRetrieval/knowledgeRetrievalComponent.jsx

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77
import {v4 as uuidv4} from 'uuid';
88
import {KnowledgeRetrievalWrapper} from '@/components/knowledgeRetrieval/KnowledgeRetrievalWrapper.jsx';
99
import {retrievalComponent} from '@/components/retrieval/retrievalComponent.jsx';
10-
import {DATA_TYPES, DEFAULT_KNOWLEDGE_REPO_GROUP, DEFAULT_KNOWLEDGE_RETRIEVAL_NODE_USER_ID, FROM_TYPE, VIRTUAL_CONTEXT_NODE} from '@/common/Consts.js';
10+
import {DATA_TYPES, DEFAULT_KNOWLEDGE_REPO_GROUP, DEFAULT_KNOWLEDGE_RETRIEVAL_NODE_KNOWLEDGE_CONFIG_ID, FROM_TYPE} from '@/common/Consts.js';
1111
import {
12-
UpdateGroupIdReducer,
12+
UpdateGroupIdAndConfigIdReducer,
1313
UpdateInputParamReducer,
1414
UpdateKnowledgeReducer,
1515
UpdateOptionReducer,
@@ -28,7 +28,7 @@ export const knowledgeRetrievalComponent = (jadeConfig, shape) => {
2828
addReducer(builtInReducers, UpdateInputParamReducer());
2929
addReducer(builtInReducers, UpdateOptionReducer());
3030
addReducer(builtInReducers, UpdateKnowledgeReducer());
31-
addReducer(builtInReducers, UpdateGroupIdReducer());
31+
addReducer(builtInReducers, UpdateGroupIdAndConfigIdReducer());
3232

3333
/**
3434
* 必填
@@ -137,9 +137,10 @@ export const knowledgeRetrievalComponent = (jadeConfig, shape) => {
137137
type: DATA_TYPES.STRING,
138138
from: FROM_TYPE.INPUT,
139139
value: DEFAULT_KNOWLEDGE_REPO_GROUP,
140-
}],
141-
},
142-
DEFAULT_KNOWLEDGE_RETRIEVAL_NODE_USER_ID],
140+
},
141+
DEFAULT_KNOWLEDGE_RETRIEVAL_NODE_KNOWLEDGE_CONFIG_ID
142+
],
143+
}],
143144
outputParams: [{
144145
id: `output_${uuidv4()}`,
145146
name: 'output',

framework/elsa/fit-elsa-react/src/components/knowledgeRetrieval/knowledgeRetrievalNodeState.jsx

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,6 @@ export const knowledgeRetrievalNodeState = (id, x, y, width, height, parent, dra
3939
{
4040
name: 'option',
4141
},
42-
{
43-
name: 'userId',
44-
},
4542
],
4643
return: {
4744
type: 'object',

framework/elsa/fit-elsa-react/src/components/knowledgeRetrieval/reducers.js

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
import {structToConfig, toConfigType, updateConfigValueByObject, updateInput} from '@/components/util/JadeConfigUtils.js';
88
import {v4 as uuidv4} from 'uuid';
9-
import {DATA_TYPES, DEFAULT_KNOWLEDGE_REPO_GROUP_STRUCT, FROM_TYPE} from '@/common/Consts.js';
9+
import {DATA_TYPES, DEFAULT_KNOWLEDGE_REPO_GROUP_STRUCT, DEFAULT_KNOWLEDGE_RETRIEVAL_NODE_KNOWLEDGE_CONFIG_ID, FROM_TYPE} from '@/common/Consts.js';
1010

1111
/**
1212
* updateInputParams 事件处理器.
@@ -127,14 +127,14 @@ export const UpdateKnowledgeReducer = () => {
127127
};
128128

129129
/**
130-
* updateGroupId 事件处理器.
130+
* updateGroupIdAndConfigId 事件处理器.
131131
*
132132
* @return {{}} 处理器对象.
133133
* @constructor
134134
*/
135-
export const UpdateGroupIdReducer = () => {
135+
export const UpdateGroupIdAndConfigIdReducer = () => {
136136
const self = {};
137-
self.type = 'updateGroupId';
137+
self.type = 'updateGroupIdAndConfigId';
138138

139139
/**
140140
* 处理方法.
@@ -157,6 +157,14 @@ export const UpdateGroupIdReducer = () => {
157157
}
158158

159159
groupId.value = action.value;
160+
161+
let knowledgeConfigId = option.value.find(v => v.name === 'knowledgeConfigId');
162+
if (!knowledgeConfigId) {
163+
knowledgeConfigId = {...DEFAULT_KNOWLEDGE_RETRIEVAL_NODE_KNOWLEDGE_CONFIG_ID};
164+
option.value.push(knowledgeConfigId);
165+
}
166+
knowledgeConfigId.value = action.knowledgeConfigId;
167+
160168
return newConfig;
161169
};
162170

framework/elsa/fit-elsa-react/src/components/retrieval/KnowledgeForm.jsx

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,13 @@ const {Panel} = Collapse;
2222
*
2323
* @param knowledge 知识库利列表.
2424
* @param groupId 知识库group.
25+
* @param knowledgeConfigId 知识库配置的唯一标识.
2526
* @param disabled 禁用状态.
2627
* @param maximum 最大值.
2728
* @param enableGroup 是否启动groupId.
2829
* @returns {JSX.Element}
2930
*/
30-
const _KnowledgeForm = ({knowledge, groupId, disabled, maximum = null, enableGroup = true}) => {
31+
const _KnowledgeForm = ({knowledge, groupId, knowledgeConfigId, disabled, maximum = null, enableGroup = true}) => {
3132
const dispatch = useDispatch();
3233
const shape = useShapeContext();
3334
const {t} = useTranslation();
@@ -90,10 +91,12 @@ const _KnowledgeForm = ({knowledge, groupId, disabled, maximum = null, enableGro
9091
type: 'SELECT_KNOWLEDGE_BASE_GROUP',
9192
value: {
9293
selectedGroupId: groupId ?? DEFAULT_KNOWLEDGE_REPO_GROUP,
93-
onSelect: (repoGroupId) => {
94+
selectedKnowledgeConfigId: knowledgeConfigId,
95+
onSelect: (repoGroupId, knowledgeConfigId) => {
9496
dispatch({
95-
type: 'updateGroupId',
97+
type: 'updateGroupIdAndConfigId',
9698
value: repoGroupId,
99+
knowledgeConfigId: knowledgeConfigId,
97100
});
98101
},
99102
},
@@ -196,6 +199,7 @@ const _KnowledgeForm = ({knowledge, groupId, disabled, maximum = null, enableGro
196199
_KnowledgeForm.propTypes = {
197200
knowledge: PropTypes.array.isRequired,
198201
groupId: PropTypes.string.isRequired,
202+
knowledgeConfigId: PropTypes.string,
199203
maximum: PropTypes.number,
200204
disabled: PropTypes.bool,
201205
enableGroup: PropTypes.bool,
@@ -204,6 +208,7 @@ _KnowledgeForm.propTypes = {
204208
const areEqual = (prevProps, nextProps) => {
205209
return prevProps.knowledge === nextProps.knowledge &&
206210
prevProps.groupId === nextProps.groupId &&
211+
prevProps.knowledgeConfigId === nextProps.knowledgeConfigId &&
207212
prevProps.maximum === nextProps.maximum &&
208213
prevProps.enableGroup === nextProps.enableGroup &&
209214
prevProps.disabled === nextProps.disabled;

framework/elsa/fit-elsa-react/src/flow/compatibility/compatibilityProcessors.js

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import {getDefaultReference} from '@/components/util/ReferenceUtil.js';
99
import {
1010
DATA_TYPES,
1111
DEFAULT_KNOWLEDGE_REPO_GROUP_STRUCT,
12-
DEFAULT_KNOWLEDGE_RETRIEVAL_NODE_USER_ID,
12+
DEFAULT_KNOWLEDGE_RETRIEVAL_NODE_KNOWLEDGE_CONFIG_ID,
1313
DEFAULT_LLM_KNOWLEDGE_BASES,
1414
DEFAULT_LLM_REFERENCE_OUTPUT,
1515
DEFAULT_LOOP_NODE_CONTEXT,
@@ -400,19 +400,22 @@ export const knowledgeRetrievalCompatibilityProcessor = (shapeData, graph, pageH
400400
if (Array.isArray(optionValue) && !optionValue.some(v => v.name === 'groupId')) {
401401
optionValue.push(DEFAULT_KNOWLEDGE_REPO_GROUP_STRUCT);
402402
}
403+
404+
if (Array.isArray(optionValue) && !optionValue.some(v => v.name === 'knowledgeConfigId')) {
405+
optionValue.push(DEFAULT_KNOWLEDGE_RETRIEVAL_NODE_KNOWLEDGE_CONFIG_ID);
406+
}
403407
};
404408

405409
const userIdParamProcess = () => {
406410
const inputParams = self.shapeData.flowMeta.jober.converter.entity.inputParams;
407-
const userIdParam = inputParams.find(inputParam => inputParam.name === 'userId');
408-
if (!userIdParam) {
409-
inputParams.push(DEFAULT_KNOWLEDGE_RETRIEVAL_NODE_USER_ID);
411+
const userIdInputParamIndex = inputParams.findIndex(inputParam => inputParam.name === 'userId');
412+
if (userIdInputParamIndex !== -1) {
413+
inputParams.splice(userIdInputParamIndex, 1);
410414
}
411415
const entityParams = self.shapeData.flowMeta.jober.entity.params;
412-
if (!entityParams.find(param => param.name === 'userId')) {
413-
const optionIndex = entityParams.findIndex(param => param.name === 'option');
414-
const insertIndex = optionIndex !== -1 ? optionIndex + 1 : entityParams.length;
415-
entityParams.splice(insertIndex, 0, {name: 'userId'});
416+
const userIdIndex = entityParams.findIndex(param => param.name === 'userId');
417+
if (userIdIndex !== -1) {
418+
entityParams.splice(userIdIndex, 1);
416419
}
417420
};
418421

0 commit comments

Comments
 (0)