@@ -59,6 +59,7 @@ import {
59
59
MODEL_STATE ,
60
60
ML_REMOTE_MODEL_LINK ,
61
61
MODEL_CATEGORY ,
62
+ isRAGUseCase ,
62
63
} from '../../../../common' ;
63
64
import { APP_PATH , getInitialValue } from '../../../utils' ;
64
65
import { AppState , createWorkflow , useAppDispatch } from '../../../store' ;
@@ -140,10 +141,7 @@ export function QuickConfigureModal(props: QuickConfigureModalProps) {
140
141
// If not custom/blank, we will have more req'd form fields for the users to supply
141
142
if ( workflowType !== WORKFLOW_TYPE . CUSTOM ) {
142
143
// if a RAG workflow, require an LLM
143
- if (
144
- workflowType === WORKFLOW_TYPE . RAG ||
145
- workflowType === WORKFLOW_TYPE . VECTOR_SEARCH_WITH_RAG
146
- ) {
144
+ if ( isRAGUseCase ( workflowType ) ) {
147
145
tempFormValues = {
148
146
...tempFormValues ,
149
147
llm : getInitialValue ( 'model' ) ,
@@ -160,24 +158,21 @@ export function QuickConfigureModal(props: QuickConfigureModalProps) {
160
158
} ) ,
161
159
} ;
162
160
}
163
- // all workflows besides custom and vanilla RAG require an embedding model
164
- if ( workflowType !== WORKFLOW_TYPE . RAG ) {
165
- tempFormValues = {
166
- ...tempFormValues ,
167
- embeddingModel : getInitialValue ( 'model' ) ,
168
- } ;
169
- tempFormSchemaObj = {
170
- ...tempFormSchemaObj ,
171
- embeddingModel : yup . object ( {
172
- id : yup
173
- . string ( )
174
- . trim ( )
175
- . min ( 1 , 'Too short' )
176
- . max ( MAX_STRING_LENGTH , 'Too long' )
177
- . required ( 'Required' ) ,
178
- } ) ,
179
- } ;
180
- }
161
+ tempFormValues = {
162
+ ...tempFormValues ,
163
+ embeddingModel : getInitialValue ( 'model' ) ,
164
+ } ;
165
+ tempFormSchemaObj = {
166
+ ...tempFormSchemaObj ,
167
+ embeddingModel : yup . object ( {
168
+ id : yup
169
+ . string ( )
170
+ . trim ( )
171
+ . min ( 1 , 'Too short' )
172
+ . max ( MAX_STRING_LENGTH , 'Too long' )
173
+ . required ( 'Required' ) ,
174
+ } ) ,
175
+ } ;
181
176
}
182
177
setFormValues ( tempFormValues ) ;
183
178
setFormSchemaObj ( tempFormSchemaObj ) ;
@@ -297,30 +292,26 @@ export function QuickConfigureModal(props: QuickConfigureModalProps) {
297
292
/>
298
293
</ EuiFlexItem >
299
294
) }
300
- { ( props . workflow ?. ui_metadata ?. type === WORKFLOW_TYPE . RAG ||
301
- props . workflow ?. ui_metadata ?. type ===
302
- WORKFLOW_TYPE . VECTOR_SEARCH_WITH_RAG ) &&
303
- ! isEmpty ( deployedModels ) && (
304
- < EuiFlexItem >
305
- < ModelField
306
- modelCategory = { MODEL_CATEGORY . LLM }
307
- fieldPath = "llm"
308
- showMissingInterfaceCallout = { false }
309
- label = "Large language model"
310
- helpText = "The large language model to generate user-friendly responses."
311
- fullWidth = { true }
312
- showError = { true }
313
- onModelChange = { ( modelId ) =>
314
- setQuickConfigureFields ( {
315
- ...quickConfigureFields ,
316
- llmId : modelId ,
317
- } )
318
- }
319
- />
320
- </ EuiFlexItem >
321
- ) }
295
+ { isRAGUseCase ( props . workflow ?. ui_metadata ?. type ) && (
296
+ < EuiFlexItem >
297
+ < ModelField
298
+ modelCategory = { MODEL_CATEGORY . LLM }
299
+ fieldPath = "llm"
300
+ showMissingInterfaceCallout = { false }
301
+ label = "Large language model"
302
+ helpText = "The large language model to generate user-friendly responses."
303
+ fullWidth = { true }
304
+ showError = { true }
305
+ onModelChange = { ( modelId ) =>
306
+ setQuickConfigureFields ( {
307
+ ...quickConfigureFields ,
308
+ llmId : modelId ,
309
+ } )
310
+ }
311
+ />
312
+ </ EuiFlexItem >
313
+ ) }
322
314
{ props . workflow ?. ui_metadata ?. type !== WORKFLOW_TYPE . CUSTOM &&
323
- props . workflow ?. ui_metadata ?. type !== WORKFLOW_TYPE . RAG &&
324
315
! isEmpty ( deployedModels ) && (
325
316
< EuiFlexItem >
326
317
< >
@@ -449,7 +440,7 @@ function injectQuickConfigureFields(
449
440
workflow . ui_metadata . config ,
450
441
quickConfigureFields ,
451
442
embeddingModelInterface ,
452
- isVectorSearchUseCase ( workflow )
443
+ isVectorSearchUseCase ( workflow ?. ui_metadata ?. type )
453
444
) ;
454
445
workflow . ui_metadata . config = updateIndexConfig (
455
446
workflow . ui_metadata . config ,
@@ -463,32 +454,19 @@ function injectQuickConfigureFields(
463
454
workflow . ui_metadata . config ,
464
455
quickConfigureFields ,
465
456
embeddingModelInterface ,
466
- isVectorSearchUseCase ( workflow )
467
- ) ;
468
- }
469
- break ;
470
- }
471
- case WORKFLOW_TYPE . RAG : {
472
- if ( ! isEmpty ( quickConfigureFields ) && workflow . ui_metadata ?. config ) {
473
- workflow . ui_metadata . config = updateIndexConfig (
474
- workflow . ui_metadata . config ,
475
- quickConfigureFields
476
- ) ;
477
- workflow . ui_metadata . config = updateRAGSearchResponseProcessors (
478
- workflow . ui_metadata . config ,
479
- quickConfigureFields ,
480
- llmInterface
457
+ isVectorSearchUseCase ( workflow ?. ui_metadata ?. type )
481
458
) ;
482
459
}
483
460
break ;
484
461
}
485
- case WORKFLOW_TYPE . VECTOR_SEARCH_WITH_RAG : {
462
+ case WORKFLOW_TYPE . VECTOR_SEARCH_WITH_RAG :
463
+ case WORKFLOW_TYPE . HYBRID_SEARCH_WITH_RAG : {
486
464
if ( ! isEmpty ( quickConfigureFields ) && workflow . ui_metadata ?. config ) {
487
465
workflow . ui_metadata . config = updateIngestProcessors (
488
466
workflow . ui_metadata . config ,
489
467
quickConfigureFields ,
490
468
embeddingModelInterface ,
491
- isVectorSearchUseCase ( workflow )
469
+ isVectorSearchUseCase ( workflow ?. ui_metadata ?. type )
492
470
) ;
493
471
workflow . ui_metadata . config = updateIndexConfig (
494
472
workflow . ui_metadata . config ,
@@ -502,7 +480,7 @@ function injectQuickConfigureFields(
502
480
workflow . ui_metadata . config ,
503
481
quickConfigureFields ,
504
482
embeddingModelInterface ,
505
- isVectorSearchUseCase ( workflow )
483
+ isVectorSearchUseCase ( workflow ?. ui_metadata ?. type )
506
484
) ;
507
485
workflow . ui_metadata . config = updateRAGSearchResponseProcessors (
508
486
workflow . ui_metadata . config ,
0 commit comments