§
    Ü˜ºh³  ã                  ó´   — d dl mZ d dlZd dlmZmZmZmZmZ d dl	m
Z
 erd dlmZmZ d dlmZ d dlmZ  eded	         ¬
¦  «        Zdd„Zdd„Zdd„Zdd„ZdS )é    )ÚannotationsN)ÚTYPE_CHECKINGÚCallableÚListÚTypeVarÚUnion)Úrun_helpers)ÚAsyncOpenAIÚOpenAI)ÚChatCompletionChunk)Ú
CompletionÚC)r   r
   )ÚboundÚ
all_chunksúList[ChatCompletionChunk]ÚreturnÚdictc                óþ   — g }| D ]0}|j         d         j        j        }|�|                     |¦  «         Œ1d                     |¦  «        }| r&| d                              ¦   «         }dd|dœig|d<   n
ddd|dœigi}|S )Nr   Ú éÿÿÿÿÚmessageÚ	assistant)ÚroleÚcontentÚchoices)r   Údeltar   ÚappendÚjoinÚ
model_dump©r   Úall_contentÚchunkr   Úds        úb/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/langsmith/wrappers/_openai.pyÚ_reduce_chatr%      s¬   € Ø€KØð (ð (ˆØ”- Ô"Ô(Ô0ˆØÐØ×Ò˜wÑ'Ô'Ð'øØ�gŠg�kÑ"Ô"€GØð RØ�rŒN×%Ò%Ñ'Ô'ˆØ"¨[ÀWÐ$MÐ$MÐNÐOˆˆ)‰ˆà˜)¨kÀgÐ%NÐ%NÐOÐPÐQˆà€Hó    úList[Completion]c                óè   — g }| D ]+}|j         d         j        }|�|                     |¦  «         Œ,d                     |¦  «        }| r#| d                              ¦   «         }d|ig|d<   ndd|igi}|S )Nr   r   r   Útextr   )r   r)   r   r   r   r    s        r$   Ú_reduce_completionsr*   "   s˜   € Ø€KØð (ð (ˆØ”- Ô"Ô'ˆØÐØ×Ò˜wÑ'Ô'Ð'øØ�gŠg�kÑ"Ô"€GØð -Ø�rŒN×%Ò%Ñ'Ô'ˆØ Ð)Ð*ˆˆ)‰ˆà˜& 'Ð*Ð+Ð,ˆà€Hr&   Úoriginal_creater   ÚnameÚstrÚ	reduce_fnc                óÌ   ‡ ‡‡— t          j        ‰ ¦  «        ddœdˆˆ ˆfd„¦   «         }t          j        ‰ ¦  «        ddœdˆˆ ˆfd„¦   «         }t          j        ‰ ¦  «        r|n|S )NF)Ústreamr0   Úboolc                ó`   •— t          j        ‰d| r‰nd ¬¦  «        }  |‰¦  «        |d| i|¤ŽS ©NÚllm)r,   Úrun_typer.   r0   ©r	   Ú	traceable)r0   ÚargsÚkwargsÚ	decoratorr,   r+   r.   s       €€€r$   Úcreatez_get_wrapper.<locals>.create3   sP   ø€ åÔ)Ø ¸fÐ1N°°È$ð
ñ 
ô 
ˆ	ð *ˆyˆy˜Ñ)Ô)¨4ÐI¸ÐIÀ&ÐIÐIÐIr&   c              Ÿ  óž   •K  — t          j        ‰d| r‰nd ¬¦  «        }| r  |‰¦  «        |d| i|¤Ž}|S   |‰¦  «        |d| i|¤Žƒ d {V —†S r3   r6   )r0   r8   r9   r:   Úresr,   r+   r.   s        €€€r$   Úacreatez_get_wrapper.<locals>.acreate;   s˜   øè è € åÔ)Ø ¸fÐ1N°°È$ð
ñ 
ô 
ˆ	ð ð 	ð -�)�)˜OÑ,Ô,¨dÐL¸6ÐLÀVÐLÐLˆCØˆJØ/�Y�Y˜Ñ/Ô/°ÐO¸fÐOÈÐOÐOÐOÐOÐOÐOÐOÐOÐOr&   )r0   r1   )Ú	functoolsÚwrapsr	   Úis_async)r+   r,   r.   r;   r>   s   ```  r$   Ú_get_wrapperrB   2   sË   øøø€ Ý„_�_Ñ%Ô%Ø%*ð Jð Jð Jð Jð Jð Jð Jð Jð Jñ &Ô%ðJõ „_�_Ñ%Ô%Ø,1ð 	Pð 	Pð 	Pð 	Pð 	Pð 	Pð 	Pð 	Pð 	Pñ &Ô%ð	Põ "Ô*¨?Ñ;Ô;ÐGˆ7ˆ7ÀÐGr&   Úclientc                óÂ   — t          | j        j        j        dt          ¦  «        | j        j        _        t          | j        j        dt
          ¦  «        | j        _        | S )zÆPatch the OpenAI client to make it traceable.

    Args:
        client (Union[OpenAI, AsyncOpenAI]): The client to patch.

    Returns:
        Union[OpenAI, AsyncOpenAI]: The patched client.

    Ú
ChatOpenAIr   )rB   ÚchatÚcompletionsr;   r%   r*   )rC   s    r$   Úwrap_openairH   J   sV   € õ &2ØŒÔÔ&¨µlñ&ô &€F„KÔÔ"õ !-ØÔÔ! 8Õ-@ñ!ô !€FÔÔð €Mr&   )r   r   r   r   )r   r'   r   r   )r+   r   r,   r-   r.   r   r   r   )rC   r   r   r   )Ú
__future__r   r?   Útypingr   r   r   r   r   Ú	langsmithr	   Úopenair
   r   Ú'openai.types.chat.chat_completion_chunkr   Úopenai.types.completionr   r   r%   r*   rB   rH   © r&   r$   ú<module>rP      s)  ðØ "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @à !Ð !Ð !Ð !Ð !Ð !àð 3Ø*Ð*Ð*Ð*Ð*Ð*Ð*Ð*ðð ð ð ð ð ð 3Ð2Ð2Ð2Ð2Ð2à€GˆC�uÐ4Ô5Ð6Ñ6Ô6€ðð ð ð ð ð ð ð ð Hð Hð Hð Hð0ð ð ð ð ð r&   