fix(web): knowledge-retrieval node update

This commit is contained in:
zhaoying
2025-12-31 10:35:40 +08:00
parent fd8466e002
commit 7f05a9c5c3
4 changed files with 26 additions and 4 deletions

View File

@@ -16,6 +16,7 @@ import KnowledgeListModal from './KnowledgeListModal'
import KnowledgeConfigModal from './KnowledgeConfigModal'
import KnowledgeGlobalConfigModal from './KnowledgeGlobalConfigModal'
import Tag from '@/components/Tag'
import { getKnowledgeBaseList } from '@/api/knowledgeBase'
const Knowledge: FC<{value?: KnowledgeConfig; onChange?: (config: KnowledgeConfig) => void}> = ({value = {knowledge_bases: []}, onChange}) => {
const { t } = useTranslation()
@@ -29,7 +30,26 @@ const Knowledge: FC<{value?: KnowledgeConfig; onChange?: (config: KnowledgeConfi
if (value && JSON.stringify(value) !== JSON.stringify(editConfig)) {
setEditConfig({ ...(value || {}) })
const knowledge_bases = [...(value.knowledge_bases || [])]
setKnowledgeList(knowledge_bases)
// 检查是否有knowledge_bases缺少name字段
const basesWithoutName = knowledge_bases.filter(base => !base.name)
if (basesWithoutName.length > 0) {
// 调用接口获取完整的知识库信息
getKnowledgeBaseList().then(res => {
const fullBases = knowledge_bases.map(base => {
if (!base.name) {
const fullBase = res.items.find((item: any) => item.id === base.kb_id)
return fullBase ? { ...base, ...fullBase } : base
}
return base
})
setKnowledgeList(fullBases)
}).catch(() => {
setKnowledgeList(knowledge_bases)
})
} else {
setKnowledgeList(knowledge_bases)
}
}
}, [value])

View File

@@ -318,7 +318,7 @@ const Properties: FC<PropertiesProps> = ({
if (selectedNode?.data?.type === 'llm' && key === 'messages' && config.type === 'define') {
return (
<Form.Item key={key} name={key}>
<MessageEditor options={variableList} />
<MessageEditor options={variableList} parentName={key} />
</Form.Item>
)
}

View File

@@ -121,7 +121,7 @@ export const nodeLibrary: NodeLibrary[] = [
type: 'define',
defaultValue: [
{
role: 'system',
role: 'SYSTEM',
content: undefined,
readonly: true
},

View File

@@ -762,9 +762,11 @@ export const useWorkflowGraph = ({
if (data.config[key] && 'defaultValue' in data.config[key] && key !== 'knowledge_retrieval') {
itemConfig[key] = data.config[key].defaultValue
} else if (key === 'knowledge_retrieval' && data.config[key] && 'defaultValue' in data.config[key]) {
const { knowledge_bases } = data.config[key].defaultValue
itemConfig = {
...itemConfig,
...data.config[key].defaultValue
...data.config[key].defaultValue,
knowledge_bases: knowledge_bases.map((vo: any) => ({ kb_id: vo.id, ...vo.config }))
}
}
})