+
    UV-jÎm  ã            
       óò  a € Rq tY0 t ^ RIt^ RIHtHtHtHtHtHtH	t	 ^ RI
HtHtHtHt ^ RIHtHtHt ]'       d   ^RIHt ^RIHtHtHtHtHt ^RIHtHtHt R t ! R	 R
]4      t  ! R R] 4      t! ! R R]4      t" ! R R]4      t# ! R R] 4      t$ ! R R]4      t% ! R R]4      t& ! R R]RR7      t' ! R R]RR7      t( ! R R]RR7      t) ! R R ]RR7      t* ! R! R"]RR7      t+ ! R# R$]RR7      t,]	]]-,          ]]-]-3,          3,          t.] ^ k ]	]'](],]*3,          t/] ^k ]]/,          t0] ^k  ! R% R&]RR7      t1]]1,          t2] ^k  ! R' R(] 4      t3 ! R) R*] 4      t4 ! R+ R,]4      t5 ! R- R.]4      t6 ! R/ R0]4      t7 ! R1 R2]4      t8 ! R3 R4]4      t9 ! R5 R6]4      t: ! R7 R8]4      t; ! R9 R:]4      t< ! R; R<]:4      t= ! R= R>]:4      t> ! R? R@]:4      t? ! RA RB]:4      t@ ! RC RD]:4      tA ! RE RF]:4      tB ! RG RH]:4      tC ! RI RJ]:4      tD ! RK RL]:4      tE]	]=]>]?]@]A]B]C]D]E3	,          tF ! RM RN] 4      tG ! RO RP]G4      tH ! RQ RR]4      tI ! RS RT]4      tJ ! RU RV]H4      tK ! RW RX]4      tL ! RY RZ]4      tM ! R[ R\]4      tN ! R] R^]4      tO ! R_ R`]4      tP ! Ra Rb]4      tQ ! Rc Rd]4      tR ! Re Rf] 4      tS ! Rg Rh] 4      tT ! Ri Rj]4      tU ! Rk Rl]4      tV ! Rm Rn]4      tW ! Ro Rp]4      tXR# )ré    N)ÚTYPE_CHECKINGÚAnyÚListÚLiteralÚOptionalÚTupleÚUnion)Ú	BaseModelÚ
ConfigDictÚFieldÚfield_validator)ÚRequiredÚ	TypeAliasÚ	TypedDict)ÚGenerationMetrics)ÚDEFAULT_MAX_TOKENSÚDEFAULT_SEEDÚDEFAULT_TEMPERATUREÚDEFAULT_TOP_PÚnormalize_resize_shape)ÚDEFAULT_IMAGE_GUIDANCEÚDEFAULT_IMAGE_SIZEÚDEFAULT_IMAGE_STEPSc                  ó\   € \        \        P                  P                  R \        4      4      # )ÚMLX_VLM_MAX_TOKENS)ÚintÚosÚenvironÚgetr   © ó    Úg/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_vlm/server/schemas.pyÚget_server_max_tokensr#      s   € ÜŒr�z‰z�~‰~Ð2Ô4FÓGÓHÐHr!   c                   ó,   € ] tR t^tRt]! RR7      tRtR# )ÚFlexibleBaseModelz>Base model that ignores/accepts any unknown OpenAI SDK fields.Úallow)Úextrar    N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   Úmodel_configÚ__static_attributes__r    r!   r"   r%   r%      s   † ÙHá GÔ,„Lr!   r%   c                   ór  a € ] tR t^%t o ]! RRR7      t]! RRR7      t]! ^^^
RR7      t]! ]RR7      t	]! R	R
R7      t
]! R	RR7      t]! ]^RR7      t]! R	RR7      t]! ]RR7      t]! R	RR7      t]! R	RR7      t]! RRR7      t]! RRR7      t]! R	RR7      t]! R	RR7      t]! R	RR7      tV 3R ltRtV tR	# )ÚImageGenerationRequest.z!Text prompt for image generation.©ÚdescriptionÚ z3Image generation model name or local snapshot path.úNumber of images to generate.©ÚgeÚler2   z>Image size as WIDTHxHEIGHT. Width/height fields override this.NzGenerated image width.zGenerated image height.z+Number of image generation inference steps.©r6   r2   ú2Base seed. Multiple outputs use (seed + i) values.úClassifier-free guidance scale.z6For Ideogram 4, wrap plain prompts into JSON captions.zkText model path or Hugging Face repo used to expand plain Ideogram 4 prompts into structured JSON captions.Úb64_jsonú=Return base64 PNG data or write files and return local paths.Úpngú5Output image format. Only PNG is currently supported.ú9Output file path. For n>1, an index is added to the stem.ú$Output directory for path responses.ú5OpenAI-compatible user identifier; currently ignored.c                ó†  <€ V ^8„  d   Qh/ S[ ;R&   S[ ;R&   S[;R&   S[S[ ,          ;R&   S[S[,          ;R&   S[S[,          ;R&   S[;R&   S[S[,          ;R&   S[;R	&   S[S[,          ;R
&   S[S[ ,          ;R&   S[R,          ;R&   S[R,          ;R&   S[S[ ,          ;R&   S[S[ ,          ;R&   S[S[ ,          ;R&   # )é   ÚpromptÚmodelÚnÚsizeÚwidthÚheightÚstepsÚseedÚguidanceÚauto_json_captionÚprompt_expansion_modelÚresponse_formatr=   Úoutput_formatÚoutput_pathÚ
output_dirÚuser©r;   Úpath)Ústrr   r   ÚfloatÚboolr   )ÚformatÚ__classdict__s   "€r"   Ú__annotate__Ú#ImageGenerationRequest.__annotate__%   s!  ø‡ ‚ ÙÑMñ áñ ñ ñ ÑOñ ñ ‘3�-ñ ñ ñ ‘C�=ÑLñ ñ ‘S�MÑNñ ñ ñ ñ ñ$ ‘3�-ñ ñ% ñ, ñ ñ- ñ4  ¡•~ñ ñ5 ñ< %¡S�Mñ ñ= ñJ Ð/Õ0ñ ñK ñR ˜5•>ñ ñS ñX ™#•ñ ñY ñ` ™•ñ ña ñh ‘3�-ñ òi r!   r    )r(   r)   r*   r+   r   rD   rE   rF   r   rG   rH   rI   r   rJ   rK   r   rL   rM   rN   rO   rP   rQ   rR   rS   Ú__annotate_func__r.   Ú__classdictcell__©rZ   s   @r"   r0   r0   %   s#  ø‡ € Ù˜Ð)LÔM€FÙØ
ØIô€Eñ �1˜˜rÐ/NÔO€AÙØØTô€Dñ ! Ð3KÔL€EÙ! $Ð4MÔN€FÙØØØAô€Eñ
  ØØHô€Dñ ØØ5ô€Hñ ).ØØLô)Ðñ -2Øð@ô-Ðñ 49ØØSô4€Oñ %*ØÐRô%€Mñ "'ØØOô"€Kñ !&ØØ:ô!€Jñ  ØÐQô€D÷i ƒ r!   r0   c                   ó<   a € ] tR t^^t o RtRtRtRtV 3R ltRt	V t
R# )ÚImageGenerationResponseDataNú	image/pngc                óž   <€ V ^8„  d   Qh/ S[ S[,          ;R&   S[ S[,          ;R&   S[ S[,          ;R&   S[;R&   S[;R&   S[;R&   S[;R&   # ©rC   r;   rU   Úrevised_promptÚ	mime_typerH   rI   rK   ©r   rV   r   )rY   rZ   s   "€r"   r[   Ú(ImageGenerationResponseData.__annotate__^   óe   ø‡ ‚ Ù‘s�mÑ"ñ á
‘3�-Ññ ñ ™S•MÑ(ñ ñ Ñ ñ	 ñ
 �Jñ ñ �Kñ ñ �Iò r!   r    ©r(   r)   r*   r+   r;   rU   re   rf   r]   r.   r^   r_   s   @r"   ra   ra   ^   ó    ø‡ € Ø"€HØ€DØ$(€NØ €I÷	 ƒ r!   ra   c                   ó0   a € ] tR t^ht o RtV 3R ltRtV tR# )ÚImageGenerationResponser=   c                óh   <€ V ^8„  d   Qh/ S[ ;R&   S[S[,          ;R&   S[R,          ;R&   S[;R&   # ©rC   ÚcreatedÚdatar=   rP   rG   )r   r   ra   r   rV   )rY   rZ   s   "€r"   r[   Ú$ImageGenerationResponse.__annotate__h   s=   ø‡ ‚ Ù�Lñ á
Ñ*Õ
+Ñ+ñ ñ ˜5•>Ñ)ñ ñ �Iò	 r!   r    N©r(   r)   r*   r+   rP   r]   r.   r^   r_   s   @r"   rm   rm   h   ó   ø‡ € ð %*€M÷ ƒ r!   rm   c                   ó„  a € ] tR t^ot o ]! RRR7      t]! RRR7      t]! RRR7      t]! ^^^
RR7      t]! RR	R7      t	]! RR
R7      t
]! RRR7      t]! ]^RR7      t]! RRR7      t]! ]RR7      t]! RRR7      t]! RRR7      t]! RRR7      t]! RRR7      t]! RRR7      t]! R4      ]R 4       4       tV 3R ltRtV tR# )ÚImageEditRequest.zText prompt for image editing.r1   z(Local path or paths of reference images.z-Image edit model name or local snapshot path.r4   r5   NzEEdited image size as WIDTHxHEIGHT. Width/height fields override this.zEdited image width.zEdited image height.z%Number of image edit inference steps.r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   Úimagec                óþ   € \        V\        4      '       d   V.M
\        V4      pV'       g   \        R 4      h\        ;QJ d    R V 4       F  '       d   K   RM	  RM! R V 4       4      '       g   \        R4      hV# )zAt least one image is required.c              3   óV   "  € T F  p\        V\        4      ;'       d    Tx € K!  	  R # 5i©N)Ú
isinstancerV   )Ú.0Úitems   & r"   Ú	<genexpr>Ú2ImageEditRequest.validate_image.<locals>.<genexpr>¢   s"   é € ÐE¹f°d”:˜d¤CÓ(×1Ð1¨TÔ1»fùs   ‚)ž)FTz&Image paths must be non-empty strings.)r{   rV   ÚlistÚ
ValueErrorÚall)ÚclsÚvalueÚimagess   && r"   Úvalidate_imageÚImageEditRequest.validate_imageœ   s^   € ô ' u¬c×2Ò2�%‘¼¸U»ˆßÜÐ>Ó?Ð?ß‹sÑE¹fÓE�s�sŠsÑE¹fÓE×EÒEÜÐEÓFÐFØˆr!   c                ó€  <€ V ^8„  d   Qh/ S[ ;R&   S[S[ S[S[ ,          3,          ;R&   S[ ;R&   S[;R&   S[S[ ,          ;R&   S[S[,          ;R&   S[S[,          ;R&   S[;R&   S[S[,          ;R	&   S[;R
&   S[R,          ;R&   S[R,          ;R&   S[S[ ,          ;R&   S[S[ ,          ;R&   S[S[ ,          ;R&   # )rC   rD   rw   rE   rF   rG   rH   rI   rJ   rK   rL   rO   r=   rP   rQ   rR   rS   rT   )rV   r	   r   r   r   rW   r   )rY   rZ   s   "€r"   r[   ÚImageEditRequest.__annotate__o   s  ø‡ ‚ ÙÑJñ á‘‘d™3•i�Õ ñ ñ ñ
 ÑXñ ñ ÑOñ ñ ‘3�-ñ ñ ñ ‘C�=ÑIñ ñ ‘S�MÑKñ ñ ñ ñ ñ$ ‘3�-ñ ñ% ñ, ñ ñ- ñ4 Ð/Õ0ñ ñ5 ñ< ˜5•>ñ ñ= ñB ™#•ñ ñC ñJ ™•ñ ñK ñR ‘3�-ñ òS r!   r    )r(   r)   r*   r+   r   rD   rw   rE   rF   rG   rH   rI   r   rJ   rK   r   rL   rO   rP   rQ   rR   rS   r   Úclassmethodr†   r]   r.   r^   r_   s   @r"   rv   rv   o   s(  ø‡ € Ù˜Ð)IÔJ€FÙ#(ØÐCô$€Eñ �sÐ(WÔX€EÙ�1˜˜rÐ/NÔO€AÙØØ[ô€Dñ ! Ð3HÔI€EÙ! $Ð4JÔK€FÙØØØ;ô€Eñ
  ØØHô€Dñ ØØ5ô€Hñ 49ØØSô4€Oñ %*ØÐRô%€Mñ "'ØØOô"€Kñ !&ØØ:ô!€Jñ  ØÐQô€Dñ �WÓØñó ó ð÷_ ƒ r!   rv   c                   ó<   a € ] tR t^§t o RtRtRtRtV 3R ltRt	V t
R# )ÚImageEditResponseDataNrb   c                óž   <€ V ^8„  d   Qh/ S[ S[,          ;R&   S[ S[,          ;R&   S[ S[,          ;R&   S[;R&   S[;R&   S[;R&   S[;R&   # rd   rg   )rY   rZ   s   "€r"   r[   Ú"ImageEditResponseData.__annotate__§   ri   r!   r    rj   r_   s   @r"   rŒ   rŒ   §   rk   r!   rŒ   c                   ó0   a € ] tR t^±t o RtV 3R ltRtV tR# )ÚImageEditResponser=   c                óh   <€ V ^8„  d   Qh/ S[ ;R&   S[S[,          ;R&   S[R,          ;R&   S[;R&   # ro   )r   r   rŒ   r   rV   )rY   rZ   s   "€r"   r[   ÚImageEditResponse.__annotate__±   s=   ø‡ ‚ Ù�Lñ á
Ñ$Õ
%Ñ%ñ ñ ˜5•>Ñ)ñ ñ �Iò	 r!   r    Nrs   r_   s   @r"   r�   r�   ±   rt   r!   r�   c                   ó,   a € ] tR t^»t o V 3R ltRtV tR# )ÚResponseInputTextParamc                ó`   <€ V ^8„  d   Qh/ S[ S[,          ;R&   S[ S[R,          ,          ;R&   # )rC   ÚtextÚtype)Ú
input_textr–   ©r   rV   r   )rY   rZ   s   "€r"   r[   Ú#ResponseInputTextParam.__annotate__»   s/   ø‡ ‚ Ù
‘3�-Ññ á
ÙÐ$Õ%õñ ò r!   r    N©r(   r)   r*   r+   r]   r.   r^   r_   s   @r"   r”   r”   »   ó   ø‡ ‡ „ r!   r”   F)Útotalc                   óD   a € ] tR t^Ât o ]! RRR7      t  V 3R ltRtV tR# )ÚResponseInputImageParamÚautoz6The detail level of the image to be sent to the model.r1   c                ó–   <€ V ^8„  d   Qh/ S[ R,          ;R&   S[S[ R,          ,          ;R&   S[S[,          ;R&   S[S[,          ;R&   # )rC   ÚdetailÚinput_imager—   Ú	image_urlÚfile_id)ÚhighÚlowr    )r   r   rV   r   )rY   rZ   s   "€r"   r[   Ú$ResponseInputImageParam.__annotate__Â   sV   ø‡ ‚ ÙÐ)Õ*ñ ñ ñ Ù�Õõñ ñ ñ ™�}Ññ ñ ‘c�]Ñò r!   r    N)	r(   r)   r*   r+   r   r¢   r]   r.   r^   r_   s   @r"   rŸ   rŸ   Â   s&   ø‡ € Ù-2ØÐTô.€Fðð÷ ƒ r!   rŸ   c                   ó,   a € ] tR t^Ôt o V 3R ltRtV tR# )Ú
InputAudioc                óR   <€ V ^8„  d   Qh/ S[ S[,          ;R&   S[ S[,          ;R&   # )rC   rq   rY   ©r   rV   )rY   rZ   s   "€r"   r[   ÚInputAudio.__annotate__Ô   s#   ø‡ ‚ Ù
‘3�-Ññ á‘S�MÑò r!   r    Nr›   r_   s   @r"   rª   rª   Ô   rœ   r!   rª   c                   ó,   a € ] tR t^Ùt o V 3R ltRtV tR# )ÚResponseInputAudioParamc                ó`   <€ V ^8„  d   Qh/ S[ S[R,          ,          ;R&   S[ S[,          ;R&   # )rC   Úinput_audior—   )r   r   rª   )rY   rZ   s   "€r"   r[   Ú$ResponseInputAudioParam.__annotate__Ù   s1   ø‡ ‚ Ù
Ù�Õõñ ñ ñ ™*Õ%Ñ%ò	 r!   r    Nr›   r_   s   @r"   r¯   r¯   Ù   rœ   r!   r¯   c                   ó,   a € ] tR t^àt o V 3R ltRtV tR# )ÚImageUrlc                ó6   <€ V ^8„  d   Qh/ S[ S[,          ;R&   # )rC   Úurlr¬   )rY   rZ   s   "€r"   r[   ÚImageUrl.__annotate__à   s   ø‡ ‚ Ù	‘#�Ñò r!   r    Nr›   r_   s   @r"   r´   r´   à   rœ   r!   r´   c                   ó,   a € ] tR t^ät o V 3R ltRtV tR# )ÚResponseImageUrlParamc                ó`   <€ V ^8„  d   Qh/ S[ S[R,          ,          ;R&   S[ S[,          ;R&   # )rC   r¤   r—   )r   r   r´   )rY   rZ   s   "€r"   r[   Ú"ResponseImageUrlParam.__annotate__ä   s1   ø‡ ‚ Ù
Ù�Õõñ ñ ñ ™Õ!Ñ!ò	 r!   r    Nr›   r_   s   @r"   r¹   r¹   ä   rœ   r!   r¹   c                   ó,   a € ] tR t^÷t o V 3R ltRtV tR# )ÚResponseOutputTextc                ó`   <€ V ^8„  d   Qh/ S[ S[,          ;R&   S[ S[R,          ,          ;R&   # )rC   r–   Úoutput_textr—   r™   )rY   rZ   s   "€r"   r[   ÚResponseOutputText.__annotate__÷   s.   ø‡ ‚ Ù
‘3�-Ññ á
Ù�Õõñ ò r!   r    Nr›   r_   s   @r"   r½   r½   ÷   rœ   r!   r½   c                   ó¤   a € ] tR tRt o ]! RRR7      t]! RRR7      t]! RRR7      t]! RRR7      t]! RR	R7      t	]! RR
R7      t
V 3R ltRtV tR# )ÚChatMessagei  .zRole of the message sender.r1   NzContent of the message.z6Thinking/reasoning content (when thinking is enabled).z!Tool calls made by the assistant.z2ID of the tool call this message is a response to.zName of the tool/function.c                óÜ   <€ V ^8„  d   Qh/ S[ R,          ;R&   S[S[RS[S[3,          ;R&   S[S[,          ;R&   S[S[S[,          ,          ;R&   S[S[,          ;R&   S[S[,          ;R&   # )	rC   ÚroleNÚcontentÚ	reasoningÚ
tool_callsÚtool_call_idÚname)rS   Ú	assistantÚsystemÚ	developerÚtool)r   r	   rV   Ú$ResponseInputMessageContentListParamÚ ResponseOutputMessageContentListr   r   r   )rY   rZ   s   "€r"   r[   ÚChatMessage.__annotate__  sŒ   ø‡ ‚ Ù
ÐDÕ
Eñ ñ ñ
 ÙØÙ,Ù(ð	*õñ ;ñ ñ ™�}ñ ñ ñ ™™c�Õ#ñ ñ ñ" ™3•-ñ ñ# ñ( ‘3�-ÑOò) r!   r    )r(   r)   r*   r+   r   rÄ   rÅ   rÆ   rÇ   rÈ   rÉ   r]   r.   r^   r_   s   @r"   rÂ   rÂ     st   ø‡ € ÙHMØØ1ôI€Dñ 	ˆdÐ 9Ô:ð ñ  %ØÐRô €Iñ ',ØÐ=ô'€Jñ #(ØÐNô#€Lñ   Ð2NÔO€D÷) ƒ r!   rÂ   c                   óL  a € ] tR tRt o Rt]! RRR7      t]! RRR7      t]! RRR7      t]! ]	R	R
7      t
]! ]RR7      t]! ]RR7      t]! ^ RR7      t]! RRR7      t]! RRR7      t]! RRR7      t]! RRR7      t]! RRR7      t]! RRR7      t]! RRR7      t]! RRR7      t]! RRR7      t]! RRR7      t]! RRR7      t]! RRR7      t]! RRR7      t]! RRR7      t]! RRR7      t]! RRR7      t]! RR R7      t ]! RR!R7      t!]! RR"R7      t"]! R#R$R7      t#V 3R% lt$R&t%V t&R# )'ÚOpenAIRequesti  z›
OpenAI-compatible request structure.
Using this structure : https://github.com/openai/openai-python/blob/main/src/openai/resources/responses/responses.py
.z$Input text or list of chat messages.r1   ú The model to use for generation.Nú The path to the adapter weights.ú%Maximum number of tokens to generate.©Údefault_factoryr2   úTemperature for sampling.úTop-p sampling.úTop-k sampling.ç        úMin-p sampling.úRepetition penalty.ú Repetition penalty context size.úPresence penalty.úPresence penalty context size.úFrequency penalty.úFrequency penalty context size.úLogit bias dict.úpOverride server thinking mode for this request. If omitted, the server default set by --enable-thinking is used.úMax thinking tokens.úThinking start token.úThinking end token.Fú.Whether to stream the response chunk by chunk.ú9OpenAI-compatible response_format for structured outputs.z(Responses API text format configuration.z0System/developer instructions for this response.zFID of a previous response whose input/output items should be included.zResponses API tool definitions.zTool choice policy.Tz3Whether to store this response for later retrieval.c                óÄ  <€ V ^8„  d   Qh/ S[ S[S[S[,          3,          ;R&   S[;R&   S[S[,          ;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[S[,          ;R	&   S[S[,          ;R
&   S[S[,          ;R&   S[S[,          ;R&   S[S[,          ;R&   S[S[,          ;R&   S[S[,          ;R&   S[S[,          ;R&   S[S[,          ;R&   S[S[,          ;R&   S[S[,          ;R&   S[;R&   S[S[,          ;R&   S[S[,          ;R&   S[S[,          ;R&   S[S[,          ;R&   S[S[S[,          ,          ;R&   S[S[,          ;R&   S[S[,          ;R&   # )rC   ÚinputrE   Úadapter_pathÚmax_output_tokensÚtemperatureÚtop_pÚtop_kÚmin_pÚrepetition_penaltyÚrepetition_context_sizeÚpresence_penaltyÚpresence_context_sizeÚfrequency_penaltyÚfrequency_context_sizeÚ
logit_biasÚenable_thinkingÚthinking_budgetÚthinking_start_tokenÚthinking_end_tokenÚstreamrO   r–   ÚinstructionsÚprevious_response_idÚtoolsÚtool_choiceÚstore)r	   rV   r   r   r   r   rW   rX   )rY   rZ   s   "€r"   r[   ÚOpenAIRequest.__annotate__  sþ  ø‡ ‚ ñ ‘‘d™3•i�Õ ñ ñ ñ ÑKñ ñ ™3•-ñ ñ ñ ñ ñ ñ" ñ ñ# ñ( ÑFñ) ñ* Ñ8ñ+ ñ, Ñ<ñ- ñ. !¡�ÑXñ/ ñ0 &¡c�]ñ ñ1 ñ6 ™u•oÑTñ7 ñ8 $¡C�=ñ ñ9 ñ>  ¡•ÑVñ? ñ@ %¡S�Mñ ñA ñF ™•ÑKñG ñH ™d•^ñ ñI ñV ™c•]ÑTñW ñX #¡3�-ñ ñY ñ^ !¡�ÑVñ_ ñ` ñ ña ñf ™c•]ñ ñg ñl ‘3�-ñ ñm ñr ™3•-ñ ñs ñx #¡3�-ñ ñy ñ@ ‘D™•IÕñ ñA ñF ™#•ÑOñG ñH ‘D�>ñ òI r!   r    )'r(   r)   r*   r+   r,   r   rë   rE   rì   r#   rí   r   rî   r   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   rý   rO   r–   rþ   rÿ   r   r  r  r]   r.   r^   r_   s   @r"   rÒ   rÒ     sÍ  ø‡ € ññ
 $)ØÐ?ô$€Eñ �sÐ(JÔK€EÙ"'ØÐ<ô#€Lñ #Ø-Ø;ôÐñ ØÐ)Dô€Kñ ˜Ð4EÔF€EÙ�qÐ&7Ô8€EÙ˜Ð*;Ô<€EÙ*/°ÐBWÔ*XÐÙ-2ØÐ<ô.Ðñ ).¨dÐ@SÔ(TÐÙ+0ØÐ:ô,Ðñ */¨tÐAUÔ)VÐÙ,1ØÐ;ô-Ðñ !& dÐ8JÔ K€JÙ&+Øð?ô'€Oñ &+¨4Ð=SÔ%T€OÙ*/ØÐ1ô+Ðñ ).¨dÐ@UÔ(VÐÙØÐKô€Fñ &+ØÐUô&€Oñ  ØÐDô€Dñ #(ØÐLô#€Lñ +0ØØ\ô+Ðñ "'ØÐ;ô"€Eñ "' tÐ9NÔ!O€KÙ!ØÐOô€E÷I ƒ r!   rÒ   c                   ó0   a € ] tR tRt o ^ tV 3R ltRtV tR# )ÚPromptTokensDetailsia  c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # )rC   Úcached_tokens©r   )rY   rZ   s   "€r"   r[   Ú PromptTokensDetails.__annotate__a  s   ø‡ ‚ ÙÑò r!   r    N)r(   r)   r*   r+   r  r]   r.   r^   r_   s   @r"   r  r  a  s   ø‡ € Ø€M÷ ƒ r!   r  c                   ó^   a € ] tR tRt o Rt]! ]R7      t]V 3R lR l4       t	V 3R lt
RtV tR# )	ÚOpenAIUsageie  z\Token usage details including input tokens, output tokens, breakdown, and total tokens used.©r×   c                ó.   <€ V ^8„  d   QhRRRS[ RS[ RR/# )rC   Úmetricsr   Úinput_tokensÚoutput_tokensÚreturnr  r  )rY   rZ   s   "€r"   r[   ÚOpenAIUsage.__annotate__p  s-   ø€ ÷ 
ñ 
Ø)ð
Ù9<ð
ÙMPð
à	ñ
r!   c                óN   € V ! V\        VP                  R 7      VW#,           R7      # )©r  )r  Úinput_tokens_detailsr  Útotal_tokens©r  r  )rƒ   r  r  r  s   &&&&r"   Úfrom_metricsÚOpenAIUsage.from_metricso  s0   € ñ Ø%Ü!4Ø%×3Ñ3ô"ð (Ø%Õ5ô
ð 	
r!   c                óJ   <€ V ^8„  d   Qh/ S[ ;R&   S[;R&   S[ ;R&   S[ ;R&   # )rC   r  r  r  r  ©r   r  )rY   rZ   s   "€r"   r[   r  e  s;   ø‡ ‚ ñ Ññ ñ .ñ ñ	 ñ Ññ ñ Ñò r!   r    N)r(   r)   r*   r+   r,   r   r  r  rŠ   r  r]   r.   r^   r_   s   @r"   r  r  e  s3   ø‡ € Ùfñ 16Ø+ô1Ðð ÷
ó ð
÷ ƒ r!   r  c                   ól   a € ] tR tRt o RtRt]V 3R lR l4       t]V 3R lR l4       t	V 3R lt
R	tV tR
# )ÚGenerationTimingsi  zPer-request timing breakdown.rÛ   c                óF   <€ V ^8„  d   QhRS[ S[,          RS[S[,          /# )rC   Útoken_timesr  )r   rW   r   )rY   rZ   s   "€r"   r[   ÚGenerationTimings.__annotate__Ž  s'   ø€ ÷ Iñ I¡T©%¥[ð I±X¹eµ_ñ Ir!   c                ó˜   € \        V 4      ^8  d   R# V R,          V ^ ,          ,
          pV^ 8”  d   \        V 4      ^,
          V,          # R# )rC   Néÿÿÿÿ)Úlen)r  Úelapseds   & r"   Ú_derive_gen_tpsÚ!GenerationTimings._derive_gen_tps�  sD   € äˆ{Ó˜aÔÙØ˜b•/ K°¥NÕ2ˆØ3:¸Q´;”�KÓ  1Õ$¨Õ/ÐHÀDÐHr!   c                ó.   <€ V ^8„  d   QhRRRS[ RS[ RR/# )rC   r  r   Úprompt_tokensr  r  r  r  )rY   rZ   s   "€r"   r[   r   •  s3   ø€ ÷ 
ñ 
à$ð
ñ ð
ñ ð	
ð
 
ñ
r!   c                óZ  € VP                   ;'       g    V P                  VP                  4      pVP                  p\	        ^ \        V4      \        V4      ,
          4      pVP                  '       d   W!P                  ,          MRpVR,          pV'       d   W4,          R,          MRp	T ! T\        V4      \        V4      TV'       d	   W†,          MRV'       d	   Wg,          MRT	V'       d	   W“,          MR\        T;'       g    R4      \        VP                  ;'       g    R4      R7
      # )r   rÛ   g     @�@)
Úprompt_nÚcache_nÚpredicted_nÚ	prompt_msÚprompt_per_token_msÚprompt_per_secondÚpredicted_msÚpredicted_per_token_msÚpredicted_per_secondÚpeak_memory)	Úgeneration_tpsr%  r  r  Úmaxr   Ú
prompt_tpsrW   r3  )
rƒ   r  r(  r  r4  r  r*  Úprompt_sr-  r0  s
   &&&&      r"   r  ÚGenerationTimings.from_metrics”  sý   € ð !×/Ñ/÷ 
ð 
°3×3FÑ3FØ×Ñó4
ˆð  ×-Ñ-ˆÜ�qœ#˜mÓ,¬s°=Ó/AÕAÓBˆØ9@×9K×9KÐ9K�=×#5Ñ#5Ö5ÐQTˆØ˜vÕ%ˆ	ç7EˆMÕ*¨VÖ3È3ð 	ñ ØÜ˜Ó&Ü˜MÓ*Øß:B Ö!5Èß7?˜xÖ2ÀSØ%ç0=�Ö,À3ä!& ~×'<Ð'<¸Ó!=Ü˜g×1Ñ1×8Ð8°SÓ9ô
ð 	
r!   c                ó’   <€ V ^8„  d   Qh/ S[ ;R&   S[ ;R&   S[ ;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R	&   S[;R
&   # )rC   r*  r+  r,  r-  r.  r/  r0  r1  r2  r3  )r   rW   )rY   rZ   s   "€r"   r[   r     s…   ø‡ ‚ ñ �Mñ ñ �Lñ	 ñ
 Ññ ñ Ññ ñ Ññ ñ Ññ ñ Ññ ñ "Ñ!ñ ñ  Ññ ñ Ñò r!   r    N)r(   r)   r*   r+   r,   r3  Ústaticmethodr%  rŠ   r  r]   r.   r^   r_   s   @r"   r  r    s>   ø‡ € Ù'ð €Kà÷Ió ðIð ÷
ó ð
÷- ƒ r!   r  c                   ó@   a € ] tR tRt o RtRtRtRtRtV 3R lt	Rt
V tR# )ÚOpenAIErrorObjectiµ  zBError object returned when the model fails to generate a Response.Nc                óŠ   <€ V ^8„  d   Qh/ S[ S[,          ;R&   S[ S[,          ;R&   S[ S[,          ;R&   S[ S[,          ;R&   # )rC   ÚcodeÚmessageÚparamr—   )r   rV   )rY   rZ   s   "€r"   r[   ÚOpenAIErrorObject.__annotate__µ  sI   ø‡ ‚ ñ ‘3�-Ññ ñ ‘c�]Ñ!ñ	 ñ
 ‘C�=Ññ ñ ‘3�-Ñò r!   r    )r(   r)   r*   r+   r,   r>  r?  r@  r—   r]   r.   r^   r_   s   @r"   r<  r<  µ  s#   ø‡ € ÙLà€DØ!€GØ€EØ€D÷ ƒ r!   r<  c                   óˆ  a € ] tR tRt o ]! RRR7      t]! RRR7      t]! RRR7      t]! RRR7      t]! RR	R7      t	]! RR
R7      t
]! RRR7      t]! RRR7      t]! RRR7      t]! RRR7      t]! R^ ^RR7      t]! R^ ^RR7      t]! RRR7      t]! RRR7      t]! RRR7      t]! RRR7      t]! RRR7      tV 3R ltRtV tR# )ÚOpenAIResponsei¾  .z#Unique identifier for this Responser1   z9The object type of this resource - always set to responsez=Unix timestamp (in seconds) of when this Response was createdz%The status of the response generationNzDAn error object returned when the model fails to generate a ResponsezPInserts a system (or developer) message as the first item in the model's contextzLAn upper bound for the number of tokens that can be generated for a responsez&Model ID used to generate the responsez0An array of content items generated by the modelz?SDK-only convenience property containing aggregated text outputz$Sampling temperature between 0 and 2r5   z!Nucleus sampling probability massÚdisabledzThe truncation strategy to usezToken usage detailsz.A unique identifier representing your end-userz3ID of the previous response used for this response.Tz4Whether this response is stored for later retrieval.c                óÜ  <€ V ^8„  d   Qh/ S[ ;R&   S[R,          ;R&   S[;R&   S[R,          ;R&   S[S[,          ;R&   S[S[ ,          ;R&   S[S[,          ;R&   S[ ;R	&   S[S[S[S[3,          ,          ;R
&   S[S[ ,          ;R&   S[S[	,          ;R&   S[S[	,          ;R&   S[S[R,          S[ 3,          ;R&   S[
;R&   S[S[ ,          ;R&   S[S[ ,          ;R&   S[S[,          ;R&   # )rC   ÚidÚresponseÚobjectÚ
created_atÚstatusÚerrorrþ   rí   rE   Úoutputr¿   rî   rï   Ú
truncationÚusagerS   rÿ   r  )Ú	completedÚfailedÚin_progressÚ
incomplete)r    rD  )rV   r   r   r   r<  r   r	   rÂ   r   rW   r  rX   )rY   rZ   s   "€r"   r[   ÚOpenAIResponse.__annotate__¾  sX  ø‡ ‚ ÙÑKñ á�JÕñ ñ ñ
 ñ ñ ñ ÐFÕGñ ñ ñ Ñ%Õ&ñ ñ ñ ™3•-ñ ñ ñ&  ¡•}ñ ñ' ñ. ÑQñ/ ñ0 ‘‘{¡CÐ'Õ(Õ)ñ ñ1 ñ6 ™#•ñ ñ7 ñ> ™%•ñ ñ? ñD ‘E�?ñ ñE ñJ ‘gÐ0Õ1±3Ð6Õ7ñ ñK ñP ñ ñQ ñV ‘3�-ñ ñW ñ\ #¡3�-ñ ñ] ñb ‘D�>ñ òc r!   r    )r(   r)   r*   r+   r   rF  rH  rI  rJ  rK  rþ   rí   rE   rL  r¿   rî   rï   rM  rN  rS   rÿ   r  r]   r.   r^   r_   s   @r"   rC  rC  ¾  sA  ø‡ € Ù�CÐ%JÔK€BÙ"'ØÐTô#€Fñ ØÐXô€Jñ KPØÐ@ôK€Fñ */ØØZô*€Eñ #(ØØfô#€Lñ (-ØØbô(Ðñ �sÐ(PÔQ€EÙ,1ØÐKô-€Fñ "'ØØUô"€Kñ $)Ø��qÐ&Lô$€Kñ #Ø��qÐ&Iô€Eñ ;@ØÐ @ô;€Jñ ØÐ.ô€Eñ  ØÐJô€Dñ +0ØÐOô+Ðñ "ØÐPô€E÷c ƒ r!   rC  c                   ó,   a € ] tR tRt o V 3R ltRtV tR# )ÚBaseStreamEventiô  c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # )rC   r—   )rV   )rY   rZ   s   "€r"   r[   ÚBaseStreamEvent.__annotate__ô  s   ø‡ ‚ Ù
�Iò r!   r    Nr›   r_   s   @r"   rU  rU  ô  rœ   r!   rU  c                   ó0   a € ] tR tRt o . tV 3R ltRtV tR# )ÚContentPartOutputTextiø  c                ó\   <€ V ^8„  d   Qh/ S[ R,          ;R&   S[;R&   S[S[,          ;R&   # )rC   r¿   r—   r–   Úannotations)r   rV   r   )rY   rZ   s   "€r"   r[   Ú"ContentPartOutputText.__annotate__ø  s0   ø‡ ‚ Ù
�-Õ
 Ñ ñ á
�Iñ ñ ‘c•Ñò r!   r    N)r(   r)   r*   r+   r[  r]   r.   r^   r_   s   @r"   rY  rY  ø  s   ø‡ € ð  €K÷ ƒ r!   rY  c                   ó0   a € ] tR tRt o . tV 3R ltRtV tR# )ÚMessageItemiþ  c                ó‚   <€ V ^8„  d   Qh/ S[ ;R&   S[R,          ;R&   S[R,          ;R&   S[ ;R&   S[S[,          ;R&   # )rC   rF  r?  r—   rJ  rÄ   rÅ   )rQ  rO  )rV   r   r   rY  )rY   rZ   s   "€r"   r[   ÚMessageItem.__annotate__þ  sQ   ø‡ ‚ Ù�Gñ á
�)Õ
Ññ ñ Ð.Õ/Ñ/ñ ñ �Iñ	 ñ
 Ñ'Õ(Ñ-ò r!   r    N©r(   r)   r*   r+   rÅ   r]   r.   r^   r_   s   @r"   r^  r^  þ  s   ø‡ € ð
 ,.€G÷ ƒ r!   r^  c                   ó,   a € ] tR tRt o V 3R ltRtV tR# )ÚResponseCreatedEventi  c                ó@   <€ V ^8„  d   Qh/ S[ R,          ;R&   S[;R&   # )rC   zresponse.createdr—   rG  ©r   rC  )rY   rZ   s   "€r"   r[   Ú!ResponseCreatedEvent.__annotate__  s!   ø‡ ‚ Ù
Ð$Õ
%Ñ%ñ áÑò r!   r    Nr›   r_   s   @r"   rc  rc    rœ   r!   rc  c                   ó,   a € ] tR tRt o V 3R ltRtV tR# )ÚResponseInProgressEventi  c                ó@   <€ V ^8„  d   Qh/ S[ R,          ;R&   S[;R&   # )rC   zresponse.in_progressr—   rG  re  )rY   rZ   s   "€r"   r[   Ú$ResponseInProgressEvent.__annotate__  s!   ø‡ ‚ Ù
Ð(Õ
)Ñ)ñ áÑò r!   r    Nr›   r_   s   @r"   rh  rh    rœ   r!   rh  c                   ó,   a € ] tR tRt o V 3R ltRtV tR# )ÚResponseOutputItemAddedEventi  c                óL   <€ V ^8„  d   Qh/ S[ R,          ;R&   S[;R&   S[;R&   # )rC   zresponse.output_item.addedr—   Úoutput_indexr}   ©r   r   r   )rY   rZ   s   "€r"   r[   Ú)ResponseOutputItemAddedEvent.__annotate__  s-   ø‡ ‚ Ù
Ð.Õ
/Ñ/ñ áÑñ ñ �Iò r!   r    Nr›   r_   s   @r"   rl  rl    rœ   r!   rl  c                   ó,   a € ] tR tRt o V 3R ltRtV tR# )ÚResponseContentPartAddedEventi  c                ód   <€ V ^8„  d   Qh/ S[ R,          ;R&   S[;R&   S[;R&   S[;R&   S[;R&   # )rC   zresponse.content_part.addedr—   Úitem_idrn  Úcontent_indexÚpart©r   rV   r   rY  )rY   rZ   s   "€r"   r[   Ú*ResponseContentPartAddedEvent.__annotate__  sG   ø‡ ‚ Ù
Ð/Õ
0Ñ0ñ á�Lñ ñ Ññ ñ Ññ	 ñ
  Ñò r!   r    Nr›   r_   s   @r"   rr  rr    rœ   r!   rr  c                   ó,   a € ] tR tRt o V 3R ltRtV tR# )ÚResponseOutputTextDeltaEventi  c                ód   <€ V ^8„  d   Qh/ S[ R,          ;R&   S[;R&   S[;R&   S[;R&   S[;R&   # )rC   zresponse.output_text.deltar—   rt  rn  ru  Údelta©r   rV   r   )rY   rZ   s   "€r"   r[   Ú)ResponseOutputTextDeltaEvent.__annotate__  sF   ø‡ ‚ Ù
Ð.Õ
/Ñ/ñ á�Lñ ñ Ññ ñ Ññ	 ñ
 �Jò r!   r    Nr›   r_   s   @r"   rz  rz    rœ   r!   rz  c                   ó,   a € ] tR tRt o V 3R ltRtV tR# )ÚResponseOutputTextDoneEventi&  c                ód   <€ V ^8„  d   Qh/ S[ R,          ;R&   S[;R&   S[;R&   S[;R&   S[;R&   # )rC   zresponse.output_text.doner—   rt  rn  ru  r–   r}  )rY   rZ   s   "€r"   r[   Ú(ResponseOutputTextDoneEvent.__annotate__&  sF   ø‡ ‚ Ù
Ð-Õ
.Ñ.ñ á�Lñ ñ Ññ ñ Ññ	 ñ
 �Iò r!   r    Nr›   r_   s   @r"   r€  r€  &  rœ   r!   r€  c                   ó,   a € ] tR tRt o V 3R ltRtV tR# )ÚResponseContentPartDoneEventi.  c                ód   <€ V ^8„  d   Qh/ S[ R,          ;R&   S[;R&   S[;R&   S[;R&   S[;R&   # )rC   zresponse.content_part.doner—   rt  rn  ru  rv  rw  )rY   rZ   s   "€r"   r[   Ú)ResponseContentPartDoneEvent.__annotate__.  sG   ø‡ ‚ Ù
Ð.Õ
/Ñ/ñ á�Lñ ñ Ññ ñ Ññ	 ñ
  Ñò r!   r    Nr›   r_   s   @r"   r„  r„  .  rœ   r!   r„  c                   ó,   a € ] tR tRt o V 3R ltRtV tR# )ÚResponseOutputItemDoneEventi6  c                óL   <€ V ^8„  d   Qh/ S[ R,          ;R&   S[;R&   S[;R&   # )rC   zresponse.output_item.doner—   rn  r}   ro  )rY   rZ   s   "€r"   r[   Ú(ResponseOutputItemDoneEvent.__annotate__6  s-   ø‡ ‚ Ù
Ð-Õ
.Ñ.ñ áÑñ ñ �Iò r!   r    Nr›   r_   s   @r"   rˆ  rˆ  6  rœ   r!   rˆ  c                   ó,   a € ] tR tRt o V 3R ltRtV tR# )ÚResponseCompletedEventi<  c                ó@   <€ V ^8„  d   Qh/ S[ R,          ;R&   S[;R&   # )rC   zresponse.completedr—   rG  re  )rY   rZ   s   "€r"   r[   Ú#ResponseCompletedEvent.__annotate__<  s!   ø‡ ‚ Ù
Ð&Õ
'Ñ'ñ áÑò r!   r    Nr›   r_   s   @r"   rŒ  rŒ  <  rœ   r!   rŒ  c                   ó"  a € ] tR tRt o ]! RRR7      t]! RRR7      t]! ]RR7      t]! ]	R	R7      t
]! ]R
R7      t]! ^ RR7      t]! RRR7      t]! ]RR7      t]! RRR7      t]! RRR7      t]! RRR7      t]! RRR7      t]! RRR7      t]! RRR7      t]! RRR7      t]! RRR7      t]! RRR7      t]! RRR7      t]! RRR7      t]! RRR7      t]! RRR7      t]! RRR7      t]! RRR7      t] ! RRR 7      ]!R! 4       4       t"V 3R" lt#R#t$V t%R# )$Ú
VLMRequestiQ  .z;The path to the local model directory or Hugging Face repo.r1   NrÔ   rÕ   rÖ   rØ   rÙ   rÚ   rÛ   rÜ   zSeed for random generation.rÝ   rÞ   rß   rà   rá   râ   rã   rä   rå   ræ   rç   z/Return log-probabilities for each output token.z³Number of most-likely tokens to return at each position (0-20). Requires logprobs=true. The server-side cap is set by the TOP_LOGPROBS_K env var; values above the cap are clamped.zVResize shape for the image. Provide one integer for square or two for (height, width).ré   Úresize_shapeÚbefore)Úmodec                ó   € \        V4      # rz   )r   )rƒ   r„   s   &&r"   Únormalize_resize_shape_fieldÚ'VLMRequest.normalize_resize_shape_field‘  s   € ô & eÓ,Ð,r!   c                ó.  <€ V ^8„  d   Qh/ S[ ;R&   S[S[ ,          ;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[S[,          ;R	&   S[S[,          ;R
&   S[S[,          ;R&   S[S[,          ;R&   S[S[,          ;R&   S[S[,          ;R&   S[S[,          ;R&   S[S[,          ;R&   S[S[,          ;R&   S[S[ ,          ;R&   S[S[ ,          ;R&   S[S[,          ;R&   S[S[,          ;R&   S[S[,          ;R&   S[S[,          ;R&   # )rC   rE   rì   Ú
max_tokensrî   rï   rð   rñ   rK   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   ÚlogprobsÚtop_logprobsr‘  rO   )rV   r   r   rW   r   rX   ÚResizeShapeInput)rY   rZ   s   "€r"   r[   ÚVLMRequest.__annotate__Q  sš  ø‡ ‚ Ùñ ñ ñ
 ™3•-ñ ñ ñ ñ ñ ñ ñ ñ ñ ÑFñ ñ  Ñ8ñ! ñ" Ñ<ñ# ñ$ ÑNñ% ñ& !¡�ÑXñ' ñ( &¡c�]ñ ñ) ñ. ™u•oÑTñ/ ñ0 $¡C�=ñ ñ1 ñ6  ¡•ÑVñ7 ñ8 %¡S�Mñ ñ9 ñ> ™•ÑKñ? ñ@ ™d•^ñ ñA ñN ™c•]ÑTñO ñP #¡3�-ñ ñQ ñV !¡�ÑVñW ñX ‘t�nñ ñY ñ` ™3•-ñ ña ñp Ñ+Õ,ñ ñq ñx ™c•]ñ òy r!   r    )&r(   r)   r*   r+   r   rE   rì   r#   r˜  r   rî   r   rï   rð   rñ   r   rK   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   r™  rš  r‘  rO   r   rŠ   r•  r]   r.   r^   r_   s   @r"   r�  r�  Q  s§  ø‡ € ÙØØQô€Eñ #(ØÐ<ô#€Lñ Ø-Ø;ô€Jñ ØÐ)Dô€Kñ ˜Ð4EÔF€EÙ�qÐ&7Ô8€EÙ˜Ð*;Ô<€EÙ�lÐ0MÔN€DÙ*/°ÐBWÔ*XÐÙ-2ØÐ<ô.Ðñ ).¨dÐ@SÔ(TÐÙ+0ØÐ:ô,Ðñ */¨tÐAUÔ)VÐÙ,1ØÐ;ô-Ðñ !& dÐ8JÔ K€JÙ&+Øð?ô'€Oñ &+¨4Ð=SÔ%T€OÙ*/ØÐ1ô+Ðñ ).¨dÐ@UÔ(VÐÙ$ØØEô €Hñ #(ØðLô#€Lñ 05ØØlô0€Lñ &+ØÐUô&€Oñ �^¨(Ô3Øñ-ó ó 4ð-÷E ƒ r!   r�  c                   óD   a € ] tR tRt o Rt]! RRR7      tV 3R ltRtV t	R# )	ÚGenerationRequesti—  zQ
Inherits from VLMRequest and adds additional fields for the generation request.
Frè   r1   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # )rC   rý   ©rX   )rY   rZ   s   "€r"   r[   ÚGenerationRequest.__annotate__—  s   ø‡ ‚ ñ
 ñ ò r!   r    N)
r(   r)   r*   r+   r,   r   rý   r]   r.   r^   r_   s   @r"   rž  rž  —  s#   ø‡ € ññ ØÐKô€F÷ ƒ r!   rž  c                   ój   a € ] tR tRt o Rt^ t^ t^ t]! ]	R7      t
]V 3R lR l4       tV 3R ltRtV tR# )	Ú
UsageStatsi¡  z¼OpenAI-compatible usage statistics for chat completions. Throughput and
memory metrics live in `GenerationTimings` (sibling `timings` field on the
response) to keep this object spec-clean.r  c                ó.   <€ V ^8„  d   QhRRRS[ RS[ RR/# )rC   r  r   r(  Úcompletion_tokensr  r£  r  )rY   rZ   s   "€r"   r[   ÚUsageStats.__annotate__®  s-   ø€ ÷ 

ñ 

Ø)ð

Ù:=ð

ÙRUð

à	ñ

r!   c           	     óN   € V ! VVW#,           \        VP                  R 7      R7      # )r  )r(  r¥  r  Úprompt_tokens_detailsr  )rƒ   r  r(  r¥  s   &&&&r"   r  ÚUsageStats.from_metrics­  s.   € ñ Ø'Ø/Ø&Õ:Ü"5Ø%×3Ñ3ô#ô	
ð 	
r!   c                óJ   <€ V ^8„  d   Qh/ S[ ;R&   S[ ;R&   S[ ;R&   S[;R&   # )rC   r(  r¥  r  r¨  r  )rY   rZ   s   "€r"   r[   r¦  ¡  s;   ø‡ ‚ ñ
 Ññ ñ Ññ ñ Ññ ñ /ñ ò r!   r    N)r(   r)   r*   r+   r,   r(  r¥  r  r   r  r¨  rŠ   r  r]   r.   r^   r_   s   @r"   r£  r£  ¡  sE   ø‡ € ñ1ð €MØÐØ€LÙ16Ø+ô2Ðð ÷

ó ð

÷ ƒ r!   r£  c                   ó0   a € ] tR tRt o RtV 3R ltRtV tR# )ÚStreamOptionsi»  Fc                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # )rC   Úinclude_usager   )rY   rZ   s   "€r"   r[   ÚStreamOptions.__annotate__»  s   ø‡ ‚ ÙÑò r!   r    N)r(   r)   r*   r+   r®  r]   r.   r^   r_   s   @r"   r¬  r¬  »  s   ø‡ € Ø€M÷ ƒ r!   r¬  c                   ó0   a € ] tR tRt o RtV 3R ltRtV tR# )ÚChatRequesti¿  Nc                óR   <€ V ^8„  d   Qh/ S[ S[,          ;R&   S[S[,          ;R&   # )rC   ÚmessagesÚstream_options)r   rÂ   r   r¬  )rY   rZ   s   "€r"   r[   ÚChatRequest.__annotate__¿  s%   ø‡ ‚ Ù‘;ÕÑñ á™]Õ+Ñ2ò r!   r    )r(   r)   r*   r+   r´  r]   r.   r^   r_   s   @r"   r±  r±  ¿  s   ø‡ € à.2€N÷ ƒ r!   r±  c                   ó0   a € ] tR tRt o RtV 3R ltRtV tR# )Ú
TopLogprobiÄ  Nc                ó^   <€ V ^8„  d   Qh/ S[ ;R&   S[;R&   S[S[S[,          ,          ;R&   # )rC   ÚtokenÚlogprobÚbytes)rV   rW   r   r   r   )rY   rZ   s   "€r"   r[   ÚTopLogprob.__annotate__Ä  s/   ø‡ ‚ Ù�Jñ á�Nñ ñ ‘D™•IÕÑ%ò r!   r    )r(   r)   r*   r+   r»  r]   r.   r^   r_   s   @r"   r·  r·  Ä  s   ø‡ € ð "&€E÷ ƒ r!   r·  c                   ó4   a € ] tR tRt o Rt. tV 3R ltRtV tR# )ÚChatLogprobContentiÊ  Nc                óz   <€ V ^8„  d   Qh/ S[ ;R&   S[;R&   S[S[S[,          ,          ;R&   S[S[,          ;R&   # )rC   r¹  rº  r»  rš  )rV   rW   r   r   r   r·  )rY   rZ   s   "€r"   r[   ÚChatLogprobContent.__annotate__Ê  sA   ø‡ ‚ Ù�Jñ á�Nñ ñ ‘D™•IÕÑ%ñ ñ ‘zÕ"Ñ'ò	 r!   r    )	r(   r)   r*   r+   r»  rš  r]   r.   r^   r_   s   @r"   r¾  r¾  Ê  s   ø‡ € ð "&€EØ%'€L÷	 ƒ r!   r¾  c                   ó0   a € ] tR tRt o . tV 3R ltRtV tR# )ÚChatLogprobsiÑ  c                ó6   <€ V ^8„  d   Qh/ S[ S[,          ;R&   # )rC   rÅ   )r   r¾  )rY   rZ   s   "€r"   r[   ÚChatLogprobs.__annotate__Ñ  s   ø‡ ‚ ÙÑ$Õ%Ñ*ò r!   r    Nra  r_   s   @r"   rÂ  rÂ  Ñ  s   ø‡ € Ø(*€G÷ ƒ r!   rÂ  c                   ó8   a € ] tR tRt o ^ tRtRtV 3R ltRtV t	R# )Ú
ChatChoiceiÕ  ÚstopNc                óZ   <€ V ^8„  d   Qh/ S[ ;R&   S[;R&   S[;R&   S[S[,          ;R&   # )rC   ÚindexÚfinish_reasonr?  r™  )r   rV   rÂ   r   rÂ  )rY   rZ   s   "€r"   r[   ÚChatChoice.__annotate__Õ  s9   ø‡ ‚ Ù�Nñ áÑñ ñ Ññ ñ ‘|Õ$Ñ+ò	 r!   r    ©
r(   r)   r*   r+   rÉ  rÊ  r™  r]   r.   r^   r_   s   @r"   rÆ  rÆ  Õ  s   ø‡ € Ø€EØ€Mà'+€H÷	 ƒ r!   rÆ  c                   óH   a € ] tR tRt o RtRt^ tRt. tRt	Rt
V 3R ltRtV tR# )ÚChatResponseiÜ  r3   zchat.completionNc                óž   <€ V ^8„  d   Qh/ S[ ;R&   S[ ;R&   S[;R&   S[ ;R&   S[S[,          ;R&   S[S[,          ;R&   S[S[,          ;R&   # ©rC   rF  rH  rp   rE   ÚchoicesrN  Útimings)rV   r   r   rÆ  r   r£  r  )rY   rZ   s   "€r"   r[   ÚChatResponse.__annotate__Ü  sj   ø‡ ‚ Ù�Lñ áÑ#ñ ñ Ññ ñ �Oñ	 ñ
 ‘*ÕÑ"ñ ñ ‘JÕÑ&ñ ñ Ñ'Õ(Ñ/ò r!   r    ©r(   r)   r*   r+   rF  rH  rp   rE   rÑ  rN  rÒ  r]   r.   r^   r_   s   @r"   rÎ  rÎ  Ü  s/   ø‡ € Ø€BØ#€FØ€GØ€EØ "€GØ"&€EØ+/€G÷ ƒ r!   rÎ  c                   ó8   a € ] tR tRt o ^ tRtRtV 3R ltRtV t	R# )ÚChatStreamChoiceiæ  Nc                ój   <€ V ^8„  d   Qh/ S[ ;R&   S[S[,          ;R&   S[;R&   S[S[,          ;R&   # )rC   rÉ  rÊ  r|  r™  )r   r   rV   rÂ   rÂ  )rY   rZ   s   "€r"   r[   ÚChatStreamChoice.__annotate__æ  s=   ø‡ ‚ Ù�Nñ á™C•=Ñ'ñ ñ Ññ ñ ‘|Õ$Ñ+ò	 r!   r    rÌ  r_   s   @r"   rÖ  rÖ  æ  s   ø‡ € Ø€EØ#'€Mà'+€H÷	 ƒ r!   rÖ  c                   óH   a € ] tR tRt o RtRt^ tRt. tRt	Rt
V 3R ltRtV tR# )ÚChatStreamChunkií  r3   zchat.completion.chunkNc                óž   <€ V ^8„  d   Qh/ S[ ;R&   S[ ;R&   S[;R&   S[ ;R&   S[S[,          ;R&   S[S[,          ;R&   S[S[,          ;R&   # rÐ  )rV   r   r   rÖ  r   r£  r  )rY   rZ   s   "€r"   r[   ÚChatStreamChunk.__annotate__í  sk   ø‡ ‚ Ù�Lñ áÑ)ñ ñ Ññ ñ �Oñ	 ñ
 Ñ"Õ#Ñ(ñ ñ ‘JÕÑ&ñ ñ Ñ'Õ(Ñ/ò r!   r    rÔ  r_   s   @r"   rÚ  rÚ  í  s/   ø‡ € Ø€BØ)€FØ€GØ€EØ&(€GØ"&€EØ+/€G÷ ƒ r!   rÚ  c                   ó,   a € ] tR tRt o V 3R ltRtV tR# )ÚAnthropicMessageParamiú  c                óf   <€ V ^8„  d   Qh/ S[ R,          ;R&   S[S[S[S[,          3,          ;R&   # )rC   rÄ   rÅ   )rS   rÊ   )r   r	   rV   r   r   )rY   rZ   s   "€r"   r[   Ú"AnthropicMessageParam.__annotate__ú  s.   ø‡ ‚ Ù
Ð%Õ
&Ñ&ñ á‘3™™S�	�>Õ"Ñ"ò r!   r    Nr›   r_   s   @r"   rÞ  rÞ  ú  rœ   r!   rÞ  c                   óT  a € ] tR tRt o ]! RRR7      t]! ]RR7      tRtRt	]! ]
R	R7      t]! ]R
R7      t]! ^ RR7      tRtRtRtRtRtRtRt]! RRR7      t]! RRR7      t]! RRR7      t]! RRR7      t]! RRR7      t]! RRR7      t]! RRR7      tRtRtRtRt Rt!V 3R lt"Rt#V t$R# )ÚAnthropicRequestiÿ  .rÓ   r1   rÕ   rÖ   NFrØ   rÙ   rÚ   rÝ   rÞ   rß   rà   rá   râ   rã   c                óô  <€ V ^8„  d   Qh/ S[ ;R&   S[S[,          ;R&   S[;R&   S[S[S[ S[S[,          3,          ,          ;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[S[S[ ,          ,          ;R	&   S[S[S[,          ,          ;R
&   S[S[,          ;R&   S[S[,          ;R&   S[S[,          ;R&   S[S[,          ;R&   S[S[ ,          ;R&   S[S[,          ;R&   S[S[,          ;R&   S[S[,          ;R&   S[S[,          ;R&   S[S[,          ;R&   S[S[,          ;R&   S[S[,          ;R&   S[S[,          ;R&   S[S[,          ;R&   S[S[ ,          ;R&   S[S[ ,          ;R&   S[S[,          ;R&   # )rC   rE   r³  r˜  rË   rý   rî   rï   rð   Ústop_sequencesr   r  ÚmetadataÚthinkingÚoutput_configrì   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   rO   )	rV   r   rÞ  r   r   r	   r   rX   rW   )rY   rZ   s   "€r"   r[   ÚAnthropicRequest.__annotate__ÿ  sä  ø‡ ‚ ÙÑKñ áÑ(Õ)Ñ)ñ ñ ñ ñ ñ ‘U™3¡¡S¥	˜>Õ*Õ+Ñ2ñ ñ Ññ ñ ñ ñ ñ ÑFñ ñ Ñ8ñ ñ ™T¡#�YÕ'Ñ.ñ ñ ‘D™•IÕÑ%ñ ñ  ™#•Ñ%ñ! ñ" ‘s�mÑ"ñ# ñ$ ‘s�mÑ"ñ% ñ& ™C•=Ñ'ñ' ñ( ™3•-Ñ&ñ) ñ* !¡�ÑXñ+ ñ, &¡c�]ñ ñ- ñ2 ™u•oÑTñ3 ñ4 $¡C�=ñ ñ5 ñ:  ¡•ÑVñ; ñ< %¡S�Mñ ñ= ñB ™•ÑKñC ñD ™d•^Ñ*ñE ñF ™c•]Ñ)ñG ñH #¡3�-Ñ.ñI ñJ !¡�Ñ,ñK ñL ™c•]Ñ)òM r!   r    )%r(   r)   r*   r+   r   rE   r#   r˜  rË   rý   r   rî   r   rï   rð   rä  r   r  rå  ræ  rç  rì   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   rO   r]   r.   r^   r_   s   @r"   râ  râ  ÿ  s  ø‡ € Ù�sÐ(JÔK€EáØ-Ø;ô€Jð /3€FØ€FÙØÐ)Dô€Kñ ˜Ð4EÔF€EÙ�qÐ&7Ô8€EØ*.€NØ!%€EØ!%€KØ"€HØ"€HØ#'€MØ"&€LÙ*/°ÐBWÔ*XÐÙ-2ØÐ<ô.Ðñ ).¨dÐ@SÔ(TÐÙ+0ØÐ:ô,Ðñ */¨tÐAUÔ)VÐÙ,1ØÐ;ô-Ðñ !& dÐ8JÔ K€JØ&*€OØ%)€OØ*.ÐØ(,ÐØ%)€O÷M ƒ r!   râ  c                   óX   a € ] tR tRt o ^ t^ t^ t^ t]V 3R lR l4       t	V 3R lt
RtV tR# )ÚAnthropicUsagei(  c                ó.   <€ V ^8„  d   QhRRRS[ RS[ RR/# )rC   r  r   r(  r  r  rê  r  )rY   rZ   s   "€r"   r[   ÚAnthropicUsage.__annotate__/  s-   ø€ ÷ 
ñ 
Ø)ð
Ù:=ð
ÙNQð
à	ñ
r!   c                óž   € \        ^ \        VP                  4      4      pV ! \        ^ \        V4      V,
          4      ^ V\        V4      R7      # )r   )r  Úcache_creation_input_tokensÚcache_read_input_tokensr  )r5  r   r  )rƒ   r  r(  r  r  s   &&&& r"   r  ÚAnthropicUsage.from_metrics.  sJ   € ô ˜Aœs 7×#8Ñ#8Ó9Ó:ˆÙÜ˜Q¤ MÓ 2°]Õ BÓCØ()Ø$1Ü˜mÓ,ô	
ð 	
r!   c                óJ   <€ V ^8„  d   Qh/ S[ ;R&   S[ ;R&   S[ ;R&   S[ ;R&   # )rC   r  rî  rï  r  r  )rY   rZ   s   "€r"   r[   rì  (  s5   ø‡ ‚ ÙÑñ á!$Ñ(ñ ñ !Ñ$ñ ñ Ñò	 r!   r    N)r(   r)   r*   r+   r  rî  rï  r  rŠ   r  r]   r.   r^   r_   s   @r"   rê  rê  (  s4   ø‡ € Ø€LØ'(ÐØ#$ÐØ€Mà÷
ó ð
÷ ƒ r!   rê  c                   óN   a € ] tR tRt o RtRtRtRt]! ]	R7      t
V 3R ltRtV tR# )ÚAnthropicMessageResponsei>  r?  rÊ   Nr  c                óÔ   <€ V ^8„  d   Qh/ S[ ;R&   S[R,          ;R&   S[R,          ;R&   S[S[,          ;R&   S[ ;R&   S[S[R,          ,          ;R	&   S[S[ ,          ;R&   S[;R
&   # )rC   rF  r?  r—   rÊ   rÄ   rÅ   rE   Ústop_sequenceÚstop_reasonrN  )Úend_turnr˜  rõ  Útool_useÚ
pause_turnÚrefusal)rV   r   r   r   r   rê  )rY   rZ   s   "€r"   r[   Ú%AnthropicMessageResponse.__annotate__>  s�   ø‡ ‚ Ù�Gñ á
�)Õ
Ñ(ñ ñ �+Õ
Ñ,ñ ñ ‘#�YÑñ	 ñ
 �Jñ ñ Ùðõ	
õ	ñ 	ñ ñ  ™C•=Ñ'ñ! ñ" ÑAò# r!   r    )r(   r)   r*   r+   r—   rÄ   rö  rõ  r   rê  rN  r]   r.   r^   r_   s   @r"   ró  ró  >  s1   ø‡ € à(€DØ!,€Dð 	ð ð $(€MÙ!°.ÔA€E÷# ƒ r!   ró  c                   ó,   a € ] tR tRt o V 3R ltRtV tR# )Ú	ModelInfoiU  c                ó>   <€ V ^8„  d   Qh/ S[ ;R&   S[ ;R&   S[;R&   # )rC   rF  rH  rp   )rV   r   )rY   rZ   s   "€r"   r[   ÚModelInfo.__annotate__U  s%   ø‡ ‚ Ù�Gñ á�Kñ ñ �Lò r!   r    Nr›   r_   s   @r"   rý  rý  U  rœ   r!   rý  c                   ó,   a € ] tR tRt o V 3R ltRtV tR# )ÚModelsResponsei[  c                óP   <€ V ^8„  d   Qh/ S[ R,          ;R&   S[S[,          ;R&   # )rC   r€   rH  rq   )r   r   rý  )rY   rZ   s   "€r"   r[   ÚModelsResponse.__annotate__[  s#   ø‡ ‚ Ù�F�OÑñ á
‰y�/Ñò r!   r    Nr›   r_   s   @r"   r  r  [  rœ   r!   r  c                ó¸   € V ^8„  d   Qh/ ^ \         9   d
   \        ;R&   ^\         9   d
   \        ;R&   ^\         9   d
   \        ;R&   ^\         9   d
   \        ;R&   # )rC   r›  ÚResponseInputContentParamrÎ   rÏ   )Ú__conditional_annotations__r   )rY   s   "r"   r[   r[      s]   € ‡	�	÷T AÒ @”)Ñ @ñU 
÷Xò œ9ñ ñY 
÷f RÒ Q¤iÑ Qñg 
÷z GÒ F¤)Ñ Fò{ 
r!   )Zr  r   Útypingr   r   r   r   r   r   r	   Úpydanticr
   r   r   r   Útyping_extensionsr   r   r   Ú
generationr   Úgenerater   r   r   r   r   Úgenerate.imager   r   r   r#   r%   r0   ra   rm   rv   rŒ   r�   r”   rŸ   rª   r¯   r´   r¹   r   r›  r  rÎ   r½   rÏ   rÂ   rÒ   r  r  r  r<  rC  rU  rY  r^  rc  rh  rl  rr  rz  r€  r„  rˆ  rŒ  ÚStreamEventr�  rž  r£  r¬  r±  r·  r¾  rÂ  rÆ  rÎ  rÖ  rÚ  rÞ  râ  rê  ró  rý  r  r[   )r  s   @r"   Ú<module>r     sY  øðß 	€	ß L× LÑ Lç BÓ Bß <Ñ <çÝ-÷õ ÷ñ òIô-˜	ô -ô6Ð.ô 6ôr )ô ô˜iô ô5Ð(ô 5ôp˜Iô ô˜	ô ô˜Y¨eõ ô˜i¨uõ ô$� %õ ô
&˜i¨uõ &ôˆy õ ô"˜I¨Uõ "ð $ E¨#¥J°°c¸3°hµÐ$?Õ@Ð Ó @à',ØØØØðõ(Ð ó ð 37Ð7PÕ2QÐ $Ó Qô˜¨%õ ð /3Ð3EÕ.FÐ  Ó FôPÐ#ô Pô.FÐ%ô FôR˜)ô ô
�)ô 
ô43
˜	ô 3
ôl˜	ô ô3�Yô 3ôl�iô ô ˜Iô  ô.�)ô .ô˜?ô ô
˜oô ô
 ?ô ô  Oô  ô ?ô ô /ô ô  ?ô  ô /ô ô˜_ô ð
 ØØØ Ø!Ø ØØ ØØðõ
€ô C-Ð"ô C-ôL˜
ô ô
�ô 
ô4 �Iô  ô3Ð#ô 3ô
&�ô &ô(˜ô (ô+�9ô +ô,�ô ,ô0�9ô 0ô,�yô ,ô0�iô 0ô#Ð-ô #ô
&*Ð(ô &*ôR
�Yô 
ô,B˜yô Bô.�	ô ô�Yö r!   