Store preferences by model profile
This commit is contained in:
@@ -25,7 +25,7 @@ use crate::engine::ChatTurn;
|
||||
use crate::metrics::{Metrics, WorkSource};
|
||||
use crate::model::{self, ModelChoice};
|
||||
use crate::runtime::{CheckpointTarget, GenerationEvent, GenerationService};
|
||||
use crate::settings::{ReasoningMode, effective_settings};
|
||||
use crate::settings::{GenerationPreferences, ReasoningMode, effective_settings};
|
||||
use serde::Deserialize;
|
||||
use serde_json::value::RawValue;
|
||||
use serde_json::{Map, Value, json};
|
||||
@@ -375,10 +375,8 @@ fn handle(mut stream: TcpStream, state: &State) {
|
||||
let model = model_alias(id).filter(|model| installed.contains(model));
|
||||
if let Some(model) = model {
|
||||
let (context, tokens) = state.config.read().map_or((32_768, 32_768), |config| {
|
||||
(
|
||||
config.generation.context_tokens,
|
||||
config.generation.max_generated_tokens,
|
||||
)
|
||||
let generation = config.generation_for(model, config.reasoning_mode(model));
|
||||
(generation.context_tokens, generation.max_generated_tokens)
|
||||
});
|
||||
send_json_with_cors(
|
||||
&mut stream,
|
||||
@@ -505,17 +503,23 @@ fn installed_endpoint_models(models_path: &std::path::Path) -> Vec<ModelChoice>
|
||||
}
|
||||
|
||||
fn models_json(state: &State) -> Value {
|
||||
let (context, tokens) = state.config.read().map_or((32_768, 32_768), |config| {
|
||||
(
|
||||
config.generation.context_tokens,
|
||||
config.generation.max_generated_tokens,
|
||||
)
|
||||
});
|
||||
let config = state.config.read().ok().map(|config| config.clone());
|
||||
json!({
|
||||
"object": "list",
|
||||
"data": installed_endpoint_models(&state.models_path)
|
||||
.into_iter()
|
||||
.map(|model| model_json(model.id(), model, context, tokens))
|
||||
.map(|model| {
|
||||
let generation = config.as_ref().map_or_else(
|
||||
GenerationPreferences::default,
|
||||
|config| config.generation_for(model, config.reasoning_mode(model)),
|
||||
);
|
||||
model_json(
|
||||
model.id(),
|
||||
model,
|
||||
generation.context_tokens,
|
||||
generation.max_generated_tokens,
|
||||
)
|
||||
})
|
||||
.collect::<Vec<_>>()
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user