Skip to content

Commit 5131e68

Browse files
committed
Add set_embedders
1 parent 5dcee1b commit 5131e68

File tree

1 file changed

+53
-9
lines changed

1 file changed

+53
-9
lines changed

src/settings.rs

Lines changed: 53 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -979,17 +979,14 @@ impl<Http: HttpClient> Index<Http> {
979979
/// # client.create_index("get_embedders", None).await.unwrap().wait_for_completion(&client, None, None).await.unwrap();
980980
/// let index = client.index("get_embedders");
981981
/// #
982-
/// # let t = index.set_settings(&Settings{
983-
/// # embedders: Some(HashMap::from([(
982+
/// # let t = index.set_embedders(&HashMap::from([(
984983
/// # String::from("default"),
985984
/// # Embedder {
986985
/// # source: EmbedderSource::UserProvided,
987986
/// # dimensions: Some(1),
988987
/// # ..Embedder::default()
989988
/// # }
990-
/// # )])),
991-
/// # ..Settings::default()
992-
/// # }).await.unwrap();
989+
/// # )])).await.unwrap();
993990
/// # t.wait_for_completion(&client, None, None).await.unwrap();
994991
/// let embedders = index.get_embedders().await.unwrap();
995992
/// # index.delete().await.unwrap().wait_for_completion(&client, None, None).await.unwrap();
@@ -1010,6 +1007,54 @@ impl<Http: HttpClient> Index<Http> {
10101007
.map(|r| r.unwrap_or_default())
10111008
}
10121009

1010+
/// Set [embedders](https://www.meilisearch.com/docs/learn/vector_search) of the [Index].
1011+
///
1012+
/// ```
1013+
/// # use std::collections::HashMap;
1014+
/// # use std::string::String;
1015+
/// # use meilisearch_sdk::{indexes::*,settings::Embedder,settings::EmbedderSource,settings::Settings,client::*};
1016+
/// #
1017+
/// # let MEILISEARCH_URL = option_env!("MEILISEARCH_URL").unwrap_or("http://localhost:7700");
1018+
/// # let MEILISEARCH_API_KEY = option_env!("MEILISEARCH_API_KEY").unwrap_or("masterKey");
1019+
/// #
1020+
/// # tokio::runtime::Builder::new_current_thread().enable_all().build().unwrap().block_on(async {
1021+
/// # let client = Client::new(MEILISEARCH_URL, Some(MEILISEARCH_API_KEY)).unwrap();
1022+
/// # client.create_index("set_embedders", None).await.unwrap().wait_for_completion(&client, None, None).await.unwrap();
1023+
/// let index = client.index("set_embedders");
1024+
/// #
1025+
/// let t = index.set_embedders(&HashMap::from([(
1026+
/// String::from("default"),
1027+
/// Embedder {
1028+
/// source: EmbedderSource::UserProvided,
1029+
/// dimensions: Some(1),
1030+
/// ..Embedder::default()
1031+
/// }
1032+
/// )])).await.unwrap();
1033+
/// # t.wait_for_completion(&client, None, None).await.unwrap();
1034+
/// # let embedders = index.get_embedders().await.unwrap();
1035+
/// # index.delete().await.unwrap().wait_for_completion(&client, None, None).await.unwrap();
1036+
/// # });
1037+
/// ```
1038+
pub async fn set_embedders(
1039+
&self,
1040+
embedders: &HashMap<String, Embedder>,
1041+
) -> Result<TaskInfo, Error> {
1042+
self.client
1043+
.http_client
1044+
.request::<(), &HashMap<String, Embedder>, TaskInfo>(
1045+
&format!(
1046+
"{}/indexes/{}/settings/embedders",
1047+
self.client.host, self.uid
1048+
),
1049+
Method::Patch {
1050+
query: (),
1051+
body: embedders,
1052+
},
1053+
202,
1054+
)
1055+
.await
1056+
}
1057+
10131058
/// Get [search cutoff](https://www.meilisearch.com/docs/reference/api/settings#search-cutoff) settings of the [Index].
10141059
///
10151060
/// # Example
@@ -2860,15 +2905,14 @@ mod tests {
28602905
dimensions: Some(2),
28612906
..Default::default()
28622907
};
2863-
let embeddings = HashMap::from([("default".into(), custom_embedder)]);
2864-
let settings = Settings::new().with_embedders(embeddings.clone());
2908+
let embedders = HashMap::from([("default".into(), custom_embedder)]);
28652909

2866-
let task_info = index.set_settings(&settings).await.unwrap();
2910+
let task_info = index.set_embedders(&embedders).await.unwrap();
28672911
client.wait_for_task(task_info, None, None).await.unwrap();
28682912

28692913
let res = index.get_embedders().await.unwrap();
28702914

2871-
assert_eq!(embeddings, res);
2915+
assert_eq!(embedders, res);
28722916
}
28732917

28742918
#[meilisearch_test]

0 commit comments

Comments
 (0)