From 553440632e922cdacecee039983dec74baeadae9 Mon Sep 17 00:00:00 2001 From: Louis Dureuil Date: Mon, 22 Jul 2024 12:40:04 +0200 Subject: [PATCH] Introduce Setting::some_or_not_set --- milli/src/update/settings.rs | 7 +++++++ milli/src/vector/settings.rs | 28 ++++++++++++++-------------- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/milli/src/update/settings.rs b/milli/src/update/settings.rs index e5e13a03c..9799fc6ec 100644 --- a/milli/src/update/settings.rs +++ b/milli/src/update/settings.rs @@ -67,6 +67,13 @@ impl Setting { } } + pub fn some_or_not_set(option: Option) -> Self { + match option { + Some(value) => Setting::Set(value), + None => Setting::NotSet, + } + } + pub const fn as_ref(&self) -> Setting<&T> { match *self { Self::Set(ref value) => Setting::Set(value), diff --git a/milli/src/vector/settings.rs b/milli/src/vector/settings.rs index 2a6e18a77..3cb90cbdb 100644 --- a/milli/src/vector/settings.rs +++ b/milli/src/vector/settings.rs @@ -467,7 +467,7 @@ impl From for EmbeddingSettings { }) => Self { source: Setting::Set(EmbedderSource::HuggingFace), model: Setting::Set(model), - revision: revision.map(Setting::Set).unwrap_or_default(), + revision: Setting::some_or_not_set(revision), api_key: Setting::NotSet, dimensions: Setting::NotSet, document_template: Setting::Set(prompt.template), @@ -475,7 +475,7 @@ impl From for EmbeddingSettings { request: Setting::NotSet, response: Setting::NotSet, headers: Setting::NotSet, - distribution: distribution.map(Setting::Set).unwrap_or_default(), + distribution: Setting::some_or_not_set(distribution), }, super::EmbedderOptions::OpenAi(super::openai::EmbedderOptions { url, @@ -487,14 +487,14 @@ impl From for EmbeddingSettings { source: Setting::Set(EmbedderSource::OpenAi), model: Setting::Set(embedding_model.name().to_owned()), revision: Setting::NotSet, - api_key: api_key.map(Setting::Set).unwrap_or_default(), - dimensions: dimensions.map(Setting::Set).unwrap_or_default(), + api_key: Setting::some_or_not_set(api_key), + dimensions: Setting::some_or_not_set(dimensions), document_template: Setting::Set(prompt.template), - url: url.map(Setting::Set).unwrap_or_default(), + url: Setting::some_or_not_set(url), request: Setting::NotSet, response: Setting::NotSet, headers: Setting::NotSet, - distribution: distribution.map(Setting::Set).unwrap_or_default(), + distribution: Setting::some_or_not_set(distribution), }, super::EmbedderOptions::Ollama(super::ollama::EmbedderOptions { embedding_model, @@ -506,14 +506,14 @@ impl From for EmbeddingSettings { source: Setting::Set(EmbedderSource::Ollama), model: Setting::Set(embedding_model), revision: Setting::NotSet, - api_key: api_key.map(Setting::Set).unwrap_or_default(), - dimensions: dimensions.map(Setting::Set).unwrap_or_default(), + api_key: Setting::some_or_not_set(api_key), + dimensions: Setting::some_or_not_set(dimensions), document_template: Setting::Set(prompt.template), - url: url.map(Setting::Set).unwrap_or_default(), + url: Setting::some_or_not_set(url), request: Setting::NotSet, response: Setting::NotSet, headers: Setting::NotSet, - distribution: distribution.map(Setting::Set).unwrap_or_default(), + distribution: Setting::some_or_not_set(distribution), }, super::EmbedderOptions::UserProvided(super::manual::EmbedderOptions { dimensions, @@ -529,7 +529,7 @@ impl From for EmbeddingSettings { request: Setting::NotSet, response: Setting::NotSet, headers: Setting::NotSet, - distribution: distribution.map(Setting::Set).unwrap_or_default(), + distribution: Setting::some_or_not_set(distribution), }, super::EmbedderOptions::Rest(super::rest::EmbedderOptions { api_key, @@ -543,13 +543,13 @@ impl From for EmbeddingSettings { source: Setting::Set(EmbedderSource::Rest), model: Setting::NotSet, revision: Setting::NotSet, - api_key: api_key.map(Setting::Set).unwrap_or_default(), - dimensions: dimensions.map(Setting::Set).unwrap_or_default(), + api_key: Setting::some_or_not_set(api_key), + dimensions: Setting::some_or_not_set(dimensions), document_template: Setting::Set(prompt.template), url: Setting::Set(url), request: Setting::Set(request), response: Setting::Set(response), - distribution: distribution.map(Setting::Set).unwrap_or_default(), + distribution: Setting::some_or_not_set(distribution), headers: Setting::Set(headers), }, }