@@ -32,12 +32,12 @@ pub async fn chat_completions(
3232 let chat_request_bytes = request. collect ( ) . await ?. to_bytes ( ) ;
3333
3434 let chat_request_parsed = serde_json:: from_slice :: < serde_json:: Value > ( & chat_request_bytes)
35- . map_err ( |err| {
35+ . inspect_err ( |err| {
3636 warn ! (
37- "Failed to parse request body as JSON: {}" ,
37+ "Failed to parse request body as JSON: err: {}, str: {}" ,
38+ err,
3839 String :: from_utf8_lossy( & chat_request_bytes)
39- ) ;
40- err
40+ )
4141 } )
4242 . unwrap_or_else ( |_| {
4343 warn ! (
@@ -55,40 +55,32 @@ pub async fn chat_completions(
5555 return Ok ( bad_request) ;
5656 }
5757
58+ let chat_completion_request: ChatCompletionsRequest =
59+ serde_json:: from_value ( chat_request_parsed. clone ( ) ) . unwrap ( ) ;
60+
5861 // remove metadata from the request
59- let mut chat_request_parsed = chat_request_parsed;
60- if let Some ( metadata) = chat_request_parsed . get_mut ( "metadata" ) {
62+ let mut chat_request_user_preferences_removed = chat_request_parsed;
63+ if let Some ( metadata) = chat_request_user_preferences_removed . get_mut ( "metadata" ) {
6164 info ! ( "Removing metadata from request" ) ;
62- metadata. as_object_mut ( ) . map ( |m| {
65+ if let Some ( m ) = metadata. as_object_mut ( ) {
6366 m. remove ( "archgw_preference_config" ) ;
6467 info ! ( "Removed archgw_preference_config from metadata" ) ;
65- } ) ;
68+ }
69+
70+ // metadata.as_object_mut().map(|m| {
71+ // m.remove("archgw_preference_config");
72+ // info!("Removed archgw_preference_config from metadata");
73+ // });
6674
6775 // if metadata is empty, remove it
6876 if metadata. as_object ( ) . map_or ( false , |m| m. is_empty ( ) ) {
6977 info ! ( "Removing empty metadata from request" ) ;
70- chat_request_parsed
78+ chat_request_user_preferences_removed
7179 . as_object_mut ( )
7280 . map ( |m| m. remove ( "metadata" ) ) ;
7381 }
7482 }
7583
76- let chat_completion_request: ChatCompletionsRequest =
77- match ChatCompletionsRequest :: try_from ( chat_request_bytes. as_ref ( ) ) {
78- Ok ( request) => request,
79- Err ( err) => {
80- warn ! (
81- "arch-router request body string: {}" ,
82- String :: from_utf8_lossy( & chat_request_bytes)
83- ) ;
84- let err_msg = format ! ( "Failed to parse request body: {}" , err) ;
85- warn ! ( "{}" , err_msg) ;
86- let mut bad_request = Response :: new ( full ( err_msg) ) ;
87- * bad_request. status_mut ( ) = StatusCode :: BAD_REQUEST ;
88- return Ok ( bad_request) ;
89- }
90- } ;
91-
9284 trace ! (
9385 "arch-router request body: {}" ,
9486 & serde_json:: to_string( & chat_completion_request) . unwrap( )
@@ -153,7 +145,8 @@ pub async fn chat_completions(
153145 ) ;
154146 }
155147
156- let chat_request_parsed_bytes = serde_json:: to_string ( & chat_request_parsed) . unwrap ( ) ;
148+ let chat_request_parsed_bytes =
149+ serde_json:: to_string ( & chat_request_user_preferences_removed) . unwrap ( ) ;
157150
158151 // remove content-length header if it exists
159152 request_headers. remove ( header:: CONTENT_LENGTH ) ;
0 commit comments