fix(web): knowledge-retrieval node update
This commit is contained in:
@@ -16,6 +16,7 @@ import KnowledgeListModal from './KnowledgeListModal'
|
|||||||
import KnowledgeConfigModal from './KnowledgeConfigModal'
|
import KnowledgeConfigModal from './KnowledgeConfigModal'
|
||||||
import KnowledgeGlobalConfigModal from './KnowledgeGlobalConfigModal'
|
import KnowledgeGlobalConfigModal from './KnowledgeGlobalConfigModal'
|
||||||
import Tag from '@/components/Tag'
|
import Tag from '@/components/Tag'
|
||||||
|
import { getKnowledgeBaseList } from '@/api/knowledgeBase'
|
||||||
|
|
||||||
const Knowledge: FC<{value?: KnowledgeConfig; onChange?: (config: KnowledgeConfig) => void}> = ({value = {knowledge_bases: []}, onChange}) => {
|
const Knowledge: FC<{value?: KnowledgeConfig; onChange?: (config: KnowledgeConfig) => void}> = ({value = {knowledge_bases: []}, onChange}) => {
|
||||||
const { t } = useTranslation()
|
const { t } = useTranslation()
|
||||||
@@ -29,7 +30,26 @@ const Knowledge: FC<{value?: KnowledgeConfig; onChange?: (config: KnowledgeConfi
|
|||||||
if (value && JSON.stringify(value) !== JSON.stringify(editConfig)) {
|
if (value && JSON.stringify(value) !== JSON.stringify(editConfig)) {
|
||||||
setEditConfig({ ...(value || {}) })
|
setEditConfig({ ...(value || {}) })
|
||||||
const knowledge_bases = [...(value.knowledge_bases || [])]
|
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])
|
}, [value])
|
||||||
|
|
||||||
|
|||||||
@@ -318,7 +318,7 @@ const Properties: FC<PropertiesProps> = ({
|
|||||||
if (selectedNode?.data?.type === 'llm' && key === 'messages' && config.type === 'define') {
|
if (selectedNode?.data?.type === 'llm' && key === 'messages' && config.type === 'define') {
|
||||||
return (
|
return (
|
||||||
<Form.Item key={key} name={key}>
|
<Form.Item key={key} name={key}>
|
||||||
<MessageEditor options={variableList} />
|
<MessageEditor options={variableList} parentName={key} />
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -121,7 +121,7 @@ export const nodeLibrary: NodeLibrary[] = [
|
|||||||
type: 'define',
|
type: 'define',
|
||||||
defaultValue: [
|
defaultValue: [
|
||||||
{
|
{
|
||||||
role: 'system',
|
role: 'SYSTEM',
|
||||||
content: undefined,
|
content: undefined,
|
||||||
readonly: true
|
readonly: true
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -762,9 +762,11 @@ export const useWorkflowGraph = ({
|
|||||||
if (data.config[key] && 'defaultValue' in data.config[key] && key !== 'knowledge_retrieval') {
|
if (data.config[key] && 'defaultValue' in data.config[key] && key !== 'knowledge_retrieval') {
|
||||||
itemConfig[key] = data.config[key].defaultValue
|
itemConfig[key] = data.config[key].defaultValue
|
||||||
} else if (key === 'knowledge_retrieval' && data.config[key] && 'defaultValue' in data.config[key]) {
|
} else if (key === 'knowledge_retrieval' && data.config[key] && 'defaultValue' in data.config[key]) {
|
||||||
|
const { knowledge_bases } = data.config[key].defaultValue
|
||||||
itemConfig = {
|
itemConfig = {
|
||||||
...itemConfig,
|
...itemConfig,
|
||||||
...data.config[key].defaultValue
|
...data.config[key].defaultValue,
|
||||||
|
knowledge_bases: knowledge_bases.map((vo: any) => ({ kb_id: vo.id, ...vo.config }))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user