@@ -252,3 +252,202 @@ class EmbeddingsRequest(BaseModel):
252252 encoding_format : str | None = 'float'
253253 # inpput_type is for cohere embeddings only
254254 input_type : str | None = 'search_document'
255+
256+
257+ # ---------------------------------------------------------------------------
258+ # OpenAI Responses Request
259+ # https://platform.openai.com/docs/api-reference/responses/create
260+ # ---------------------------------------------------------------------------
261+ class ResponsesInputTextItem (BaseModel ):
262+ text : str
263+ type : str # always input_text
264+
265+ class ResponsesInputImageItem (BaseModel ):
266+ detail : str | None = 'auto'
267+ type : str # always input_image
268+ file_id : str | None = None
269+ image_url : str | None = None
270+
271+ class ResponsesInputFileItem (BaseModel ):
272+ type : str # always input_file
273+ file_data : str | None = None
274+ file_id : str | None = None
275+ file_url : str | None = None
276+ filename : str | None = None
277+
278+ class ResponsesInputAudioItem (BaseModel ):
279+ input_audio : object
280+ type : str # always input_audio
281+
282+ class ResponsesInputMessageItem (BaseModel ):
283+ role : str
284+ type : str | None = None
285+ content : str | list [ResponsesInputTextItem | ResponsesInputImageItem | ResponsesInputFileItem | ResponsesInputAudioItem ]
286+
287+
288+ class ResponsesItemInputMessage (BaseModel ):
289+ role : str
290+ content : list [ResponsesInputTextItem | ResponsesInputImageItem | ResponsesInputFileItem | ResponsesInputAudioItem ]
291+ status : str | None = None
292+ type : str | None = None
293+
294+ class ResponsesItemOutputMessage (BaseModel ):
295+ content : list [object ]
296+ id : str
297+ role : str
298+ status : str
299+ type : str
300+
301+ class ResponsesItemFileSearchToolCall (BaseModel ):
302+ id : str
303+ query : str
304+ status : str
305+ type : str
306+ results : list [object ]
307+
308+ class ResponsesItemComputerToolCall (BaseModel ):
309+ action : object
310+ call_id : str
311+ id : str
312+ pending_safety_checks : list [object ]
313+ status : str
314+ type : str
315+
316+ class ResponsesItemComputerToolCallOutput (BaseModel ):
317+ call_id : str
318+ output : object
319+ type : str
320+ acknowledged_safety_checks : list [object ] | None = None
321+ id : str | None = None
322+ status : str | None = None
323+
324+ class ResponsesItemWebSearchToolCall (BaseModel ):
325+ action : object
326+ id : str
327+ status : str
328+ type : str
329+
330+ class ResponsesItemFunctionToolCall (BaseModel ):
331+ arguments : str
332+ call_id : str
333+ name : str
334+ type : str
335+ id : str | None = None
336+ status : str | None = None
337+
338+ class ResponsesItemFunctionToolCallOutput (BaseModel ):
339+ call_id : str
340+ output : str | list [object ]
341+ type : str
342+ id : str | None = None
343+ status : str | None = None
344+
345+ class ResponsesItemReasoning (BaseModel ):
346+ id : str
347+ summary : list [object ]
348+ type : str
349+ content : list [object ] | None = None
350+ encrypted_content : str | None = None
351+ status : str | None = None
352+
353+ class ResponsesItemImageGenerationCall (BaseModel ):
354+ id : str
355+ result : str
356+ status : str
357+ type : str
358+
359+ class ResponsesItemCodeInterpreterToolCall (BaseModel ):
360+ code : str
361+ container_id : str
362+ id : str
363+ outputs : list [object ]
364+ status : str
365+ type : str
366+
367+ class ResponsesItemLocalShellCall (BaseModel ):
368+ action : object
369+ call_id : str
370+ id : str
371+ status : str
372+ type : str
373+
374+ class ResponsesItemLocalShellCallOutput (BaseModel ):
375+ id : str
376+ output : str
377+ type : str
378+ status : str | None = None
379+
380+ class ResponsesItemMCPListTools (BaseModel ):
381+ id : str
382+ server_label : str
383+ tools : list [object ]
384+ type : str
385+ error : str | None = None
386+
387+ class ResponsesItemMCPApprovalRequest (BaseModel ):
388+ arguments : str
389+ id : str
390+ name : str
391+ server_label : str
392+ type : str
393+
394+ class ResponsesItemMCPApprovalResponse (BaseModel ):
395+ approval_request_id : str
396+ approve : bool
397+ type : str
398+ id : str | None = None
399+ reason : str | None = None
400+
401+ class ResponsesItemMCPToolCall (BaseModel ):
402+ arguments : str
403+ id : str
404+ name : str
405+ server_label : str
406+ type : str
407+ error : str | None = None
408+ output : str | None = None
409+
410+ class ResponsesItemCustomToolCallOutput (BaseModel ):
411+ call_id : str
412+ output : str | list [object ]
413+ type : str
414+ id : str | None = None
415+
416+ class ResponsesItemCustomToolCall (BaseModel ):
417+ call_id : str
418+ input : str
419+ name : str
420+ type : str
421+ id : str | None = None
422+
423+ class ResponsesItemReference (BaseModel ):
424+ id : str
425+ type : str
426+
427+ class ResponsesRequest (BaseModel ):
428+ background : bool | None = False
429+ conversation : str | object | None = None
430+ include : list [Any ] | None = None
431+ input : str | list [ResponsesInputMessageItem | ResponsesItemReference | ResponsesItemInputMessage | ResponsesItemFileSearchToolCall | ResponsesItemComputerToolCall | ResponsesItemWebSearchToolCall | ResponsesItemFunctionToolCall | ResponsesItemReasoning | ResponsesItemImageGenerationCall | ResponsesItemCodeInterpreterToolCall | ResponsesItemLocalShellCall | ResponsesItemMCPListTools | ResponsesItemMCPApprovalRequest | ResponsesItemMCPApprovalResponse | ResponsesItemMCPToolCall | ResponsesItemCustomToolCallOutput | ResponsesItemCustomToolCall ] | None = None
432+ instructions : str | None = None
433+ max_output_tokens : int | None = None
434+ max_tool_calls : int | None = None
435+ metadata : dict [Any , Any ] | None = None
436+ model : str | None = None
437+ parallel_tool_calls : bool | None = True
438+ previous_response_id : str | None = None
439+ prompt : object | None = None
440+ prompt_cache_key : str | None = None
441+ reasoning : object | None = None
442+ safety_identifier : str | None = None
443+ service_tier : str | None = 'auto'
444+ store : bool | None = True
445+ stream : bool | None = False
446+ stream_options : object | None = None
447+ temperature : float | None = 1.0
448+ text : object | None = None
449+ tool_choice : str | object | None = None
450+ tools : list [Any ] | None = None
451+ top_logprobs : int | None = None
452+ top_p : float | None = 1.0
453+ truncation : str | None = 'disabled'
0 commit comments