(
State(state): State<Arc<ServerState>>,
)
| 2445 | } |
| 2446 | |
| 2447 | async fn get_config_providers( |
| 2448 | State(state): State<Arc<ServerState>>, |
| 2449 | ) -> Json<ConfigProvidersResponse> { |
| 2450 | let variant_lookup = get_model_variant_lookup().await; |
| 2451 | let models = state.providers.list_models(); |
| 2452 | let mut provider_map: HashMap<String, Vec<ModelInfo>> = HashMap::new(); |
| 2453 | for m in models { |
| 2454 | let provider_id = m.provider.clone(); |
| 2455 | let model_id = m.id.clone(); |
| 2456 | let variants = variants_for_model(variant_lookup, &provider_id, &model_id); |
| 2457 | provider_map |
| 2458 | .entry(provider_id.clone()) |
| 2459 | .or_default() |
| 2460 | .push(ModelInfo { |
| 2461 | id: model_id, |
| 2462 | name: m.name, |
| 2463 | provider: provider_id, |
| 2464 | variants, |
| 2465 | }); |
| 2466 | } |
| 2467 | let providers: Vec<ProviderInfo> = provider_map |
| 2468 | .into_iter() |
| 2469 | .map(|(id, models)| ProviderInfo { |
| 2470 | id: id.clone(), |
| 2471 | name: id, |
| 2472 | models, |
| 2473 | }) |
| 2474 | .collect(); |
| 2475 | let default_model: HashMap<String, String> = providers |
| 2476 | .iter() |
| 2477 | .filter_map(|p| p.models.first().map(|m| (p.id.clone(), m.id.clone()))) |
| 2478 | .collect(); |
| 2479 | Json(ConfigProvidersResponse { |
| 2480 | providers, |
| 2481 | default_model, |
| 2482 | }) |
| 2483 | } |
| 2484 | |
| 2485 | fn mcp_routes() -> Router<Arc<ServerState>> { |
| 2486 | Router::new() |
nothing calls this directly
no test coverage detected