@@ -147,6 +147,30 @@ def forward(self, messages: List[Dict], max_batch_size: int = 1) -> List[Dict]:
147147 messages .append (dict (role = 'forward' , content = outputs ))
148148 return messages
149149
150+ def proc_internvl_hf_messages (self , content : List [Dict ]):
151+ """Process the content list of role 'user' for InternVL HF models."""
152+ res = []
153+ for item in content :
154+ if item ['type' ] == 'text' :
155+ res .append (item ['text' ])
156+ elif item ['type' ] in ['image' , 'image_url' ]:
157+ res .append (f'{ self .image_token } \n ' )
158+ else :
159+ raise ValueError (f'Unsupported message type: { item ["type" ]} ' )
160+ return '' .join (res )
161+
162+ def proc_interns1_messages (self , content : List [Dict ]):
163+ """Process the content list of role 'user' for InternS1 models."""
164+ res = []
165+ for item in content :
166+ if item ['type' ] == 'text' :
167+ res .append (item ['text' ])
168+ elif item ['type' ] in ['image' , 'image_url' ]:
169+ res .append (f'{ self .image_token } ' )
170+ else :
171+ raise ValueError (f'Unsupported message type: { item ["type" ]} ' )
172+ return '\n ' .join (res )
173+
150174 def proc_messages (
151175 self ,
152176 messages ,
@@ -162,15 +186,9 @@ def proc_messages(
162186 continue
163187 role , content = message ['role' ], message ['content' ]
164188 if role == 'user' and isinstance (content , List ):
165- _content = []
166- for item in content :
167- if item ['type' ] == 'text' :
168- _content .append (item ['text' ])
169- elif item ['type' ] in ['image' , 'image_url' ]:
170- _content .append (self .image_token )
171- else :
172- raise ValueError (f'Unsupported message type: { item ["type" ]} ' )
173- message = dict (role = role , content = '\n ' .join (_content ))
189+ content = (self .proc_internvl_hf_messages (content )
190+ if self .arch == 'InternVLForConditionalGeneration' else self .proc_interns1_messages (content ))
191+ message = dict (role = role , content = content )
174192 prompt_messages .append (message )
175193 else :
176194 prompt_messages .append (message )
0 commit comments