From 4136630ea5c62ea2f0dc6d9faa4a3171b24da721 Mon Sep 17 00:00:00 2001 From: Louis Dureuil Date: Mon, 25 Mar 2024 11:39:33 +0100 Subject: [PATCH] Use constants instead of raw strings in set_*set() --- milli/src/update/settings.rs | 121 ++++++++++++++++++++++++----------- 1 file changed, 83 insertions(+), 38 deletions(-) diff --git a/milli/src/update/settings.rs b/milli/src/update/settings.rs index 62e6b20b7..e0c559b85 100644 --- a/milli/src/update/settings.rs +++ b/milli/src/update/settings.rs @@ -1225,14 +1225,24 @@ pub fn validate_embedding_settings( }; match inferred_source { EmbedderSource::OpenAi => { - check_unset(&revision, "revision", inferred_source, name)?; + check_unset(&revision, EmbeddingSettings::REVISION, inferred_source, name)?; - check_unset(&url, "url", inferred_source, name)?; - check_unset(&query, "query", inferred_source, name)?; - check_unset(&input_field, "inputField", inferred_source, name)?; - check_unset(&path_to_embeddings, "pathToEmbeddings", inferred_source, name)?; - check_unset(&embedding_object, "embeddingObject", inferred_source, name)?; - check_unset(&input_type, "inputType", inferred_source, name)?; + check_unset(&url, EmbeddingSettings::URL, inferred_source, name)?; + check_unset(&query, EmbeddingSettings::QUERY, inferred_source, name)?; + check_unset(&input_field, EmbeddingSettings::INPUT_FIELD, inferred_source, name)?; + check_unset( + &path_to_embeddings, + EmbeddingSettings::PATH_TO_EMBEDDINGS, + inferred_source, + name, + )?; + check_unset( + &embedding_object, + EmbeddingSettings::EMBEDDING_OBJECT, + inferred_source, + name, + )?; + check_unset(&input_type, EmbeddingSettings::INPUT_TYPE, inferred_source, name)?; if let Setting::Set(model) = &model { let model = crate::vector::openai::EmbeddingModel::from_name(model.as_str()) @@ -1266,46 +1276,81 @@ pub fn validate_embedding_settings( } EmbedderSource::Ollama => { // Dimensions get inferred, only model name is required - check_unset(&dimensions, "dimensions", inferred_source, name)?; - check_set(&model, "model", inferred_source, name)?; - check_unset(&api_key, "apiKey", inferred_source, name)?; - check_unset(&revision, "revision", inferred_source, name)?; + check_unset(&dimensions, EmbeddingSettings::DIMENSIONS, inferred_source, name)?; + check_set(&model, EmbeddingSettings::MODEL, inferred_source, name)?; + check_unset(&api_key, EmbeddingSettings::API_KEY, inferred_source, name)?; + check_unset(&revision, EmbeddingSettings::REVISION, inferred_source, name)?; - check_unset(&query, "query", inferred_source, name)?; - check_unset(&input_field, "inputField", inferred_source, name)?; - check_unset(&path_to_embeddings, "pathToEmbeddings", inferred_source, name)?; - check_unset(&embedding_object, "embeddingObject", inferred_source, name)?; - check_unset(&input_type, "inputType", inferred_source, name)?; + check_unset(&query, EmbeddingSettings::QUERY, inferred_source, name)?; + check_unset(&input_field, EmbeddingSettings::INPUT_FIELD, inferred_source, name)?; + check_unset( + &path_to_embeddings, + EmbeddingSettings::PATH_TO_EMBEDDINGS, + inferred_source, + name, + )?; + check_unset( + &embedding_object, + EmbeddingSettings::EMBEDDING_OBJECT, + inferred_source, + name, + )?; + check_unset(&input_type, EmbeddingSettings::INPUT_TYPE, inferred_source, name)?; } EmbedderSource::HuggingFace => { - check_unset(&api_key, "apiKey", inferred_source, name)?; - check_unset(&dimensions, "dimensions", inferred_source, name)?; + check_unset(&api_key, EmbeddingSettings::API_KEY, inferred_source, name)?; + check_unset(&dimensions, EmbeddingSettings::DIMENSIONS, inferred_source, name)?; - check_unset(&url, "url", inferred_source, name)?; - check_unset(&query, "query", inferred_source, name)?; - check_unset(&input_field, "inputField", inferred_source, name)?; - check_unset(&path_to_embeddings, "pathToEmbeddings", inferred_source, name)?; - check_unset(&embedding_object, "embeddingObject", inferred_source, name)?; - check_unset(&input_type, "inputType", inferred_source, name)?; + check_unset(&url, EmbeddingSettings::URL, inferred_source, name)?; + check_unset(&query, EmbeddingSettings::QUERY, inferred_source, name)?; + check_unset(&input_field, EmbeddingSettings::INPUT_FIELD, inferred_source, name)?; + check_unset( + &path_to_embeddings, + EmbeddingSettings::PATH_TO_EMBEDDINGS, + inferred_source, + name, + )?; + check_unset( + &embedding_object, + EmbeddingSettings::EMBEDDING_OBJECT, + inferred_source, + name, + )?; + check_unset(&input_type, EmbeddingSettings::INPUT_TYPE, inferred_source, name)?; } EmbedderSource::UserProvided => { - check_unset(&model, "model", inferred_source, name)?; - check_unset(&revision, "revision", inferred_source, name)?; - check_unset(&api_key, "apiKey", inferred_source, name)?; - check_unset(&document_template, "documentTemplate", inferred_source, name)?; - check_set(&dimensions, "dimensions", inferred_source, name)?; + check_unset(&model, EmbeddingSettings::MODEL, inferred_source, name)?; + check_unset(&revision, EmbeddingSettings::REVISION, inferred_source, name)?; + check_unset(&api_key, EmbeddingSettings::API_KEY, inferred_source, name)?; + check_unset( + &document_template, + EmbeddingSettings::DOCUMENT_TEMPLATE, + inferred_source, + name, + )?; + check_set(&dimensions, EmbeddingSettings::DIMENSIONS, inferred_source, name)?; - check_unset(&url, "url", inferred_source, name)?; - check_unset(&query, "query", inferred_source, name)?; - check_unset(&input_field, "inputField", inferred_source, name)?; - check_unset(&path_to_embeddings, "pathToEmbeddings", inferred_source, name)?; - check_unset(&embedding_object, "embeddingObject", inferred_source, name)?; - check_unset(&input_type, "inputType", inferred_source, name)?; + check_unset(&url, EmbeddingSettings::URL, inferred_source, name)?; + check_unset(&query, EmbeddingSettings::QUERY, inferred_source, name)?; + check_unset(&input_field, EmbeddingSettings::INPUT_FIELD, inferred_source, name)?; + check_unset( + &path_to_embeddings, + EmbeddingSettings::PATH_TO_EMBEDDINGS, + inferred_source, + name, + )?; + check_unset( + &embedding_object, + EmbeddingSettings::EMBEDDING_OBJECT, + inferred_source, + name, + )?; + check_unset(&input_type, EmbeddingSettings::INPUT_TYPE, inferred_source, name)?; } EmbedderSource::Rest => { - check_unset(&model, "model", inferred_source, name)?; - check_unset(&revision, "revision", inferred_source, name)?; - check_set(&url, "url", inferred_source, name)?; + check_unset(&model, EmbeddingSettings::MODEL, inferred_source, name)?; + check_unset(&revision, EmbeddingSettings::REVISION, inferred_source, name)?; + check_set(&url, EmbeddingSettings::URL, inferred_source, name)?; } } Ok(Setting::Set(EmbeddingSettings {