@@ -72,30 +72,14 @@ const createEvaluation = async (body: ICommonObject, baseURL: string, orgId: str
7272 const row = appServer . AppDataSource . getRepository ( Evaluation ) . create ( newEval )
7373 row . average_metrics = JSON . stringify ( { } )
7474
75- // Parse and validate evaluator arrays to prevent DoS attacks
76- const chatflowTypes = body . chatflowType ? JSON . parse ( body . chatflowType ) : [ ]
77- if ( ! Array . isArray ( chatflowTypes ) ) {
78- throw new Error ( 'chatflowType must be a valid array' )
79- }
80-
81- const simpleEvaluators = body . selectedSimpleEvaluators . length > 0 ? JSON . parse ( body . selectedSimpleEvaluators ) : [ ]
82- if ( ! Array . isArray ( simpleEvaluators ) ) {
83- throw new Error ( 'selectedSimpleEvaluators must be a valid array' )
84- }
85-
8675 const additionalConfig : ICommonObject = {
87- chatflowTypes : chatflowTypes ,
76+ chatflowTypes : body . chatflowType ? JSON . parse ( body . chatflowType ) : [ ] ,
8877 datasetAsOneConversation : body . datasetAsOneConversation ,
89- simpleEvaluators : simpleEvaluators
78+ simpleEvaluators : body . selectedSimpleEvaluators . length > 0 ? JSON . parse ( body . selectedSimpleEvaluators ) : [ ]
9079 }
9180
9281 if ( body . evaluationType === 'llm' ) {
93- const lLMEvaluators = body . selectedLLMEvaluators . length > 0 ? JSON . parse ( body . selectedLLMEvaluators ) : [ ]
94- if ( ! Array . isArray ( lLMEvaluators ) ) {
95- throw new Error ( 'selectedLLMEvaluators must be a valid array' )
96- }
97-
98- additionalConfig . lLMEvaluators = lLMEvaluators
82+ additionalConfig . lLMEvaluators = body . selectedLLMEvaluators . length > 0 ? JSON . parse ( body . selectedLLMEvaluators ) : [ ]
9983 additionalConfig . llmConfig = {
10084 credentialId : body . credentialId ,
10185 llm : body . llm ,
@@ -139,12 +123,6 @@ const createEvaluation = async (body: ICommonObject, baseURL: string, orgId: str
139123 // When chatflow has an APIKey
140124 const apiKeys : { chatflowId : string ; apiKey : string } [ ] = [ ]
141125 const chatflowIds = JSON . parse ( body . chatflowId )
142-
143- // Validate chatflowIds is an actual array to prevent DoS attacks
144- if ( ! Array . isArray ( chatflowIds ) ) {
145- throw new Error ( 'chatflowId must be a valid array' )
146- }
147-
148126 for ( let i = 0 ; i < chatflowIds . length ; i ++ ) {
149127 const chatflowId = chatflowIds [ i ]
150128 const cFlow = await appServer . AppDataSource . getRepository ( ChatFlow ) . findOneBy ( {
@@ -268,7 +246,7 @@ const createEvaluation = async (body: ICommonObject, baseURL: string, orgId: str
268246 metricsArray ,
269247 actualOutputArray ,
270248 errorArray ,
271- additionalConfig . simpleEvaluators ,
249+ body . selectedSimpleEvaluators . length > 0 ? JSON . parse ( body . selectedSimpleEvaluators ) : [ ] ,
272250 workspaceId
273251 )
274252
@@ -279,7 +257,7 @@ const createEvaluation = async (body: ICommonObject, baseURL: string, orgId: str
279257
280258 if ( body . evaluationType === 'llm' ) {
281259 resultRow . llmConfig = additionalConfig . llmConfig
282- resultRow . LLMEvaluators = additionalConfig . lLMEvaluators
260+ resultRow . LLMEvaluators = body . selectedLLMEvaluators . length > 0 ? JSON . parse ( body . selectedLLMEvaluators ) : [ ]
283261 const llmEvaluatorMap : { evaluatorId : string ; evaluator : any } [ ] = [ ]
284262 for ( let i = 0 ; i < resultRow . LLMEvaluators . length ; i ++ ) {
285263 const evaluatorId = resultRow . LLMEvaluators [ i ]
0 commit comments