o
    i                      @   sX  d dl mZmZ G dd deZG dd deZG dd deZG dd	 d	eZG d
d deZG dd deZG dd deZ	G dd deZ
G dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG d d! d!e	e
ZG d"d# d#eZG d$d% d%eZG d&d' d'eZG d(d) d)e	e
Zd*S )+    )	BaseModelFieldc                   @   sV   e Zd ZU edddZedB ed< edddZedB ed< edddZedB ed< dS )	Datum2NzBase64 encoded image datadescriptionb64_jsonzRevised promptrevised_promptzURL of the imageurl)	__name__
__module____qualname__r   r   str__annotations__r   r	    r   r   9/mnt/c/Users/fbmor/ComfyUI/comfy_api_nodes/apis/openai.pyr      s   
 r   c                   @   s6   e Zd ZU edZedB ed< edZedB ed< dS )InputTokensDetailsNimage_tokenstext_tokens)r
   r   r   r   r   intr   r   r   r   r   r   r   
   s   
 r   c                   @   s^   e Zd ZU edZedB ed< edZedB ed< edZ	edB ed< edZ
edB ed< dS )UsageNinput_tokensinput_tokens_detailsoutput_tokenstotal_tokens)r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r      
   
 r   c                   @   s:   e Zd ZU edZee dB ed< edZe	dB ed< dS )OpenAIImageGenerationResponseNdatausage)
r
   r   r   r   r   listr   r   r   r   r   r   r   r   r      s   
 r   c                   @   s   e Zd ZU edddZedB ed< edZeed< edZedB ed< edddZ	e
dB ed	< edd
dZe
dB ed< edZedB ed< edZeed< edddZedB ed< edddZedB ed< dS )OpenAIImageEditRequestNBackground transparencyr   
background.model
moderationz The number of images to generaten*Compression level for JPEG or WebP (0-100)output_compressionoutput_formatprompt4Size of the image (e.g., 1024x1024, 1536x1024, auto)qualityzSize of the output imagesize)r
   r   r   r   r!   r   r   r"   r#   r$   r   r&   r'   r(   r*   r+   r   r   r   r   r      s   
 r   c                   @   s   e Zd ZU edddZedB ed< edZedB ed< edZedB ed< edddZ	e
dB ed< edd	dZe
dB ed
< edZedB ed< edZeed< edddZedB ed< edddZedB ed< edddZedB ed< dS )OpenAIImageGenerationRequestNr    r   r!   r"   r#   z!The number of images to generate.r$   r%   r&   r'   .r(   z"The quality of the generated imager*   r)   r+   z&Style of the image (only for dall-e-3)style)r
   r   r   r   r!   r   r   r"   r#   r$   r   r&   r'   r(   r*   r+   r-   r   r   r   r   r,   '   s   
 r,   c                   @   s   e Zd ZU edZedB ed< edZedB ed< edZ	edB ed< eddddd	Z
edB ed
< eddddd	ZedB ed< edddZedB ed< dS )ModelResponsePropertiesNinstructionsmax_output_tokensr"      z#Controls randomness in the responseg        g       @)r   geletemperaturez7Controls diversity of the response via nucleus samplingg      ?top_pdisabled$Allowed values: 'auto' or 'disabled'r   
truncation)r
   r   r   r   r/   r   r   r0   r   r"   r4   floatr5   r8   r   r   r   r   r.   7   s   
 r.   c                   @   sv   e Zd ZU edZedB ed< edZedB ed< edZ	edB ed< edZ
edB ed< edddZedB ed	< dS )
ResponsePropertiesNr/   r0   r"   previous_response_idr6   r7   r   r8   )r
   r   r   r   r/   r   r   r0   r   r"   r;   r8   r   r   r   r   r:   E   s   
 r:   c                   @   s.   e Zd ZU edZeed< edZeed< dS )ResponseError.codemessageN)r
   r   r   r   r=   r   r   r>   r   r   r   r   r<   M   s   
 r<   c                   @   "   e Zd ZU edddZeed< dS )OutputTokensDetails.zThe number of reasoning tokens.r   reasoning_tokensN)r
   r   r   r   rA   r   r   r   r   r   r   r@   R   s   
 r@   c                   @   r?   )CachedTokensDetails.z8The number of tokens that were retrieved from the cache.r   cached_tokensN)r
   r   r   r   rC   r   r   r   r   r   r   rB   V   s
   
 rB   c                   @   sj   e Zd ZU edddZeed< edZeed< edddZ	eed< edZ
eed< edd	dZeed
< dS )ResponseUsage.zThe number of input tokens.r   r   r   zThe number of output tokens.r   output_tokens_detailsz The total number of tokens used.r   N)r
   r   r   r   r   r   r   r   rB   r   rE   r@   r   r   r   r   r   rD   ]   s   
 rD   c                   @   s2   e Zd ZU edddZeed< edZeed< dS )InputTextContent.zThe text input to the model.r   text
input_texttypeN)r
   r   r   r   rG   r   r   rI   r   r   r   r   rF   e   s   
 rF   c                   @   sj   e Zd ZU edddZeed< edddZedB ed< edddZedB ed	< edd
dZ	edB ed< dS )OutputContent.zThe type of output contentr   rI   NzThe text contentrG   zBase64-encoded audio datar   zTranscript of the audio
transcript)
r
   r   r   r   rI   r   r   rG   r   rK   r   r   r   r   rJ   j   s
   
 rJ   c                   @   sV   e Zd ZU edddZeed< edddZee	 dB ed< edddZ
edB ed	< dS )
OutputMessage.zThe type of output itemr   rI   NzThe content of the messagecontentzThe role of the messagerole)r
   r   r   r   rI   r   r   rM   r   rJ   rN   r   r   r   r   rL   q   s   
 rL   c                   @   s   e Zd ZU edddZedB ed< edZedB ed< edddZ	e
dB ed< edddZe
dB ed	< edZee dB ed
< edZedB ed< edddZe
dB ed< edZedB ed< dS )OpenAIResponseNz>Unix timestamp (in seconds) of when this Response was created.r   
created_aterrorz$Unique identifier for this Response.idz<The object type of this resource - always set to `response`.objectoutputTparallel_tool_callsz=One of `completed`, `failed`, `in_progress`, or `incomplete`.statusr   )r
   r   r   r   rP   r9   r   rQ   r<   rR   r   rS   rT   r   rL   rU   boolrV   r   rD   r   r   r   r   rO   w   s   
 rO   c                   @   s^   e Zd ZU edddZeed< edZedB ed< edZedB ed< edddZ	eed	< dS )
InputImageContent.z4One of `high`, `low`, or `auto`. Defaults to `auto`.r   detailNfile_id	image_urlz1The type of the input item. Always `input_image`.rI   )
r
   r   r   r   rY   r   r   rZ   r[   rI   r   r   r   r   rX      r   rX   c                   @   sb   e Zd ZU edZedB ed< edZedB ed< edddZedB ed< edddZ	eed	< dS )
InputFileContentN	file_datarZ   z-The name of the file to be sent to the model.r   filename.z0The type of the input item. Always `input_file`.rI   )
r
   r   r   r   r]   r   r   rZ   r^   rI   r   r   r   r   r\      s
   
 r\   c                   @   sV   e Zd ZU edddZeeeB eB  e	d< edZ
edB e	d< edZedB e	d< dS )InputMessage.zSA list of one or many input items to the model, containing different content types.r   rM   NrN   rI   )r
   r   r   r   rM   r   rF   rX   r\   r   rN   r   rI   r   r   r   r   r_      s   
 r_   c                   @   s   e Zd ZU edZedB ed< edZee	 ed< edddZ
edB ed< edd	dZedB ed
< edZedB ed< edZedB ed< dS )OpenAICreateResponseNinclude.inputTz9Whether to allow the model to run tool calls in parallel.r   rU   zJWhether to store the generated model response for later retrieval via API.storeFstreamr   )r
   r   r   r   ra   r   r   rb   r   r_   rU   rW   rc   rd   r   rD   r   r   r   r   r`      s   
 r`   N)pydanticr   r   r   r   r   r   r   r,   r.   r:   r<   r@   rB   rD   rF   rJ   rL   rO   rX   r\   r_   r`   r   r   r   r   <module>   s*    	