@@ -744,11 +744,9 @@ pub mod gemini_api_types {
744744 message:: UserContent :: Document ( message:: Document {
745745 data, media_type, ..
746746 } ) => {
747- let media_type = media_type. ok_or ( message:: MessageError :: ConversionError (
748- "Media type for document is required for Gemini" . to_string ( ) ,
749- ) ) ?;
750-
751- if !media_type. is_code ( ) {
747+ if let Some ( ref media_type) = media_type
748+ && !media_type. is_code ( )
749+ {
752750 let mime_type = media_type. to_mime_type ( ) . to_string ( ) ;
753751
754752 let part = match data {
@@ -786,18 +784,19 @@ pub mod gemini_api_types {
786784 message:: UserContent :: Audio ( message:: Audio {
787785 data, media_type, ..
788786 } ) => {
789- let media_type = media_type. ok_or ( message:: MessageError :: ConversionError (
790- "Media type for audio is required for Gemini" . to_string ( ) ,
791- ) ) ?;
792-
793- let mime_type = media_type. to_mime_type ( ) . to_string ( ) ;
787+ let mime_type = media_type. map ( |x| x. to_mime_type ( ) . to_string ( ) ) ;
794788
795789 let part = match data {
796790 DocumentSourceKind :: Base64 ( data) => {
791+ let Some ( mime_type) = mime_type else {
792+ return Err ( MessageError :: ConversionError (
793+ "Mime type is required for Base64 encoded strings" . to_string ( ) ,
794+ ) ) ;
795+ } ;
797796 PartKind :: InlineData ( Blob { data, mime_type } )
798797 }
799798 DocumentSourceKind :: Url ( file_uri) => PartKind :: FileData ( FileData {
800- mime_type : Some ( mime_type ) ,
799+ mime_type,
801800 file_uri,
802801 } ) ,
803802 DocumentSourceKind :: Raw ( _) => {
@@ -824,12 +823,6 @@ pub mod gemini_api_types {
824823 additional_params,
825824 ..
826825 } ) => {
827- // let media_type = media_type.ok_or(message::MessageError::ConversionError(
828- // "Media type for video is required for Gemini".to_string(),
829- // ))?;
830-
831- // let mime_type = media_type.to_mime_type().to_owned();
832-
833826 let mime_type = media_type. map ( |media_ty| media_ty. to_mime_type ( ) . to_string ( ) ) ;
834827
835828 let part = match data {
0 commit comments