| ): | ): | ||||
| """ | """ | ||||
| Append variables recursively | Append variables recursively | ||||
| :param pool: variable pool to append variables to | |||||
| :param node_id: node id | :param node_id: node id | ||||
| :param variable_key_list: variable key list | :param variable_key_list: variable key list | ||||
| :param variable_value: variable value | :param variable_value: variable value |
| return node_instance, generator | return node_instance, generator | ||||
| except Exception as e: | except Exception as e: | ||||
| logger.exception( | logger.exception( | ||||
| "error while running node_instance, workflow_id=%s, node_id=%s, type=%s, version=%s", | |||||
| "error while running node_instance, node_id=%s, type=%s, version=%s", | |||||
| node_instance.id, | node_instance.id, | ||||
| node_instance.node_type, | node_instance.node_type, | ||||
| node_instance.version(), | node_instance.version(), |
| class StorageKeyLoader: | class StorageKeyLoader: | ||||
| """FileKeyLoader load the storage key from database for a list of files. | """FileKeyLoader load the storage key from database for a list of files. | ||||
| This loader is batched, the | |||||
| This loader is batched, the database query count is constant regardless of the input size. | |||||
| """ | """ | ||||
| def __init__(self, session: Session, tenant_id: str) -> None: | def __init__(self, session: Session, tenant_id: str) -> None: | ||||
| if file.transfer_method in (FileTransferMethod.LOCAL_FILE, FileTransferMethod.REMOTE_URL): | if file.transfer_method in (FileTransferMethod.LOCAL_FILE, FileTransferMethod.REMOTE_URL): | ||||
| upload_file_row = upload_files.get(model_id) | upload_file_row = upload_files.get(model_id) | ||||
| if upload_file_row is None: | if upload_file_row is None: | ||||
| raise ValueError(...) | |||||
| raise ValueError(f"Upload file not found for id: {model_id}") | |||||
| file._storage_key = upload_file_row.key | file._storage_key = upload_file_row.key | ||||
| elif file.transfer_method == FileTransferMethod.TOOL_FILE: | elif file.transfer_method == FileTransferMethod.TOOL_FILE: | ||||
| tool_file_row = tool_files.get(model_id) | tool_file_row = tool_files.get(model_id) | ||||
| if tool_file_row is None: | if tool_file_row is None: | ||||
| raise ValueError(...) | |||||
| raise ValueError(f"Tool file not found for id: {model_id}") | |||||
| file._storage_key = tool_file_row.file_key | file._storage_key = tool_file_row.file_key |
| ) | ) | ||||
| except ProviderTokenNotInitError: | except ProviderTokenNotInitError: | ||||
| # If we can't get the embedding model, preserve existing settings | # If we can't get the embedding model, preserve existing settings | ||||
| logging.warning( | |||||
| f"Failed to initialize embedding model {data['embedding_model_provider']}/{data['embedding_model']}, " | |||||
| f"preserving existing settings" | |||||
| ) | |||||
| if dataset.embedding_model_provider and dataset.embedding_model: | if dataset.embedding_model_provider and dataset.embedding_model: | ||||
| filtered_data["embedding_model_provider"] = dataset.embedding_model_provider | filtered_data["embedding_model_provider"] = dataset.embedding_model_provider | ||||
| filtered_data["embedding_model"] = dataset.embedding_model | filtered_data["embedding_model"] = dataset.embedding_model |