You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

default.ts 2.3KB

6 months ago
6 months ago
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. import type { NodeDefault } from '../../types'
  2. import type { QuestionClassifierNodeType } from './types'
  3. import { genNodeMetaData } from '@/app/components/workflow/utils'
  4. import { BlockEnum } from '@/app/components/workflow/types'
  5. import { BlockClassificationEnum } from '@/app/components/workflow/block-selector/types'
  6. const i18nPrefix = 'workflow'
  7. const metaData = genNodeMetaData({
  8. classification: BlockClassificationEnum.QuestionUnderstand,
  9. sort: 1,
  10. type: BlockEnum.QuestionClassifier,
  11. })
  12. const nodeDefault: NodeDefault<QuestionClassifierNodeType> = {
  13. metaData,
  14. defaultValue: {
  15. query_variable_selector: [],
  16. model: {
  17. provider: '',
  18. name: '',
  19. mode: 'chat',
  20. completion_params: {
  21. temperature: 0.7,
  22. },
  23. },
  24. classes: [
  25. {
  26. id: '1',
  27. name: '',
  28. },
  29. {
  30. id: '2',
  31. name: '',
  32. },
  33. ],
  34. _targetBranches: [
  35. {
  36. id: '1',
  37. name: '',
  38. },
  39. {
  40. id: '2',
  41. name: '',
  42. },
  43. ],
  44. vision: {
  45. enabled: false,
  46. },
  47. },
  48. checkValid(payload: QuestionClassifierNodeType, t: any) {
  49. let errorMessages = ''
  50. if (!errorMessages && (!payload.query_variable_selector || payload.query_variable_selector.length === 0))
  51. errorMessages = t(`${i18nPrefix}.errorMsg.fieldRequired`, { field: t(`${i18nPrefix}.nodes.questionClassifiers.inputVars`) })
  52. if (!errorMessages && !payload.model.provider)
  53. errorMessages = t(`${i18nPrefix}.errorMsg.fieldRequired`, { field: t(`${i18nPrefix}.nodes.questionClassifiers.model`) })
  54. if (!errorMessages && (!payload.classes || payload.classes.length === 0))
  55. errorMessages = t(`${i18nPrefix}.errorMsg.fieldRequired`, { field: t(`${i18nPrefix}.nodes.questionClassifiers.class`) })
  56. if (!errorMessages && (payload.classes.some(item => !item.name)))
  57. errorMessages = t(`${i18nPrefix}.errorMsg.fieldRequired`, { field: t(`${i18nPrefix}.nodes.questionClassifiers.topicName`) })
  58. if (!errorMessages && payload.vision?.enabled && !payload.vision.configs?.variable_selector?.length)
  59. errorMessages = t(`${i18nPrefix}.errorMsg.fieldRequired`, { field: t(`${i18nPrefix}.errorMsg.fields.visionVariable`) })
  60. return {
  61. isValid: !errorMessages,
  62. errorMessage: errorMessages,
  63. }
  64. },
  65. }
  66. export default nodeDefault