MCPcopy Create free account
hub / github.com/GCWing/BitFun / update_existing_model

Method update_existing_model

src/apps/cli/src/ui/startup.rs:1524–1600  ·  view source on GitHub ↗

Update an existing model in global config

(&mut self, result: ModelFormResult)

Source from the content-addressed store, hash-verified

1522
1523 /// Update an existing model in global config
1524 fn update_existing_model(&mut self, result: ModelFormResult) {
1525 let model_id = match &result.editing_model_id {
1526 Some(id) => id.clone(),
1527 None => return,
1528 };
1529
1530 let custom_headers: Option<std::collections::HashMap<String, String>> =
1531 if result.custom_headers.is_empty() {
1532 None
1533 } else {
1534 serde_json::from_str(&result.custom_headers).ok()
1535 };
1536
1537 let custom_request_body: Option<String> = if result.custom_request_body.is_empty() {
1538 None
1539 } else {
1540 Some(result.custom_request_body.clone())
1541 };
1542
1543 let model_config = bitfun_core::service::config::AIModelConfig {
1544 id: model_id.clone(),
1545 name: result.name.clone(),
1546 provider: result.provider_format.clone(),
1547 model_name: result.model_name.clone(),
1548 base_url: result.base_url.clone(),
1549 api_key: result.api_key.clone(),
1550 context_window: Some(result.context_window),
1551 max_tokens: Some(result.max_tokens),
1552 enabled: true,
1553 enable_thinking_process: result.enable_thinking || result.support_preserved_thinking,
1554 skip_ssl_verify: result.skip_ssl_verify,
1555 custom_headers,
1556 custom_headers_mode: if result.custom_headers_mode.is_empty()
1557 || result.custom_headers_mode == "merge"
1558 {
1559 None
1560 } else {
1561 Some(result.custom_headers_mode.clone())
1562 },
1563 custom_request_body,
1564 ..Default::default()
1565 };
1566
1567 let result_name = result.name.clone();
1568 let result_model_display = format!("{} / {}", result.model_name, result.name);
1569
1570 let success = tokio::task::block_in_place(|| {
1571 tokio::runtime::Handle::current().block_on(async {
1572 let config_service = match GlobalConfigManager::get_service().await {
1573 Ok(s) => s,
1574 Err(e) => {
1575 tracing::error!("Failed to get config service: {}", e);
1576 return false;
1577 }
1578 };
1579
1580 if let Err(e) = config_service
1581 .update_ai_model(&model_id, model_config)

Callers 1

handle_keyMethod · 0.45

Calls 5

cloneMethod · 0.45
is_emptyMethod · 0.45
okMethod · 0.45
update_ai_modelMethod · 0.45

Tested by

no test coverage detected