Don't accept dimensions of 0 (ever) or dimensions greater than the default dimensions of the model

This commit is contained in:
Louis Dureuil 2024-02-07 11:48:47 +01:00
parent 32ee05ccef
commit 88d03c56ab
No known key found for this signature in database
3 changed files with 28 additions and 0 deletions

View file

@ -1122,6 +1122,14 @@ pub fn validate_embedding_settings(
let Setting::Set(settings) = settings else { return Ok(settings) };
let EmbeddingSettings { source, model, revision, api_key, dimensions, document_template } =
settings;
if let Some(0) = dimensions.set() {
return Err(crate::error::UserError::InvalidSettingsDimensions {
embedder_name: name.to_owned(),
}
.into());
}
let Some(inferred_source) = source.set() else {
return Ok(Setting::Set(EmbeddingSettings {
source,
@ -1153,6 +1161,15 @@ pub fn validate_embedding_settings(
}
.into());
}
if dimensions > model.default_dimensions() {
return Err(crate::error::UserError::InvalidOpenAiModelDimensionsMax {
embedder_name: name.to_owned(),
model: model.name(),
dimensions,
max_dimensions: model.default_dimensions(),
}
.into());
}
}
}
}