@@ -33,6 +33,7 @@ use crate::model::{
3333 build_creds_caching_default, fully_qualified_name, Credential , CredentialLocation ,
3434 ModelProvider ,
3535} ;
36+ use crate :: providers;
3637use crate :: providers:: helpers:: {
3738 inject_extra_request_data_and_send, inject_extra_request_data_and_send_eventsource,
3839} ;
@@ -664,7 +665,7 @@ impl<'a> AnthropicRequestBody<'a> {
664665 . iter ( )
665666 . map ( AnthropicMessage :: try_from)
666667 . collect :: < Result < Vec < _ > , _ > > ( ) ?;
667- let messages = prepare_messages ( request_messages) ? ;
668+ let messages = prepare_messages ( request_messages) ;
668669 let messages = if matches ! (
669670 request. json_mode,
670671 ModelInferenceRequestJsonMode :: On | ModelInferenceRequestJsonMode :: Strict
@@ -711,7 +712,9 @@ impl<'a> AnthropicRequestBody<'a> {
711712/// Modifies the message array to satisfy Anthropic API requirements by:
712713/// - Prepending a default User message with "[listening]" if the first message is not from a User
713714/// - Appending a default User message with "[listening]" if the last message is from an Assistant
714- fn prepare_messages ( mut messages : Vec < AnthropicMessage > ) -> Result < Vec < AnthropicMessage > , Error > {
715+ fn prepare_messages (
716+ mut messages : Vec < AnthropicMessage > ,
717+ ) -> std:: vec:: Vec < providers:: anthropic:: AnthropicMessage < ' _ > > {
715718 // Anthropic also requires that there is at least one message and it is a User message.
716719 // If it's not we will prepend a default User message.
717720 match messages. first ( ) {
@@ -745,7 +748,7 @@ fn prepare_messages(mut messages: Vec<AnthropicMessage>) -> Result<Vec<Anthropic
745748 } ) ;
746749 }
747750 }
748- Ok ( messages)
751+ messages
749752}
750753
751754fn prefill_json_message ( messages : Vec < AnthropicMessage > ) -> Vec < AnthropicMessage > {
@@ -1765,7 +1768,7 @@ mod tests {
17651768
17661769 // Test case 1: Empty messages - should add listening message
17671770 let messages = vec ! [ ] ;
1768- let result = prepare_messages ( messages) . unwrap ( ) ;
1771+ let result = prepare_messages ( messages) ;
17691772 assert_eq ! ( result, vec![ listening_message. clone( ) ] ) ;
17701773
17711774 // Test case 2: First message is Assistant - should prepend listening message
@@ -1783,7 +1786,7 @@ mod tests {
17831786 } ) ] ,
17841787 } ,
17851788 ] ;
1786- let result = prepare_messages ( messages) . unwrap ( ) ;
1789+ let result = prepare_messages ( messages) ;
17871790 assert_eq ! (
17881791 result,
17891792 vec![
@@ -1818,7 +1821,7 @@ mod tests {
18181821 } ) ] ,
18191822 } ,
18201823 ] ;
1821- let result = prepare_messages ( messages) . unwrap ( ) ;
1824+ let result = prepare_messages ( messages) ;
18221825 assert_eq ! (
18231826 result,
18241827 vec![
@@ -1859,7 +1862,7 @@ mod tests {
18591862 } ) ] ,
18601863 } ,
18611864 ] ;
1862- let result = prepare_messages ( messages. clone ( ) ) . unwrap ( ) ;
1865+ let result = prepare_messages ( messages. clone ( ) ) ;
18631866 assert_eq ! ( result, messages) ;
18641867
18651868 // Test case 5: Both first Assistant and last Assistant - should add listening messages at both ends
@@ -1883,7 +1886,7 @@ mod tests {
18831886 } ) ] ,
18841887 } ,
18851888 ] ;
1886- let result = prepare_messages ( messages) . unwrap ( ) ;
1889+ let result = prepare_messages ( messages) ;
18871890 assert_eq ! (
18881891 result,
18891892 vec![
@@ -1917,7 +1920,7 @@ mod tests {
19171920 text: "Hi" ,
19181921 } ) ] ,
19191922 } ] ;
1920- let result = prepare_messages ( messages) . unwrap ( ) ;
1923+ let result = prepare_messages ( messages) ;
19211924 assert_eq ! (
19221925 result,
19231926 vec![
@@ -1939,7 +1942,7 @@ mod tests {
19391942 text: "Hello" ,
19401943 } ) ] ,
19411944 } ] ;
1942- let result = prepare_messages ( messages. clone ( ) ) . unwrap ( ) ;
1945+ let result = prepare_messages ( messages. clone ( ) ) ;
19431946 assert_eq ! ( result, messages) ;
19441947 }
19451948
0 commit comments