MLFlowClient.jl icon indicating copy to clipboard operation
MLFlowClient.jl copied to clipboard

Document how to set tags when creating an experiment

Open vonpetersenn opened this issue 1 year ago • 3 comments

Hello,

I have trouble setting tags for an experiment.

On the code


###
#header
###

mlf = MLFlow("http://localhost:5000//api")

experiment_name = "tag_run"
experiment_tags = Dict("tag1" => "tag1value")

createexperiment(mlf; name=experiment_name, tags = experiment_tags)

I get a HTTP 400 error :

HTTP/1.1 400 Bad Request Server: gunicorn Date: Tue, 04 Jun 2024 10:26:14 GMT Connection: close Content-Type: application/json Content-Length: 218

while


###
#header
###

mlf = MLFlow("http://localhost:5000//api")

experiment_name = "tag_run"

createexperiment(mlf; name=experiment_name)

runs as expected.

I tried to understand the problem a little bit but I don't think I quite understand it. The createexperiment function parses the Dictionary as an argument to mlfpost which itself creates a body = JSON.json(kwargs) So the HTTP request should read something like:

HTTP.post(apiuri, apiheaders, body) = HTTP.post( apiuri, apiheads, "{\"tags\":{\"tag1\":\"tag1value\"}}" )

vonpetersenn avatar Jun 04 '24 10:06 vonpetersenn

Ok, I found the solution in issue "Improve tag definition #30"

The correct way to set tags would habe been [Dict("key" => "tag1", "value" => "tag1value")]

This should be documented somewhere.

vonpetersenn avatar Jun 04 '24 10:06 vonpetersenn

@vonpetersenn Thanks for flagging this source of confusion. Updated the title of this post accordingly and re-opened.

ablaom avatar Jun 05 '24 07:06 ablaom

@ablaom I have opened a pull request with updated documentation

vonpetersenn avatar Jun 05 '24 12:06 vonpetersenn

This issue was solved in the latest release v0.6.0.

pebeto avatar Feb 11 '25 03:02 pebeto