Improve AI provider model configuration
This commit is contained in:
@@ -1,4 +1,7 @@
|
||||
use galaxy_acp::{AcpAgentPreset, AcpLaunchConfig, CODEX_ACP_NPM_VERSION, OPENCODE_NPM_VERSION};
|
||||
use galaxy_acp::{
|
||||
resolve_known_acp_agent, AcpAgentPreset, AcpLaunchConfig, CODEX_ACP_NPM_VERSION,
|
||||
OPENCODE_NPM_VERSION,
|
||||
};
|
||||
use sha2::{Digest as _, Sha256};
|
||||
|
||||
use crate::persistence::model::AcpConversationData;
|
||||
@@ -215,9 +218,11 @@ pub(crate) fn resolve_acp_launch(
|
||||
match agent_id.trim().to_ascii_lowercase().as_str() {
|
||||
"codex" => AcpAgentPreset::Codex.resolve_launch_config(),
|
||||
"opencode" => AcpAgentPreset::OpenCode.resolve_launch_config(),
|
||||
unknown => Err(format!(
|
||||
"Unknown ACP agent preset {unknown:?}; choose \"codex\" or \"opencode\", or configure a custom ACP executable"
|
||||
)),
|
||||
_ => resolve_known_acp_agent(agent_id).map_err(|error| {
|
||||
format!(
|
||||
"{error} Configure a custom ACP executable if this client uses a different command."
|
||||
)
|
||||
}),
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ use super::*;
|
||||
fn unknown_builtin_agent_ids_are_rejected() {
|
||||
let error = resolve_acp_launch("mystery-agent", "", &[]).unwrap_err();
|
||||
|
||||
assert!(error.contains("Unknown ACP agent preset"));
|
||||
assert!(error.contains("Unknown ACP agent"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
||||
+8
-5
@@ -509,7 +509,7 @@ fn default_computer_use_llms() -> AvailableLLMs {
|
||||
},
|
||||
description: None,
|
||||
disable_reason: None,
|
||||
vision_supported: true,
|
||||
vision_supported: false,
|
||||
spec: None,
|
||||
provider: LLMProvider::Unknown,
|
||||
host_configs: HashMap::new(),
|
||||
@@ -1164,7 +1164,7 @@ impl LLMPreferences {
|
||||
},
|
||||
description: Some(provider_name.clone()),
|
||||
disable_reason: None,
|
||||
vision_supported: model.vision_supported,
|
||||
vision_supported: model.effective_vision_supported(),
|
||||
spec: None,
|
||||
provider: LLMProvider::LiteLLM,
|
||||
host_configs: HashMap::from([(
|
||||
@@ -1670,13 +1670,14 @@ impl LLMPreferences {
|
||||
.map(|model| OpenAIModelConfig {
|
||||
model_id: model.id,
|
||||
display_name: model.display_name,
|
||||
vision_supported: false,
|
||||
vision_supported: true,
|
||||
context_size: model.context_size.unwrap_or(128_000),
|
||||
max_input_tokens: model.context_size,
|
||||
max_output_tokens: None,
|
||||
provider: None,
|
||||
use_rig: true,
|
||||
supports_system_messages: Some(true),
|
||||
capability_overrides: std::collections::HashMap::new(),
|
||||
reasoning_efforts: Vec::new(),
|
||||
enabled: true,
|
||||
})
|
||||
@@ -2594,7 +2595,7 @@ async fn fetch_from_litellm_model_info(
|
||||
.and_then(|v| u32::try_from(v).ok());
|
||||
let context_size = max_input_tokens.unwrap_or(200_000);
|
||||
|
||||
let vision_supported = model_info["supports_vision"].as_bool().unwrap_or(false);
|
||||
let vision_supported = model_info["supports_vision"].as_bool().unwrap_or(true);
|
||||
|
||||
let display_name = model_name.replace(['-', '_'], " ");
|
||||
let display_name = display_name
|
||||
@@ -2651,6 +2652,7 @@ async fn fetch_from_litellm_model_info(
|
||||
} else {
|
||||
model_info["supports_system_messages"].as_bool()
|
||||
},
|
||||
capability_overrides: std::collections::HashMap::new(),
|
||||
reasoning_efforts: Vec::new(),
|
||||
enabled: true,
|
||||
})
|
||||
@@ -2769,7 +2771,7 @@ async fn fetch_from_openai_models(
|
||||
vision_supported: m["supports_vision"]
|
||||
.as_bool()
|
||||
.or_else(|| m["vision_support"].as_bool())
|
||||
.unwrap_or(false),
|
||||
.unwrap_or(true),
|
||||
context_size,
|
||||
max_input_tokens,
|
||||
max_output_tokens,
|
||||
@@ -2780,6 +2782,7 @@ async fn fetch_from_openai_models(
|
||||
} else {
|
||||
m["supports_system_messages"].as_bool()
|
||||
},
|
||||
capability_overrides: std::collections::HashMap::new(),
|
||||
reasoning_efforts: Vec::new(),
|
||||
enabled: true,
|
||||
})
|
||||
|
||||
@@ -152,6 +152,7 @@ fn openai_model(model_id: &str) -> OpenAIModelConfig {
|
||||
provider: None,
|
||||
use_rig: false,
|
||||
supports_system_messages: None,
|
||||
capability_overrides: std::collections::HashMap::new(),
|
||||
reasoning_efforts: Vec::new(),
|
||||
enabled: true,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user