Skip to content

Commit de6684f

Browse files
committed
Made search fallback to RAG incase the query server is inaccessible
Signed-off-by: suryyyansh <suryansh.arya5472@gmail.com>
1 parent 6467af5 commit de6684f

File tree

1 file changed

+45
-43
lines changed

1 file changed

+45
-43
lines changed

src/backend/ggml.rs

Lines changed: 45 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -491,7 +491,7 @@ pub(crate) async fn rag_query_handler(mut req: Request<Body>) -> Response<Body>
491491
{
492492
Ok(se) => se,
493493
Err(_) => {
494-
let err_msg = "couldn't build summary_endpoint from query_server_url".to_string();
494+
let err_msg = "Couldn't build summary_endpoint from query_server_url".to_string();
495495
error!(target: "stdout", "{}", &err_msg);
496496

497497
return error::internal_server_error(err_msg);
@@ -515,7 +515,7 @@ pub(crate) async fn rag_query_handler(mut req: Request<Body>) -> Response<Body>
515515
)) {
516516
Ok(request) => request,
517517
Err(_) => {
518-
let err_msg = "failed to build request to LLamaEdge query server.".to_string();
518+
let err_msg = "Failed to build request to LLamaEdge query server.".to_string();
519519
error!(target: "stdout", "{}", &err_msg);
520520
return error::internal_server_error(err_msg);
521521
}
@@ -524,55 +524,57 @@ pub(crate) async fn rag_query_handler(mut req: Request<Body>) -> Response<Body>
524524
info!(target: "stdout", "Querying the LlamaEdge query server.");
525525

526526
let client = hyper::client::Client::new();
527-
let res = match client.request(req).await {
528-
Ok(response) => response,
529-
Err(e) => {
530-
let err_msg = format!("couldn't make request to LlamaEdge query server: {}", e);
531-
error!(target: "stdout", "{}", &err_msg);
532-
533-
return error::internal_server_error(err_msg);
534-
}
535-
};
536-
537-
let is_success = res.status().is_success();
527+
match client.request(req).await {
528+
Ok(res) => {
529+
let is_success = res.status().is_success();
538530

539-
let body_bytes = match hyper::body::to_bytes(res.into_body()).await {
540-
Ok(bytes) => bytes,
541-
Err(e) => {
542-
let err_msg = format!("couldn't convert body into bytes: {}", e);
543-
error!(target: "stdout", "{}", &err_msg);
531+
let body_bytes = match hyper::body::to_bytes(res.into_body()).await {
532+
Ok(bytes) => bytes,
533+
Err(e) => {
534+
let err_msg = format!("Couldn't convert body into bytes: {}", e);
535+
error!(target: "stdout", "{}", &err_msg);
544536

545-
return error::internal_server_error(err_msg);
546-
}
547-
};
537+
return error::internal_server_error(err_msg);
538+
}
539+
};
548540

549-
let body_json: serde_json::Value = match serde_json::from_slice(&body_bytes) {
550-
Ok(json) => json,
551-
Err(e) => {
552-
let err_msg = format!("couldn't convert body into json: {}", e);
553-
error!(target: "stdout", "{}", &err_msg);
541+
let body_json: serde_json::Value = match serde_json::from_slice(&body_bytes) {
542+
Ok(json) => json,
543+
Err(e) => {
544+
let err_msg = format!("Couldn't convert body into json: {}", e);
545+
error!(target: "stdout", "{}", &err_msg);
554546

555-
return error::internal_server_error(err_msg);
556-
}
557-
};
547+
return error::internal_server_error(err_msg);
548+
}
549+
};
558550

559-
info!(target: "stdout", "processed query server response json body: \n{}", body_json);
551+
info!(target: "stdout", "processed query server response json body: \n{}", body_json);
560552

561-
// if the request is a success, check decision and inject results accordingly.
562-
if is_success && body_json["decision"].as_bool().unwrap_or(true) {
563-
// the logic to ensure "results" is a serde_json::Value::String is present on the
564-
// llamaedge-query-server.
565-
let results = body_json["results"].as_str().unwrap_or("");
553+
// if the request is a success, check decision and inject results accordingly.
554+
if is_success && body_json["decision"].as_bool().unwrap_or(true) {
555+
// the logic to ensure "results" is a serde_json::Value::String is present on the
556+
// llamaedge-query-server.
557+
let results = body_json["results"].as_str().unwrap_or("");
566558

567-
//inject search results
568-
let system_search_result_message: ChatCompletionRequestMessage =
569-
ChatCompletionRequestMessage::new_system_message(results, None);
559+
info!(target: "stdout", "injecting search summary into conversation context.");
560+
//inject search results
561+
let system_search_result_message: ChatCompletionRequestMessage =
562+
ChatCompletionRequestMessage::new_system_message(results, None);
570563

571-
chat_request.messages.insert(
572-
chat_request.messages.len() - 1,
573-
system_search_result_message,
574-
)
575-
}
564+
chat_request.messages.insert(
565+
chat_request.messages.len() - 1,
566+
system_search_result_message,
567+
)
568+
}
569+
}
570+
Err(e) => {
571+
let err_msg = format!(
572+
"Couldn't make request to LlamaEdge query server, switching to regular RAG: {}",
573+
e
574+
);
575+
warn!(target: "stdout", "{}", &err_msg);
576+
}
577+
};
576578
}
577579

578580
// chat completion

0 commit comments

Comments
 (0)