Update visualizer_app.py
Browse files- visualizer_app.py +76 -60
visualizer_app.py
CHANGED
|
@@ -70,33 +70,19 @@ with app.setup:
|
|
| 70 |
|
| 71 |
@app.cell
|
| 72 |
def client_variables(client_instantiation_form):
|
| 73 |
-
|
| 74 |
-
|
| 75 |
-
else:
|
| 76 |
-
client_setup = None
|
| 77 |
-
|
| 78 |
### Extract Credential Variables:
|
| 79 |
-
if client_setup
|
| 80 |
-
wx_url = client_setup["wx_region"]
|
| 81 |
-
wx_api_key = client_setup["wx_api_key"].strip()
|
| 82 |
-
os.environ["WATSONX_APIKEY"] = wx_api_key
|
| 83 |
-
|
| 84 |
-
if client_setup["project_id"]
|
| 85 |
-
|
| 86 |
-
else:
|
| 87 |
-
project_id = None
|
| 88 |
-
|
| 89 |
-
if client_setup["space_id"] is not None:
|
| 90 |
-
space_id = client_setup["space_id"].strip()
|
| 91 |
-
else:
|
| 92 |
-
space_id = None
|
| 93 |
-
|
| 94 |
else:
|
| 95 |
os.environ["WATSONX_APIKEY"] = ""
|
| 96 |
-
project_id = None
|
| 97 |
-
space_id = None
|
| 98 |
-
wx_api_key = None
|
| 99 |
-
wx_url = None
|
| 100 |
return client_setup, project_id, space_id, wx_api_key, wx_url
|
| 101 |
|
| 102 |
|
|
@@ -110,54 +96,67 @@ def _(client_setup, wx_api_key):
|
|
| 110 |
|
| 111 |
@app.cell
|
| 112 |
def _():
|
| 113 |
-
|
| 114 |
-
|
| 115 |
-
"project_id": os.environ.get("WX_PROJECT_ID"),
|
| 116 |
-
"space_id": "",
|
| 117 |
-
}
|
| 118 |
-
return baked_in_creds
|
| 119 |
|
| 120 |
|
| 121 |
@app.cell
|
| 122 |
def client_instantiation(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 123 |
client_setup,
|
|
|
|
|
|
|
| 124 |
project_id,
|
| 125 |
space_id,
|
|
|
|
| 126 |
wx_api_key,
|
| 127 |
wx_url,
|
| 128 |
):
|
| 129 |
### Instantiate the watsonx.ai client
|
| 130 |
if client_setup:
|
| 131 |
try:
|
| 132 |
-
wx_credentials = Credentials(
|
| 133 |
-
|
| 134 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 135 |
)
|
| 136 |
-
|
| 137 |
-
if project_id:
|
| 138 |
-
project_client = APIClient(credentials=wx_credentials, project_id=project_id)
|
| 139 |
-
else:
|
| 140 |
-
project_client = None
|
| 141 |
-
|
| 142 |
-
if space_id:
|
| 143 |
-
deployment_client = APIClient(credentials=wx_credentials, space_id=space_id)
|
| 144 |
-
else:
|
| 145 |
-
deployment_client = None
|
| 146 |
|
| 147 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 148 |
client_callout_kind = "success"
|
| 149 |
-
|
| 150 |
except Exception as e:
|
| 151 |
error_message = str(e)
|
| 152 |
-
client_status = mo.md(
|
|
|
|
|
|
|
| 153 |
client_callout_kind = "danger"
|
| 154 |
-
project_client = None
|
| 155 |
-
deployment_client = None
|
| 156 |
else:
|
| 157 |
-
wx_credentials = None
|
| 158 |
-
|
| 159 |
-
|
| 160 |
-
|
|
|
|
|
|
|
|
|
|
| 161 |
client_callout_kind = "neutral"
|
| 162 |
|
| 163 |
return (
|
|
@@ -366,7 +365,7 @@ def client_instantiation_form():
|
|
| 366 |
"AU": "https://au-syd.ml.cloud.ibm.com",
|
| 367 |
"CA": "https://ca-tor.ml.cloud.ibm.com"
|
| 368 |
}
|
| 369 |
-
|
| 370 |
# Create a form with multiple elements
|
| 371 |
client_instantiation_form = (
|
| 372 |
mo.md('''
|
|
@@ -384,13 +383,30 @@ def client_instantiation_form():
|
|
| 384 |
> If you provide both you can switch the active one in the dropdown.
|
| 385 |
''')
|
| 386 |
.batch(
|
| 387 |
-
wx_region = mo.ui.dropdown(
|
| 388 |
-
|
| 389 |
-
|
| 390 |
-
|
| 391 |
-
|
| 392 |
-
|
| 393 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 394 |
,)
|
| 395 |
.form(show_clear_button=True, bordered=False)
|
| 396 |
)
|
|
|
|
| 70 |
|
| 71 |
@app.cell
|
| 72 |
def client_variables(client_instantiation_form):
|
| 73 |
+
client_setup = client_instantiation_form.value or None
|
| 74 |
+
|
|
|
|
|
|
|
|
|
|
| 75 |
### Extract Credential Variables:
|
| 76 |
+
if client_setup:
|
| 77 |
+
wx_url = client_setup["wx_region"] if if client_setup["wx_region"] else "EU"
|
| 78 |
+
wx_api_key = client_setup["wx_api_key"].strip() if client_setup["wx_api_key"] else None
|
| 79 |
+
os.environ["WATSONX_APIKEY"] = wx_api_key or ""
|
| 80 |
+
|
| 81 |
+
project_id = client_setup["project_id"].strip() if client_setup["project_id"] else None
|
| 82 |
+
space_id = client_setup["space_id"].strip() if client_setup["space_id"] else None
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 83 |
else:
|
| 84 |
os.environ["WATSONX_APIKEY"] = ""
|
| 85 |
+
project_id = space_id = wx_api_key = wx_url = None
|
|
|
|
|
|
|
|
|
|
| 86 |
return client_setup, project_id, space_id, wx_api_key, wx_url
|
| 87 |
|
| 88 |
|
|
|
|
| 96 |
|
| 97 |
@app.cell
|
| 98 |
def _():
|
| 99 |
+
from baked_in_credentials.creds import credentials
|
| 100 |
+
return credentials
|
|
|
|
|
|
|
|
|
|
|
|
|
| 101 |
|
| 102 |
|
| 103 |
@app.cell
|
| 104 |
def client_instantiation(
|
| 105 |
+
APIClient,
|
| 106 |
+
Credentials,
|
| 107 |
+
client,
|
| 108 |
+
client_key,
|
| 109 |
+
client_options,
|
| 110 |
+
client_selector,
|
| 111 |
client_setup,
|
| 112 |
+
get_key_by_value,
|
| 113 |
+
mo,
|
| 114 |
project_id,
|
| 115 |
space_id,
|
| 116 |
+
wrap_with_spaces,
|
| 117 |
wx_api_key,
|
| 118 |
wx_url,
|
| 119 |
):
|
| 120 |
### Instantiate the watsonx.ai client
|
| 121 |
if client_setup:
|
| 122 |
try:
|
| 123 |
+
wx_credentials = Credentials(url=wx_url, api_key=wx_api_key)
|
| 124 |
+
|
| 125 |
+
project_client = (
|
| 126 |
+
APIClient(credentials=wx_credentials, project_id=project_id)
|
| 127 |
+
if project_id
|
| 128 |
+
else None
|
| 129 |
+
)
|
| 130 |
+
|
| 131 |
+
deployment_client = (
|
| 132 |
+
APIClient(credentials=wx_credentials, space_id=space_id)
|
| 133 |
+
if space_id
|
| 134 |
+
else None
|
| 135 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 136 |
|
| 137 |
+
active_client_name = get_key_by_value(client_options, client_key)
|
| 138 |
+
client_status = mo.md(
|
| 139 |
+
f"### ✅ Client Instantiation Successful ✅\n\n"
|
| 140 |
+
f"{client_selector}\n\n"
|
| 141 |
+
f"**Active Client:**{wrap_with_spaces(active_client_name, prefix_spaces=5)}"
|
| 142 |
+
)
|
| 143 |
client_callout_kind = "success"
|
| 144 |
+
|
| 145 |
except Exception as e:
|
| 146 |
error_message = str(e)
|
| 147 |
+
client_status = mo.md(
|
| 148 |
+
f"### ❌ Client Instantiation Failed\n**Error:** {error_message}\n\nCheck your region selection and credentials"
|
| 149 |
+
)
|
| 150 |
client_callout_kind = "danger"
|
| 151 |
+
wx_credentials = project_client = deployment_client = None
|
|
|
|
| 152 |
else:
|
| 153 |
+
wx_credentials = project_client = deployment_client = None
|
| 154 |
+
active_client_name = get_key_by_value(client_options, client_key)
|
| 155 |
+
client_status = mo.md(
|
| 156 |
+
f"### Client Instantiation Status will turn Green When Ready\n\n"
|
| 157 |
+
f"{client_selector}\n\n"
|
| 158 |
+
f"**Active Client:**{wrap_with_spaces(active_client_name, prefix_spaces=5)}"
|
| 159 |
+
)
|
| 160 |
client_callout_kind = "neutral"
|
| 161 |
|
| 162 |
return (
|
|
|
|
| 365 |
"AU": "https://au-syd.ml.cloud.ibm.com",
|
| 366 |
"CA": "https://ca-tor.ml.cloud.ibm.com"
|
| 367 |
}
|
| 368 |
+
baked_in_creds = credentials
|
| 369 |
# Create a form with multiple elements
|
| 370 |
client_instantiation_form = (
|
| 371 |
mo.md('''
|
|
|
|
| 383 |
> If you provide both you can switch the active one in the dropdown.
|
| 384 |
''')
|
| 385 |
.batch(
|
| 386 |
+
wx_region = mo.ui.dropdown(
|
| 387 |
+
wx_regions,
|
| 388 |
+
label="Select your watsonx.ai region:",
|
| 389 |
+
value=get_cred_value('region', creds_var_name='baked_in_creds'),
|
| 390 |
+
searchable=True
|
| 391 |
+
),
|
| 392 |
+
wx_api_key = mo.ui.text(
|
| 393 |
+
placeholder="Add your IBM Cloud api-key...",
|
| 394 |
+
label="IBM Cloud Api-key:",
|
| 395 |
+
kind="password",
|
| 396 |
+
value=get_cred_value('api_key', creds_var_name='baked_in_creds')
|
| 397 |
+
),
|
| 398 |
+
project_id = mo.ui.text(
|
| 399 |
+
placeholder="Add your watsonx.ai project_id...",
|
| 400 |
+
label="Project_ID:",
|
| 401 |
+
kind="text",
|
| 402 |
+
value=get_cred_value('project_id', creds_var_name='baked_in_creds')
|
| 403 |
+
),
|
| 404 |
+
space_id = mo.ui.text(
|
| 405 |
+
placeholder="Add your watsonx.ai space_id...",
|
| 406 |
+
label="Space_ID:",
|
| 407 |
+
kind="text",
|
| 408 |
+
value=get_cred_value('space_id', creds_var_name='baked_in_creds')
|
| 409 |
+
)
|
| 410 |
,)
|
| 411 |
.form(show_clear_button=True, bordered=False)
|
| 412 |
)
|