From a005a062da374e945b840cccf1938713362f405f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Renault?= Date: Thu, 17 Jul 2025 15:27:53 +0200 Subject: [PATCH 1/2] Add security if chat settings parameters are missing --- crates/meilisearch-types/src/features.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/crates/meilisearch-types/src/features.rs b/crates/meilisearch-types/src/features.rs index 8878a8281..44a0071e4 100644 --- a/crates/meilisearch-types/src/features.rs +++ b/crates/meilisearch-types/src/features.rs @@ -162,10 +162,14 @@ impl ChatCompletionSource { #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq)] #[serde(rename_all = "camelCase")] pub struct ChatCompletionPrompts { + #[serde(default)] pub system: String, + #[serde(default)] pub search_description: String, + #[serde(default)] pub search_q_param: String, pub search_filter_param: String, + #[serde(default)] pub search_index_uid_param: String, } From f1d92bfeadd3d4ac36227633754987786ec6163e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Renault?= Date: Thu, 17 Jul 2025 15:28:18 +0200 Subject: [PATCH 2/2] Make sure the new filter chat setting is set to it's default value if missing --- crates/meilisearch-types/src/features.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/crates/meilisearch-types/src/features.rs b/crates/meilisearch-types/src/features.rs index 44a0071e4..ddffb107c 100644 --- a/crates/meilisearch-types/src/features.rs +++ b/crates/meilisearch-types/src/features.rs @@ -168,11 +168,18 @@ pub struct ChatCompletionPrompts { pub search_description: String, #[serde(default)] pub search_q_param: String, + #[serde(default = "default_search_filter_param")] pub search_filter_param: String, #[serde(default)] pub search_index_uid_param: String, } +/// This function is used for when the search_filter_param is +/// not provided and this can happen when the database is in v1.15. +fn default_search_filter_param() -> String { + DEFAULT_CHAT_SEARCH_FILTER_PARAM_PROMPT.to_string() +} + impl Default for ChatCompletionPrompts { fn default() -> Self { Self {