Package: mldesigner
Azure Machine Learning Designer Python SDKThemldesignerpackage provide the SDK interface which work along with Azure ML Designer (drag-n-drop ML) UI experience.Azure ML Designer (drag-n-drop ML): designer is a UI tool in the Azure ML workspace for visually connecting datasets and components on an interactive canvas to create machine learning pipelines. To learn how to get started with the designer, seeTutorial: Predict automobile price with the designer.Especially, the package ease the authoring experience of resources likeComponents&Pipelines:Components: self-contained piece of code that does one step in a machine learning pipeline: data preprocessing, model training, model scoring, a hyperparameter tuning run, etc. Such that it can be parameterized and then used in different contexts.Pipelines: independently executable workflow of machine learning tasks composed by Components.Change Logv0.1.0b18(2024.01.31)Recommended to work with azure-ai-ml==1.13New Featuresmldesigner compilesupports to compileparallel component.mldesigner generatesupports to generate package with provided authentication.v0.1.0b17(2023.11.14)Recommended to work with azure-ai-ml==1.12Improvements[Compile] Update compiled command component schema path tohttps://azuremlschemas.azureedge.net/latest/commandComponent.schema.json.Fixed Bugs[Compile] Fixed the error when source component inputs is empty.v0.1.0b16(2023.10.18)Recommended to work with azure-ai-ml==1.11New Featuresmldesigner compilesupports to compile with.amlignore:mldesigner compile --source xxx.yaml --amlignore-file <path-to>/.amlignorev0.1.0b15(2023.09.13)Recommended to work with azure-ai-ml==1.10New Featuresmldesigner compilesupport v1.5 spark components.is_control=Trueis not required for primitive type output.generatepackage support specify version for registry component andgenerateby sdk support remote url.frommldesignerimportgenerategenerate(source="azureml://registries/{registry_name}/components/{component_name}/versions/0.0.8",)v0.1.0b14(2023.07.31)Recommended to work with azure-ai-ml==1.9.0New FeaturesSupport primitive type as component return annotation and not need to writeis_control=True.SupportAnnotatedtype as component input or component return annotation.SupportAnnotatedtype in@group.frommldesignerimportcommand_component,Output,Metafromtyping_extensionsimportAnnotated@command_component()defmy_component1(input_int:int)->int:returninput_int@command_component()defmy_component2(input_int:Annotated[int,Meta(description="test annotation int",min=1,max=10,default=1)],)\->Annotated[int,Meta(description="test annotation int")]:# using Meta class to configure more meta datareturninput_intv0.1.0b13(2023.05.16)Recommended to work with azure-ai-ml==1.7.0ImprovementsSupport to generate components with specified version or label:azureml://subscriptions//resourcegroups/<resource_group>/workspaces//components/<component_name>/labels/azureml://subscriptions//resourcegroups/<resource_group>/workspaces//components/<component_name>/versions/Refine the log content of generate component package.v0.1.0b12(2023.03.28)Recommended to work with azure-ai-ml==1.5.0ImprovementsSupport multiple types of identity for dynamic pipeline creation, the priority is user identity > managed identity > others.Refinemldesigner execute:When component name is not specified, if there is only one component in the source file, execute this component, raise error when there are multiple components.If required parameters are not provided, list all of them and raise error.Improve support forenumvalues ingenerate_package.Support enum values with no\wcharacters, e.g. empty string,-,+and\t.Support enum values with duplicate sanitized names, e.g.Aanda.Usecurated environmentas default mldesigner component environment:For command component:azureml://registries/azureml/environments/mldesigner-minimal/labels/latestFor dynamic pipeline:azureml://registries/azureml/environments/mldesigner/labels/latestSupportmltabletype in@dynamicoutputsFixed BugsFix wrong command error when mldesigner component code is set to be a file instead of a folder.v0.1.0b11(2023.02.09)Recommended to work with azure-ai-ml==1.4.0ImprovementsAdd python version requirements<4.0,>=3.7v0.1.0b10(2023.01.20)Recommended to work with azure-ai-ml==1.3.0New FeaturesSupport primitive type as component return annotation.Support@groupas component return annotation.Add validation for component execution results according to return annotation.ImprovementsReturn component execution result asmldesigner executeresult.Fixed BugsFixed missing keyword arguments when executing component in an environment that has both mldesigner and azure-ai-mlFixed compile error when compiling pipeline that has a node uses remote registered component either from workspace or registry.Fixed parse error when input string is a json serialized string.v0.1.0b9(2022.12.06)Recommended to work with azure-ai-ml==1.2.0ImprovementsEnable creating component with auto-incremented version if no version specified.Update mldesigner default environment image to bemcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04Mldesigner compile improvements:Exits with code 1 when there is failed compilation.Output yaml file with original file name if the input is a yaml.Generated pipeline node keys is ordered.Fixed BugsFixed mldesigner executor does not pass**kwargsto component funcv0.1.0b8(2022.10.26)Fixed BugsFixed dependency issue when importingtyping_extensionsv0.1.0b7(2022.10.25)New FeaturesSupport mldesigner compile:mldesigner compileSupport list type component input for generate_package.Fixed BugsFixed execute error when input string has space or "=" inside.Fixed execute error for bool parameter parsing.ImprovementsRemovemodeclient default valuero_mount/rw_mountfrom mldesignerInput/Outputclass.Refine error message when defining a component in.ipynb.Refine error message when failed to create component entity.v0.1.0b6(2022.09.19)Improvements:Adopted optional input new format: '$[[]]' instead of old '[]'.Support Enum for mldesigner input.Raise error if input has no annotation specified.Fixed Bugs:Fixed import error when used along with azure-ai-ml<0.1.0b7.v0.1.0b5(2022.09.08)New FeaturesEnable using @command_component without brackets when no additional parameters.frommldesignerimportcommand_component@command_componentdefmy_component():pass# equals to@command_component()defmy_component():passFixed Bugs:Fixed component command execution error when no inputs or outputs specified.Fixed incompatible issue with azure-ai-ml >=0.1.0b7: error when trying to import azure-ai-ml constantsv0.1.0b4(2022.08.22)New Features:Support mldesigner generate:Generate component package from local yaml files or remote sourceSee reference doc:mldesigner generate docSample notebook:mldesigner generate samplesSupport mldesigner execute: execute component in local host environment.CLI example:mldesigner execute --source ./components.py --name my_component inputs a=1 b=2SDK example:frommldesignerimportexecutefromcomponentsimportmy_componentnode=my_component(a=1,b=2)res=execute(node)More information:mldesigner execute --helpImprovements:Fix bump version config.v0.1.0b3(2022.07.14)New Features:Support optional input for mldesigner Input class.frommldesignerimportcommand_component,Input@command_component()defmy_component(optional_param:Input(type="integer",optional=True)):passSupport io descriptions inferring from docstring for pipeline & component.Improvements:Handle compatibility issue for future changes. Less imports of private functionsRemove default property for mldesigner Input class.Enable mldesigner to use argparser to parse incoming args.Compatibility handling: old azure ai ml package use different way to load component.Component input like "int_param=3", no longer to be processed as optional input when registering to remote.v0.1.0b2(2022.05.23)Improvements:Refine code terminologies, replace old dsl with new mldesigner.v0.1.0b1(2022.05.20)New Features:Support using decorator @command_component to define a component.Create a component:frommldesignerimportcommand_component,Input,Output@command_component()defhello_world(input:Input,output:Output,param='str_param'):print("Hello World!")Register the component to server:fromazure.ai.mlimportMLClientclient=MLClient.from_config(credential=credential)client.components.create_or_update(hello_world)Use sdk component in pipeline:fromazure.ai.mlimportdsl@dsl.pipeline()defmy_pipeline():node=hello_world()return{"pipeline_output":node.outputs.output}pipeline=my_pipeline()client.jobs.create_or_update(pipeline)