Ë
    $Æ%h   ã                  óì   — d dl mZ d dlZd dlmZmZmZmZ d dlm	Z	 d dl
mZmZ ddlmZ ddlmZ d	d
lmZ d	dlmZmZmZ d	dlmZmZ erd dlmZ dd„Z G d„ de«      Z G d„ de«      Z G d„ d«      Zy)é    )ÚannotationsN)ÚTYPE_CHECKINGÚListÚOptionalÚcast)ÚArgumentParser)ÚLiteralÚ
NamedTupleé   )Ú
get_client)Ú	BaseModelé   )ÚStream)ÚChatCompletionRoleÚChatCompletionChunkÚCompletionCreateParams)ÚCompletionCreateParamsStreamingÚ"CompletionCreateParamsNonStreaming)Ú_SubParsersActionc           	     óX  — | j                  d«      }|j                  j                  «        |j                  d«      }|j                  d«      }|j	                  dddddd	d
¬«       |j	                  dddd
¬«       |j	                  dddt
        ¬«       |j	                  dddt
        ¬«       |j	                  dddt        ¬«       |j	                  dddt        ¬«       |j	                  dd¬«       |j	                  d d!d"¬#«       |j                  t        j                  t        ¬$«       y )%Nzchat.completions.createzrequired argumentszoptional argumentsz-gz	--messageÚappendé   )ÚROLEÚCONTENTzbA message in `{role} {content}` format. Use this argument multiple times to add multiple messages.T)ÚactionÚnargsÚmetavarÚhelpÚrequiredz-mz--modelzThe model to use.)r   r   z-nz--nz6How many completions to generate for the conversation.)r   Útypez-Mz--max-tokensz)The maximum number of tokens to generate.z-tz--temperaturezÜWhat sampling temperature to use. Higher values means the model will take more risks. Try 0.9 for more creative applications, and 0 (argmax sampling) for ones with a well-defined answer.

Mutually exclusive with `top_p`.z-Pz--top_pa  An alternative to sampling with temperature, called nucleus sampling, where the considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10%% probability mass are considered.

            Mutually exclusive with `temperature`.z--stopzCA stop sequence at which to stop generating tokens for the message.)r   z--streamz!Stream messages as they're ready.Ú
store_true)r   r   )ÚfuncÚ
args_model)Ú
add_parserÚ_action_groupsÚpopÚadd_argument_groupÚadd_argumentÚintÚfloatÚset_defaultsÚCLIChatCompletionÚcreateÚCLIChatCompletionCreateArgs)Ú	subparserÚsubÚreqÚopts       ú^/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/openai/cli/_api/chat/completions.pyÚregisterr4      sc  € Ø
×
Ñ
Ð8Ó
9€Cà×Ñ×ÑÔØ
×
 Ñ
 Ð!5Ó
6€CØ
×
 Ñ
 Ð!5Ó
6€Cà×ÑØØØØØ#ØqØð ô ð ×ÑØØØ Øð	 ô ð ×ÑØØØEÜð	 ô ð ×Ñ�T˜>Ð0[ÔbeÐÔfØ×ÑØØð$ô ð ô ð ×ÑØØð6ô ð ô ð ×ÑØØRð ô ð ×Ñ�ZÐ&IÐR^ÐÔ_Ø×ÑÔ+×2Ñ2Ô?ZÐÕ[ó    c                  ó"   — e Zd ZU ded<   ded<   y)Ú
CLIMessager   ÚroleÚstrÚcontentN)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__© r5   r3   r7   r7   O   s   … Ø
ÓØ„Lr5   r7   c                  óv   — e Zd ZU ded<   ded<   dZded<   dZded<   dZd	ed
<   dZd	ed<   dZded<   dZ	ded<   y)r.   zList[CLIMessage]Úmessager9   ÚmodelNzOptional[int]ÚnÚ
max_tokenszOptional[float]ÚtemperatureÚtop_pzOptional[str]ÚstopFÚboolÚstream)
r;   r<   r=   r>   rC   rD   rE   rF   rG   rI   r?   r5   r3   r.   r.   T   sI   … ØÓØƒJØ€A€}ÓØ $€J�Ó$Ø#'€K�Ó'Ø!€Eˆ?Ó!Ø€Dˆ-ÓØ€FˆDÔr5   r.   c                  óB   — e Zd Zedd„«       Zedd„«       Zedd„«       Zy)r,   c                ó”  — | j                   | j                  D �cg c],  }t        t        d   |j                  «      |j
                  dœ‘Œ. c}ddœ}| j                  �| j                  |d<   | j                  �| j                  |d<   | j                  �| j                  |d<   | j                  �| j                  |d<   | j                  r| j                  |d	<   | j                  �| j                  |d
<   | j                  r#t        j                  t        t        |«      «      S t        j                  t        t         |«      «      S c c}w )NÚuser)r8   r:   F)rB   ÚmessagesrI   rE   rG   rF   rC   rI   rD   )rB   rA   r   r	   r8   r:   rE   rG   rF   rC   rI   rD   r,   Ú_stream_creater   Ú_creater   )ÚargsrA   Úparamss      r3   r-   zCLIChatCompletion.create`   s  € ð —Z‘Zàim×iuÑiuöØ^eœœg f™o¨w¯|©|Ó<ÈÏÉÓYòð ñ*
ˆð ×ÑÐ'Ø$(×$4Ñ$4ˆF�=Ñ!Ø�9‰9Ð Ø!ŸY™YˆF�6‰NØ�:‰:Ð!Ø"Ÿj™jˆF�7‰OØ�6‰6ÐØŸ&™&ˆF�3‰KØ�;Š;Ø#Ÿ{™{ˆF�8ÑØ�?‰?Ð&Ø#'§?¡?ˆF�<Ñ à�;Š;Ü$×3Ñ3´DÔ9XÐZ`Ó4aÓbÐbä ×(Ñ(¬Ô.PÐRXÓ)YÓZÐZùò-s   š1Ec                ó`  —  t        «       j                  j                  j                  di | ¤Ž}t	        |j
                  «      dkD  }|j
                  D ]Ù  }|r8t        j                  j                  dj                  |j                  «      «       |j                  j                  �|j                  j                  nd}t        j                  j                  |«       |s|j                  d«      st        j                  j                  d«       t        j                  j                  «        ŒÛ y )Né   ú===== Chat Completion {} =====
ÚNoneú
r?   )r   ÚchatÚcompletionsr-   ÚlenÚchoicesÚsysÚstdoutÚwriteÚformatÚindexrA   r:   ÚendswithÚflush)rQ   Ú
completionÚshould_print_headerÚchoicer:   s        r3   rO   zCLIChatCompletion._create|   sÚ   € à9”Z“\×&Ñ&×2Ñ2×9Ñ9ÑC¸FÑCˆ
Ü! *×"4Ñ"4Ó5¸Ñ9ÐØ ×(Ñ(ò 
	ˆFÙ"Ü—
‘
× Ñ Ð!C×!JÑ!JÈ6Ï<É<Ó!XÔYà06·±×0FÑ0FÐ0R�f—n‘n×,Ò,ÐX^ˆGÜ�J‰J×Ñ˜WÔ%á"¨'×*:Ñ*:¸4Ô*@Ü—
‘
× Ñ  Ô&ä�J‰J×ÑÕñ
	r5   c                óŒ  — t        t        t            t        «       j                  j
                  j                  di | ¤Ž«      }|D ]Ý  }t        |j                  «      dkD  }|j                  D ]´  }|r8t        j                  j                  dj                  |j                  «      «       |j                  j                  xs d}t        j                  j                  |«       |rt        j                  j                  d«       t        j                  j!                  «        Œ¶ Œß t        j                  j                  d«       y )NrS   rT   Ú rV   r?   )r   r   r   r   rW   rX   r-   rY   rZ   r[   r\   r]   r^   r_   Údeltar:   ra   )rQ   rI   Úchunkrc   rd   r:   s         r3   rN   z CLIChatCompletion._stream_createŒ   sõ   € ô ÜÔ&Ñ'Ð)M¬«×):Ñ):×)FÑ)F×)MÑ)MÑ)WÐPVÑ)Wó
ˆð ò 	#ˆEÜ"% e§m¡mÓ"4°qÑ"8ÐØŸ-™-ò 
#�Ù&Ü—J‘J×$Ñ$Ð%G×%NÑ%NÈvÏ|É|Ó%\Ô]à Ÿ,™,×.Ñ.Ò4°"�Ü—
‘
× Ñ  Ô)á&Ü—J‘J×$Ñ$ TÔ*ä—
‘
× Ñ Õ"ñ
#ð	#ô 	�
‰
×Ñ˜Õr5   N)rP   r.   ÚreturnrU   )rQ   r   ri   rU   )rQ   r   ri   rU   )r;   r<   r=   Ústaticmethodr-   rO   rN   r?   r5   r3   r,   r,   _   s>   „ Øò[ó ð[ð6 òó ðð òó ñr5   r,   )r/   z!_SubParsersAction[ArgumentParser]ri   rU   )Ú
__future__r   r[   Útypingr   r   r   r   Úargparser   Útyping_extensionsr	   r
   Ú_utilsr   Ú_modelsr   Ú
_streamingr   Ú
types.chatr   r   r   Ú#types.chat.completion_create_paramsr   r   r   r4   r7   r.   r,   r?   r5   r3   ú<module>rt      sb   ðÝ "ã 
ß 6Ó 6Ý #ß 1å  Ý  Ý !÷ñ ÷
ñ
 Ý*ó3\ôl�ô ô
 )ô ÷Aò Ar5   