(self)
| 246 | raise AppApiException(500, _('There can only be one starting node')) |
| 247 | |
| 248 | def is_valid_model_params(self): |
| 249 | node_list = [node for node in self.nodes if ( |
| 250 | node.type == 'ai-chat-node' or node.type == 'question-node' or node.type == 'parameter-extraction-node')] |
| 251 | for node in node_list: |
| 252 | if (node.properties.get('node_data', {}).get('model_id_type') or 'custom') == 'reference': |
| 253 | continue |
| 254 | model = QuerySet(Model).filter(id=node.properties.get('node_data', {}).get('model_id')).first() |
| 255 | if model is None: |
| 256 | raise ValidationError(ErrorDetail( |
| 257 | _('The node {node} model does not exist').format(node=node.properties.get("stepName")))) |
| 258 | credential = get_model_credential(model.provider, model.model_type, model.model_name) |
| 259 | model_params_setting = node.properties.get('node_data', {}).get('model_params_setting') |
| 260 | model_params_setting_form = credential.get_model_params_setting_form( |
| 261 | model.model_name) |
| 262 | if model_params_setting is None: |
| 263 | model_params_setting = model_params_setting_form.get_default_form_data() |
| 264 | node.properties.get('node_data', {})['model_params_setting'] = model_params_setting |
| 265 | if node.properties.get('status', 200) != 200: |
| 266 | raise ValidationError( |
| 267 | ErrorDetail(_("Node {node} is unavailable").format(node=node.properties.get("stepName")))) |
| 268 | node_list = [node for node in self.nodes if (node.type == 'function-lib-node')] |
| 269 | for node in node_list: |
| 270 | function_lib_id = node.properties.get('node_data', {}).get('function_lib_id') |
| 271 | if function_lib_id is None: |
| 272 | raise ValidationError(ErrorDetail( |
| 273 | _('The library ID of node {node} cannot be empty').format(node=node.properties.get("stepName")))) |
| 274 | f_lib = QuerySet(Tool).filter(id=function_lib_id).first() |
| 275 | if f_lib is None: |
| 276 | raise ValidationError(ErrorDetail(_("The function library for node {node} is not available").format( |
| 277 | node=node.properties.get("stepName")))) |
| 278 | |
| 279 | def is_valid_base_node(self): |
| 280 | base_node_list = [node for node in self.nodes if node.id == 'base-node'] |
no test coverage detected