MilanM commited on
Commit
58f20d1
·
verified ·
1 Parent(s): e024a18

Update visualizer_app.py

Browse files
Files changed (1) hide show
  1. visualizer_app.py +39 -39
visualizer_app.py CHANGED
@@ -63,7 +63,9 @@ with app.setup:
63
  if creds_var_name in globals():
64
  creds_dict = globals()[creds_var_name]
65
  if isinstance(creds_dict, dict) and key in creds_dict:
66
- return creds_dict[key]
 
 
67
  return default
68
 
69
  @app.cell
@@ -109,9 +111,8 @@ def _(client_setup, wx_api_key):
109
  @app.cell
110
  def _():
111
  baked_in_creds = {
112
- "purpose": "",
113
- "api_key": "",
114
- "project_id": "",
115
  "space_id": "",
116
  }
117
  return baked_in_creds
@@ -127,39 +128,38 @@ def client_instantiation(
127
  ):
128
  ### Instantiate the watsonx.ai client
129
  if client_setup:
130
- wx_credentials = Credentials(
131
- url=wx_url,
132
- api_key=wx_api_key
133
- )
 
 
 
 
 
 
 
 
 
 
 
134
 
135
- if project_id:
136
- project_client = APIClient(credentials=wx_credentials, project_id=project_id)
137
- else:
 
 
 
 
138
  project_client = None
139
-
140
- if space_id:
141
- deployment_client = APIClient(credentials=wx_credentials, space_id=space_id)
142
- else:
143
- deployment_client = None
144
-
145
-
146
- if project_client is not None:
147
- task_credentials_details = setup_task_credentials(project_client)
148
- else:
149
- task_credentials_details = setup_task_credentials(deployment_client)
150
-
151
  else:
152
  wx_credentials = None
153
  project_client = None
154
  deployment_client = None
155
- task_credentials_details = None
156
-
157
- client_status = mo.md("### Client Instantiation Status will turn Green When Ready")
158
-
159
- if project_client is not None or deployment_client is not None:
160
- client_callout_kind = "success"
161
- else:
162
  client_callout_kind = "neutral"
 
163
  return (
164
  client_callout_kind,
165
  client_status,
@@ -350,7 +350,7 @@ def file_and_model_select(
350
  get_embedding_model_list,
351
  run_upload_button,
352
  ):
353
- select_stack = mo.hstack([get_embedding_model_list(), mo.vstack([file_loader, run_upload_button], align="center")], justify="space-around", align="center", widths=[0.3,0.3])
354
  return (select_stack,)
355
 
356
 
@@ -384,13 +384,13 @@ 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(regions, label="Select your watsonx.ai region:", value="US", searchable=True),
388
  wx_api_key = mo.ui.text(placeholder="Add your IBM Cloud api-key...", label="IBM Cloud Api-key:",
389
  kind="password", value=get_cred_value('api_key', creds_var_name='baked_in_creds')),
390
  project_id = mo.ui.text(placeholder="Add your watsonx.ai project_id...", label="Project_ID:",
391
- kind="text", value=get_cred_value('project_id', creds_var_name='baked_in_creds')),
392
  space_id = mo.ui.text(placeholder="Add your watsonx.ai space_id...", label="Space_ID:",
393
- kind="text", value=get_cred_value('space_id', creds_var_name='baked_in_creds'))
394
  ,)
395
  .form(show_clear_button=True, bordered=False)
396
  )
@@ -720,8 +720,8 @@ def sentence_splitter_setup():
720
 
721
  ''')
722
  .batch(
723
- chunk_size = mo.ui.slider(start=100, stop=5000, step=1, label="**Chunk Size:**", value=350, show_value=True, full_width=True),
724
- chunk_overlap = mo.ui.slider(start=1, stop=1000, step=1, label="**Chunk Overlap** *(Must always be smaller than Chunk Size)* **:**", value=50, show_value=True, full_width=True),
725
  separator = mo.ui.text(placeholder="Define a separator", label="**Separator:**", kind="text", value=" "),
726
  paragraph_separator = mo.ui.text(placeholder="Define a paragraph separator",
727
  label="**Paragraph Separator:**", kind="text",
@@ -731,7 +731,7 @@ def sentence_splitter_setup():
731
  value="[^,.;?!]+[,.;?!]?"),
732
  include_metadata= mo.ui.checkbox(value=True, label="**Include Metadata**")
733
  )
734
- .form(show_clear_button=True, bordered=False)
735
  )
736
  return (sentence_splitter_config,)
737
 
@@ -1651,7 +1651,7 @@ def prepare_doc_select(sentence_splitter_config):
1651
  full_width=True,
1652
  show_value=True,
1653
  label="**Select a Range of Chunks to Visualize:**"
1654
- ).form(submit_button_disabled=check_state(sentence_splitter_config.value))
1655
 
1656
  return llama_docs
1657
  return (prepare_document_selection,)
@@ -1839,7 +1839,7 @@ def create_baseline_chart(
1839
  def test_query(get_chunk_state):
1840
  placeholder = """How can i use watsonx.data to perform vector search?"""
1841
 
1842
- query = mo.ui.text_area(label="**Write text to check:**", full_width=True, rows=8, value=placeholder).form(show_clear_button=True, submit_button_disabled=check_state(get_chunk_state()))
1843
  return (query,)
1844
 
1845
 
 
63
  if creds_var_name in globals():
64
  creds_dict = globals()[creds_var_name]
65
  if isinstance(creds_dict, dict) and key in creds_dict:
66
+ # Return empty string if the value is None
67
+ value = creds_dict[key]
68
+ return "" if value is None else value
69
  return default
70
 
71
  @app.cell
 
111
  @app.cell
112
  def _():
113
  baked_in_creds = {
114
+ "api_key": os.environ.get("WX_APIKEY"),
115
+ "project_id": os.environ.get("WX_PROJECT_ID"),
 
116
  "space_id": "",
117
  }
118
  return baked_in_creds
 
128
  ):
129
  ### Instantiate the watsonx.ai client
130
  if client_setup:
131
+ try:
132
+ wx_credentials = Credentials(
133
+ url=wx_url,
134
+ api_key=wx_api_key
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
+ client_status = mo.md("### ✅ Client Instantiation Successful ✅")
148
+ client_callout_kind = "success"
149
+
150
+ except Exception as e:
151
+ error_message = str(e)
152
+ client_status = mo.md(f"### ❌ Client Instantiation Failed\n**Error:** {error_message}\n\nCheck your region selection and credentials")
153
+ client_callout_kind = "danger"
154
  project_client = None
155
+ deployment_client = None
 
 
 
 
 
 
 
 
 
 
 
156
  else:
157
  wx_credentials = None
158
  project_client = None
159
  deployment_client = None
160
+ client_status = mo.md("### This box will turn Green if client instantiation is successful")
 
 
 
 
 
 
161
  client_callout_kind = "neutral"
162
+
163
  return (
164
  client_callout_kind,
165
  client_status,
 
350
  get_embedding_model_list,
351
  run_upload_button,
352
  ):
353
+ select_stack = mo.hstack([get_embedding_model_list(), mo.vstack([mo.md("Drag & Drop or Double Click to select PDFs, then press **Load Files**"),file_loader, run_upload_button], align="center")], justify="space-around", align="center", widths=[0.3,0.3])
354
  return (select_stack,)
355
 
356
 
 
384
  > If you provide both you can switch the active one in the dropdown.
385
  ''')
386
  .batch(
387
+ wx_region = mo.ui.dropdown(regions, label="Select your watsonx.ai region:", value="EU", searchable=True),
388
  wx_api_key = mo.ui.text(placeholder="Add your IBM Cloud api-key...", label="IBM Cloud Api-key:",
389
  kind="password", value=get_cred_value('api_key', creds_var_name='baked_in_creds')),
390
  project_id = mo.ui.text(placeholder="Add your watsonx.ai project_id...", label="Project_ID:",
391
+ kind="password", value=get_cred_value('project_id', creds_var_name='baked_in_creds')),
392
  space_id = mo.ui.text(placeholder="Add your watsonx.ai space_id...", label="Space_ID:",
393
+ kind="password", value=get_cred_value('space_id', creds_var_name='baked_in_creds'))
394
  ,)
395
  .form(show_clear_button=True, bordered=False)
396
  )
 
720
 
721
  ''')
722
  .batch(
723
+ chunk_size = mo.ui.slider(start=100, stop=5000, step=1, label="**Chunk Size:**", value=275, show_value=True, full_width=True),
724
+ chunk_overlap = mo.ui.slider(start=0, stop=1000, step=1, label="**Chunk Overlap** *(Must always be smaller than Chunk Size)* **:**", value=0, show_value=True, full_width=True),
725
  separator = mo.ui.text(placeholder="Define a separator", label="**Separator:**", kind="text", value=" "),
726
  paragraph_separator = mo.ui.text(placeholder="Define a paragraph separator",
727
  label="**Paragraph Separator:**", kind="text",
 
731
  value="[^,.;?!]+[,.;?!]?"),
732
  include_metadata= mo.ui.checkbox(value=True, label="**Include Metadata**")
733
  )
734
+ .form(show_clear_button=True, bordered=False, submit_button_label="Chunk Documents")
735
  )
736
  return (sentence_splitter_config,)
737
 
 
1651
  full_width=True,
1652
  show_value=True,
1653
  label="**Select a Range of Chunks to Visualize:**"
1654
+ ).form(submit_button_disabled=check_state(sentence_splitter_config.value), submit_button_label="Change Document View Range")
1655
 
1656
  return llama_docs
1657
  return (prepare_document_selection,)
 
1839
  def test_query(get_chunk_state):
1840
  placeholder = """How can i use watsonx.data to perform vector search?"""
1841
 
1842
+ query = mo.ui.text_area(label="**Write text to check:**", full_width=True, rows=8, value=placeholder).form(show_clear_button=True, submit_button_disabled=check_state(get_chunk_state()), submit_button_label="Query and View Visualization")
1843
  return (query,)
1844
 
1845