File tree Expand file tree Collapse file tree 2 files changed +27
-5
lines changed Expand file tree Collapse file tree 2 files changed +27
-5
lines changed Original file line number Diff line number Diff line change @@ -105,6 +105,8 @@ const MODEL_SUPPORTS_IMAGES: RegExp[] = [
105105 / \b g e m m a - ? 3 (? ! n ) / , // gemma3 supports vision, but gemma3n doesn't!
106106 / \b ( p a l i | m e d ) g e m m a / ,
107107 / q w e n ( .* ) v l / ,
108+ / m i s t r a l - s m a l l / ,
109+ / m i s t r a l - m e d i u m / ,
108110] ;
109111
110112function modelSupportsImages (
Original file line number Diff line number Diff line change 55 Chunk ,
66 CompletionOptions ,
77 LLMOptions ,
8+ TextMessagePart ,
89 ToolCallDelta ,
910 ToolResultChatMessage ,
1011} from "../../index.js" ;
@@ -103,11 +104,30 @@ class WatsonX extends BaseLLM {
103104 } ) ) ;
104105 delete message_ . toolCalls ;
105106 delete message_ . content ;
106- } else if (
107- message_ . role === "user" &&
108- typeof message_ . content === "string"
109- ) {
110- message_ . content = [ { type : "text" , text : message_ . content } ] ;
107+ } else if ( message_ . role === "user" ) {
108+ if ( typeof message . content === "string" ) {
109+ message_ . content = [ { type : "text" , text : message_ . content } ] ;
110+ } else {
111+ return {
112+ role : "user" ,
113+ content : ! message . content . some ( ( item ) => item . type !== "text" )
114+ ? message . content
115+ . map ( ( item ) => ( item as TextMessagePart ) . text )
116+ . join ( "" ) || " "
117+ : message . content . map ( ( part ) => {
118+ if ( part . type === "imageUrl" ) {
119+ return {
120+ type : "image_url" as const ,
121+ image_url : {
122+ url : part . imageUrl . url ,
123+ detail : "auto" as const ,
124+ } ,
125+ } ;
126+ }
127+ return part ;
128+ } ) ,
129+ } ;
130+ }
111131 }
112132 return message_ ;
113133 }
You can’t perform that action at this time.
0 commit comments