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