@@ -153,6 +153,74 @@ T["Responses"]["build_messages"]["images"] = function()
153153 h .eq (expected , adapter .handlers .request .build_messages (adapter , messages ))
154154end
155155
156+ T [" Responses" ][" build_messages" ][" multiple consecutive images are not merged as text" ] = function ()
157+ local messages = {
158+ {
159+ content = " img1_base64" ,
160+ role = " user" ,
161+ opts = { visible = false },
162+ context = { mimetype = " image/png" },
163+ _meta = { tag = " image" },
164+ },
165+ {
166+ content = " img2_base64" ,
167+ role = " user" ,
168+ opts = { visible = false },
169+ context = { mimetype = " image/png" },
170+ _meta = { tag = " image" },
171+ },
172+ {
173+ content = " img3_base64" ,
174+ role = " user" ,
175+ opts = { visible = false },
176+ context = { mimetype = " image/png" },
177+ _meta = { tag = " image" },
178+ },
179+ {
180+ content = " How many images do you see?" ,
181+ role = " user" ,
182+ },
183+ }
184+
185+ local expected = {
186+ input = {
187+ {
188+ role = " user" ,
189+ content = {
190+ {
191+ type = " input_image" ,
192+ image_url = " data:image/png;base64,img1_base64" ,
193+ },
194+ },
195+ },
196+ {
197+ role = " user" ,
198+ content = {
199+ {
200+ type = " input_image" ,
201+ image_url = " data:image/png;base64,img2_base64" ,
202+ },
203+ },
204+ },
205+ {
206+ role = " user" ,
207+ content = {
208+ {
209+ type = " input_image" ,
210+ image_url = " data:image/png;base64,img3_base64" ,
211+ },
212+ {
213+ type = " input_text" ,
214+ text = " How many images do you see?" ,
215+ },
216+ },
217+ },
218+ },
219+ }
220+
221+ h .eq (expected , adapter .handlers .request .build_messages (adapter , messages ))
222+ end
223+
156224T [" Responses" ][" build_messages" ][" format tool calls" ] = function ()
157225 local messages = {
158226 {
0 commit comments