default.ts 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import { BlockEnum } from '../../types'
  2. import type { NodeDefault } from '../../types'
  3. import type { KnowledgeRetrievalNodeType } from './types'
  4. import { ALL_CHAT_AVAILABLE_BLOCKS, ALL_COMPLETION_AVAILABLE_BLOCKS } from '@/app/components/workflow/constants'
  5. import { RETRIEVE_TYPE } from '@/types/app'
  6. const i18nPrefix = 'workflow'
  7. const nodeDefault: NodeDefault<KnowledgeRetrievalNodeType> = {
  8. defaultValue: {
  9. query_variable_selector: [],
  10. dataset_ids: [],
  11. retrieval_mode: RETRIEVE_TYPE.oneWay,
  12. },
  13. getAvailablePrevNodes(isChatMode: boolean) {
  14. const nodes = isChatMode
  15. ? ALL_CHAT_AVAILABLE_BLOCKS
  16. : ALL_COMPLETION_AVAILABLE_BLOCKS.filter(type => type !== BlockEnum.End)
  17. return nodes
  18. },
  19. getAvailableNextNodes(isChatMode: boolean) {
  20. const nodes = isChatMode ? ALL_CHAT_AVAILABLE_BLOCKS : ALL_COMPLETION_AVAILABLE_BLOCKS
  21. return nodes
  22. },
  23. checkValid(payload: KnowledgeRetrievalNodeType, t: any) {
  24. let errorMessages = ''
  25. if (!errorMessages && (!payload.query_variable_selector || payload.query_variable_selector.length === 0))
  26. errorMessages = t(`${i18nPrefix}.errorMsg.fieldRequired`, { field: t(`${i18nPrefix}.nodes.knowledgeRetrieval.queryVariable`) })
  27. if (!errorMessages && (!payload.dataset_ids || payload.dataset_ids.length === 0))
  28. errorMessages = t(`${i18nPrefix}.errorMsg.fieldRequired`, { field: t(`${i18nPrefix}.nodes.knowledgeRetrieval.knowledge`) })
  29. if (!errorMessages && payload.retrieval_mode === RETRIEVE_TYPE.multiWay && !payload.multiple_retrieval_config?.reranking_model?.provider)
  30. errorMessages = t(`${i18nPrefix}.errorMsg.fieldRequired`, { field: t(`${i18nPrefix}.errorMsg.fields.rerankModel`) })
  31. if (!errorMessages && payload.retrieval_mode === RETRIEVE_TYPE.oneWay && !payload.single_retrieval_config?.model?.provider)
  32. errorMessages = t(`${i18nPrefix}.errorMsg.fieldRequired`, { field: t('common.modelProvider.systemReasoningModel.key') })
  33. return {
  34. isValid: !errorMessages,
  35. errorMessage: errorMessages,
  36. }
  37. },
  38. }
  39. export default nodeDefault