§
    Ý
@gó  ã                  ó   — 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dS )é    )ÚannotationsN)ÚTYPE_CHECKINGÚListÚOptionalÚcast)ÚArgumentParser)ÚLiteralÚ
NamedTupleé   )Ú
get_client)Ú	BaseModelé   )ÚStream)ÚChatCompletionRoleÚChatCompletionChunkÚCompletionCreateParams)ÚCompletionCreateParamsStreamingÚ"CompletionCreateParamsNonStreaming)Ú_SubParsersActionÚ	subparserú!_SubParsersAction[ArgumentParser]ÚreturnÚNonec           	     óº  — |                       d¦  «        }|j                             ¦   «          |                     d¦  «        }|                     d¦  «        }|                     dddddd	d
¬¦  «         |                     dddd
¬¦  «         |                     dddt
          ¬¦  «         |                     dddt
          ¬¦  «         |                     dddt          ¬¦  «         |                     dddt          ¬¦  «         |                     dd¬¦  «         |                     d d!d"¬#¦  «         |                     t          j	        t          ¬$¦  «         d S )%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)r   ÚsubÚreqÚopts       úT/var/www/piapp/venv/lib/python3.11/site-packages/openai/cli/_api/chat/completions.pyÚregisterr7      sÀ  € Ø
×
Ò
Ð8Ñ
9Ô
9€CàÔ×ÒÑÔÐØ
×
 Ò
 Ð!5Ñ
6Ô
6€CØ
×
 Ò
 Ð!5Ñ
6Ô
6€Cà×ÒØØØØØ#ØqØð ñ ô ð ð ×ÒØØØ Øð	 ñ ô ð ð ×ÒØØØEÝð	 ñ ô ð ð ×Ò�T˜>Ð0[ÕbeÐÑfÔfÐfØ×ÒØØð$õ ð ñ ô ð ð ×ÒØØð6õ ð ñ ô ð ð ×ÒØØRð ñ ô ð ð ×Ò�ZÐ&IÐR^ÐÑ_Ô_Ð_Ø×ÒÕ+Ô2Õ?ZÐÑ[Ô[Ð[Ð[Ð[ó    c                  ó$   — e Zd ZU ded<   ded<   dS )Ú
CLIMessager   ÚroleÚstrÚcontentN)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__© r8   r6   r:   r:   O   s%   € € € € € € ØÐÐÑØ€L€L�L€L€Lr8   r:   c                  óx   — 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<   dS )r2   zList[CLIMessage]Úmessager<   ÚmodelNzOptional[int]ÚnÚ
max_tokenszOptional[float]ÚtemperatureÚtop_pzOptional[str]ÚstopFÚboolÚstream)
r>   r?   r@   rA   rF   rG   rH   rI   rJ   rL   rB   r8   r6   r2   r2   T   s�   € € € € € € ØÐÐÑØ€J€J�JØ€AÐÐÐÑØ $€JÐ$Ð$Ð$Ñ$Ø#'€KÐ'Ð'Ð'Ñ'Ø!€EÐ!Ð!Ð!Ñ!Ø€DÐÐÐÑØ€FÐÐÐÑÐÐr8   r2   c                  óV   — e Zd Zedd„¦   «         Zedd„¦   «         Zedd
„¦   «         ZdS )r0   Úargsr2   r   r   c                ól  — | j         d„ | j        D ¦   «         | j        | j        | j        | j        ddœ}| j        r
| j        |d<   | j        �
| j        |d<   | j        r-t           	                    t          t          |¦  «        ¦  «        S t                               t          t          |¦  «        ¦  «        S )Nc                ó^   — g | ]*}t          t          d          |j        ¦  «        |j        dœ‘Œ+S )Úuser)r;   r=   )r   r	   r;   r=   )Ú.0rD   s     r6   ú
<listcomp>z,CLIChatCompletion.create.<locals>.<listcomp>d   s?   € ð ð ð Ø^e��g fœo¨w¬|Ñ<Ô<ÈÌÐYÐYðð ð r8   F)rE   ÚmessagesrF   rH   rI   rJ   rL   rL   rG   )rE   rD   rF   rH   rI   rJ   rL   rG   r0   Ú_stream_creater   r   Ú_creater   )rN   Úparamss     r6   r1   zCLIChatCompletion.create`   sÅ   € ð ”Zðð ØimÔiuðñ ô ð ”ØÔ+Ø”ZØ”Iàð*
ð *
ˆð Œ;ð 	+Ø#œ{ˆF�8ÑØŒ?Ð&Ø#'¤?ˆF�<Ñ àŒ;ð 	cÝ$×3Ò3µDÕ9XÐZ`Ñ4aÔ4aÑbÔbÐbå ×(Ò(­Õ.PÐRXÑ)YÔ)YÑZÔZÐZr8   rW   r   c                ó  —  t          ¦   «         j        j        j        di | ¤Ž}t	          |j        ¦  «        dk    }|j        D ]È}|r7t          j                             d 	                    |j
        ¦  «        ¦  «         |j        j        �|j        j        nd}t          j                             |¦  «         |s|                     d¦  «        st          j                             d¦  «         t          j                             ¦   «          ŒÉd S )Né   ú===== Chat Completion {} =====
r   ú
rB   )r   ÚchatÚcompletionsr1   ÚlenÚchoicesÚsysÚstdoutÚwriteÚformatÚindexrD   r=   ÚendswithÚflush)rW   Ú
completionÚshould_print_headerÚchoicer=   s        r6   rV   zCLIChatCompletion._createx   s   € à9•Z‘\”\Ô&Ô2Ô9ÐCÐC¸FÐCÐCˆ
Ý! *Ô"4Ñ5Ô5¸Ò9ÐØ Ô(ð 
	ð 
	ˆFØ"ð ZÝ”
× Ò Ð!C×!JÒ!JÈ6Ì<Ñ!XÔ!XÑYÔYÐYà06´Ô0FÐ0R�f”nÔ,Ð,ÐX^ˆGÝŒJ×Ò˜WÑ%Ô%Ð%à"ð '¨'×*:Ò*:¸4Ñ*@Ô*@ð 'Ý”
× Ò  Ñ&Ô&Ð&åŒJ×ÒÑÔÐÐð
	ð 
	r8   r   c                ó^  — t          t          t                    t          ¦   «         j        j        j        di | ¤Ž¦  «        }|D ]É}t          |j        ¦  «        dk    }|j        D ]§}|r7t          j
                             d                     |j        ¦  «        ¦  «         |j        j        pd}t          j
                             |¦  «         |rt          j
                             d¦  «         t          j
                             ¦   «          Œ¨ŒÊt          j
                             d¦  «         d S )NrY   rZ   Ú r[   rB   )r   r   r   r   r\   r]   r1   r^   r_   r`   ra   rb   rc   rd   Údeltar=   rf   )rW   rL   Úchunkrh   ri   r=   s         r6   rU   z CLIChatCompletion._stream_createˆ   s!  € õ ÝÕ&Ô'Ð)M­©¬Ô):Ô)FÔ)MÐ)WÐ)WÐPVÐ)WÐ)Wñ
ô 
ˆð ð 	#ð 	#ˆEÝ"% e¤mÑ"4Ô"4°qÒ"8ÐØœ-ð 
#ð 
#�Ø&ð ^Ý”J×$Ò$Ð%G×%NÒ%NÈvÌ|Ñ%\Ô%\Ñ]Ô]Ð]à œ,Ô.Ð4°"�Ý”
× Ò  Ñ)Ô)Ð)à&ð +Ý”J×$Ò$ TÑ*Ô*Ð*å”
× Ò Ñ"Ô"Ð"Ð"ð
#õ 	Œ
×Ò˜ÑÔÐÐÐr8   N)rN   r2   r   r   )rW   r   r   r   )rW   r   r   r   )r>   r?   r@   Ústaticmethodr1   rV   rU   rB   r8   r6   r0   r0   _   sv   € € € € € Øð[ð [ð [ñ „\ð[ð. ðð ð ñ „\ðð ðð ð ñ „\ðð ð r8   r0   )r   r   r   r   )Ú
__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   r7   r:   r2   r0   rB   r8   r6   ú<module>rx      s¹  ðØ "Ð "Ð "Ð "Ð "Ð "à 
€
€
€
Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø #Ð #Ð #Ð #Ð #Ð #Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1à  Ð  Ð  Ð  Ð  Ð  Ø  Ð  Ð  Ð  Ð  Ð  Ø !Ð !Ð !Ð !Ð !Ð !ðð ð ð ð ð ð ð ð ð ð
ð ð ð ð ð ð ð ð
 ð +Ø*Ð*Ð*Ð*Ð*Ð*ð3\ð 3\ð 3\ð 3\ðlð ð ð ð �ñ ô ð ð
ð ð ð ð  )ñ ô ð ð=ð =ð =ð =ð =ñ =ô =ð =ð =ð =r8   