move global config access out of ModelConfig, and move ModelConfig into goose_providers (#9769)
This commit is contained in:
@@ -6,6 +6,7 @@ use console::style;
|
||||
use goose::agents::{Agent, Container, ExtensionError};
|
||||
use goose::config::resolve_extensions_for_new_session;
|
||||
use goose::config::{Config, ExtensionConfig, GooseMode};
|
||||
use goose::model_config::model_config_from_user_config;
|
||||
use goose::providers::create;
|
||||
use goose::recipe::Recipe;
|
||||
use goose::session::session_manager::SessionType;
|
||||
@@ -229,14 +230,14 @@ async fn load_extensions(
|
||||
struct ResolvedProviderConfig {
|
||||
provider_name: String,
|
||||
model_name: String,
|
||||
model_config: goose::model::ModelConfig,
|
||||
model_config: goose_providers::model::ModelConfig,
|
||||
}
|
||||
|
||||
fn resolve_provider_and_model(
|
||||
session_config: &SessionBuilderConfig,
|
||||
config: &Config,
|
||||
saved_provider: Option<String>,
|
||||
saved_model_config: Option<goose::model::ModelConfig>,
|
||||
saved_model_config: Option<goose_providers::model::ModelConfig>,
|
||||
) -> ResolvedProviderConfig {
|
||||
let recipe_settings = session_config
|
||||
.recipe
|
||||
@@ -277,14 +278,16 @@ fn resolve_provider_and_model(
|
||||
}
|
||||
config
|
||||
} else {
|
||||
let temperature = recipe_settings.and_then(|s| s.temperature);
|
||||
goose::model::ModelConfig::new(&model_name)
|
||||
.unwrap_or_else(|e| {
|
||||
output::render_error(&format!("Failed to create model configuration: {}", e));
|
||||
process::exit(1);
|
||||
})
|
||||
.with_canonical_limits(&provider_name)
|
||||
.with_temperature(temperature)
|
||||
let mut config =
|
||||
goose::model_config::model_config_from_user_config(&provider_name, &model_name)
|
||||
.unwrap_or_else(|e| {
|
||||
output::render_error(&format!("Failed to create model configuration: {}", e));
|
||||
process::exit(1);
|
||||
});
|
||||
if let Some(temp) = recipe_settings.and_then(|s| s.temperature) {
|
||||
config = config.with_temperature(Some(temp));
|
||||
}
|
||||
config
|
||||
};
|
||||
|
||||
ResolvedProviderConfig {
|
||||
@@ -575,12 +578,15 @@ pub async fn build_session(session_config: SessionBuilderConfig) -> CliSession {
|
||||
))
|
||||
.yellow()
|
||||
);
|
||||
let fallback_model_config = goose::model::ModelConfig::new(&fallback_model)
|
||||
.unwrap_or_else(|e| {
|
||||
output::render_error(&format!("Failed to create model configuration: {}", e));
|
||||
process::exit(1);
|
||||
})
|
||||
.with_canonical_limits(&fallback_provider);
|
||||
let fallback_model_config =
|
||||
model_config_from_user_config(fallback_provider.as_str(), &fallback_model)
|
||||
.unwrap_or_else(|e| {
|
||||
output::render_error(&format!(
|
||||
"Failed to create model configuration: {}",
|
||||
e
|
||||
));
|
||||
process::exit(1);
|
||||
});
|
||||
match create(
|
||||
&fallback_provider,
|
||||
fallback_model_config,
|
||||
|
||||
Reference in New Issue
Block a user