mirror of
https://github.com/meilisearch/MeiliSearch
synced 2025-06-15 12:31:35 +02:00
Better error reporting when multi choices is used
This commit is contained in:
parent
ab0eba2f72
commit
e9d547556d
@ -391,6 +391,7 @@ EditDocumentsByFunctionError , InvalidRequest , BAD_REQU
|
|||||||
InvalidSettingsIndexChat , InvalidRequest , BAD_REQUEST ;
|
InvalidSettingsIndexChat , InvalidRequest , BAD_REQUEST ;
|
||||||
// Experimental features - Chat Completions
|
// Experimental features - Chat Completions
|
||||||
UnimplementedNonStreamingChatCompletions , InvalidRequest , NOT_IMPLEMENTED ;
|
UnimplementedNonStreamingChatCompletions , InvalidRequest , NOT_IMPLEMENTED ;
|
||||||
|
UnimplementedMultiChoiceChatCompletions , InvalidRequest , NOT_IMPLEMENTED ;
|
||||||
ChatNotFound , InvalidRequest , NOT_FOUND ;
|
ChatNotFound , InvalidRequest , NOT_FOUND ;
|
||||||
InvalidChatCompletionOrgId , InvalidRequest , BAD_REQUEST ;
|
InvalidChatCompletionOrgId , InvalidRequest , BAD_REQUEST ;
|
||||||
InvalidChatCompletionProjectId , InvalidRequest , BAD_REQUEST ;
|
InvalidChatCompletionProjectId , InvalidRequest , BAD_REQUEST ;
|
||||||
|
@ -64,12 +64,6 @@ async fn chat(
|
|||||||
) -> impl Responder {
|
) -> impl Responder {
|
||||||
let ChatsParam { workspace_uid } = chats_param.into_inner();
|
let ChatsParam { workspace_uid } = chats_param.into_inner();
|
||||||
|
|
||||||
assert_eq!(
|
|
||||||
chat_completion.n.unwrap_or(1),
|
|
||||||
1,
|
|
||||||
"Meilisearch /chat only support one completion at a time (n = 1, n = null)"
|
|
||||||
);
|
|
||||||
|
|
||||||
if chat_completion.stream.unwrap_or(false) {
|
if chat_completion.stream.unwrap_or(false) {
|
||||||
Either::Right(
|
Either::Right(
|
||||||
streamed_chat(
|
streamed_chat(
|
||||||
@ -309,6 +303,13 @@ async fn non_streamed_chat(
|
|||||||
) -> Result<HttpResponse, ResponseError> {
|
) -> Result<HttpResponse, ResponseError> {
|
||||||
index_scheduler.features().check_chat_completions("using the /chats chat completions route")?;
|
index_scheduler.features().check_chat_completions("using the /chats chat completions route")?;
|
||||||
|
|
||||||
|
if let Some(n) = chat_completion.n.filter(|&n| n != 1) {
|
||||||
|
return Err(ResponseError::from_msg(
|
||||||
|
format!("You tried to specify n = {n} but only single choices are supported (n = 1)."),
|
||||||
|
Code::UnimplementedMultiChoiceChatCompletions,
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
return Err(ResponseError::from_msg(
|
return Err(ResponseError::from_msg(
|
||||||
"Non-streamed chat completions is not implemented".to_string(),
|
"Non-streamed chat completions is not implemented".to_string(),
|
||||||
Code::UnimplementedNonStreamingChatCompletions,
|
Code::UnimplementedNonStreamingChatCompletions,
|
||||||
@ -412,6 +413,13 @@ async fn streamed_chat(
|
|||||||
index_scheduler.features().check_chat_completions("using the /chats chat completions route")?;
|
index_scheduler.features().check_chat_completions("using the /chats chat completions route")?;
|
||||||
let filters = index_scheduler.filters();
|
let filters = index_scheduler.filters();
|
||||||
|
|
||||||
|
if let Some(n) = chat_completion.n.filter(|&n| n != 1) {
|
||||||
|
return Err(ResponseError::from_msg(
|
||||||
|
format!("You tried to specify n = {n} but only single choices are supported (n = 1)."),
|
||||||
|
Code::UnimplementedMultiChoiceChatCompletions,
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
let chat_settings = match index_scheduler.chat_settings(workspace_uid)? {
|
let chat_settings = match index_scheduler.chat_settings(workspace_uid)? {
|
||||||
Some(settings) => settings,
|
Some(settings) => settings,
|
||||||
None => {
|
None => {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user