MCPcopy Create free account
hub / github.com/danielmiessler/Fabric / load_models_and_providers

Function load_models_and_providers

scripts/python_ui/streamlit.py:271–343  ·  view source on GitHub ↗

Load models and providers from fabric configuration.

()

Source from the content-addressed store, hash-verified

269
270
271def load_models_and_providers() -> None:
272 """Load models and providers from fabric configuration."""
273 try:
274 st.sidebar.header("Model and Provider Selection")
275
276 providers: Dict[str, List[str]] = fetch_models_once()
277
278 if not providers:
279 st.sidebar.error("No providers configured")
280 return
281
282 current_vendor = st.session_state.config.get("vendor", "")
283 available_providers = list(providers.keys())
284
285 try:
286 provider_index = (
287 available_providers.index(current_vendor)
288 if current_vendor in available_providers
289 else 0
290 )
291 except ValueError:
292 provider_index = 0
293 logger.warning(
294 f"Current vendor {current_vendor} not found in available providers"
295 )
296
297 selected_provider = st.sidebar.selectbox(
298 "Provider",
299 available_providers,
300 index=provider_index,
301 key="provider_select",
302 on_change=lambda: update_provider_selection(
303 st.session_state.provider_select
304 ),
305 )
306
307 if selected_provider != st.session_state.config.get("vendor"):
308 update_provider_selection(selected_provider)
309 st.sidebar.success(f"Using {selected_provider}")
310
311 available_models = providers.get(selected_provider, [])
312 if not available_models:
313 st.sidebar.warning(f"No models available for {selected_provider}")
314 return
315
316 current_model = st.session_state.config.get("model")
317 try:
318 model_index = (
319 available_models.index(current_model)
320 if current_model in available_models
321 else 0
322 )
323 except ValueError:
324 model_index = 0
325 logger.warning(
326 f"Current model {current_model} not found in available models for {selected_provider}"
327 )
328

Callers 1

mainFunction · 0.85

Calls 2

fetch_models_onceFunction · 0.85

Tested by

no test coverage detected