kubeflow / website

Kubeflow's public website
Creative Commons Attribution 4.0 International
145 stars 752 forks source link

A more compatible way for concat a url in Kubeflow Pipeline/v2/Installation/Quickstart #3703

Open realnumber666 opened 3 months ago

realnumber666 commented 3 months ago

While I'm trying to lauch a KFP following the doc, I found that current URL concat way is not compatible when user set endpoint with a / in the end.

Current Doc Content

image

A Possible Mistake

from kfp import dsl
from kfp import client

@dsl.component
def addition_component(num1: int, num2: int) -> int:
    return num1 + num2

@dsl.pipeline(name='addition-pipeline')
def my_pipeline(a: int, b: int, c: int = 10):
    add_task_1 = addition_component(num1=a, num2=b)
    add_task_2 = addition_component(num1=add_task_1.output, num2=c)

endpoint = 'http://localhost:8080/'    # <= endpoint with a / in the end
kfp_client = client.Client(host=endpoint)
run = kfp_client.create_run_from_pipeline_func(
    my_pipeline,
    arguments={
        'a': 1,
        'b': 2
    }
)

url = f'{endpoint}/#/runs/details/{run.run_id}'
print(url)

Output

There will be a redundant '/' following 8080. http://localhost:8080//#/runs/details/your_run_id_here

What We Can Do

I think we can use urllib other than just a simple string concat to avoiding this possible problem.