§
    šŠtj¼  ã                   óà   — d dl Z d dlmZmZmZmZmZmZmZ d dl	Z	d dl
mZ d dlmZ d dlmZ d dlmZ dZdZd	ed
ededeeef         fd„Zd	ed
ededeeddf         fd„Z G d„ de¦  «        ZdS )é    N)ÚAnyÚDictÚ	GeneratorÚIteratorÚListÚLiteralÚOptional)ÚCallbackManagerForLLMRun)ÚLLM)ÚGenerationChunk)ÚFieldzhttps://chat-api.you.com/smartz!https://chat-api.you.com/researchÚbase_urlÚapi_keyÚkwargsÚreturnc                 óˆ   — d|i}t          j        | ||¬¦  «        }|                     ¦   «          |                     ¦   «         S )zŠ
    NOTE: This function can be replaced by a OpenAPI-generated Python SDK in the future,
    for better input/output typing support.
    ú	x-api-key)ÚheadersÚjson)ÚrequestsÚpostÚraise_for_statusr   )r   r   r   r   Úresponses        úZ/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/llms/you.pyÚ_requestr      sD   € ð
 ˜GÐ$€GÝŒ}˜X¨w¸VÐDÑDÔD€HØ×ÒÑÔÐØ�=Š=‰?Œ?Ðó    c              +   óî  K  — d|i}t          di |¤ddi¤Ž}t          j        | |d|¬¦  «        }|                     ¦   «          d„ |D ¦   «         }	 dd l}|                     |¦  «        }n# t          $ r t          d¦  «        ‚w xY w|                     ¦   «         D ]Y}	|	j        dv rŒ|	j        d	k    r
|	j	        V — Œ!|	j        d
k    rt          d|	j	        › �¦  «        ‚t          d|	j        › �¦  «        ‚d S )Nr   ÚstreamT)r   r   r   c              3   ó   K  — | ]}|V — Œd S )N© )Ú.0Ú
bytestrings     r   ú	<genexpr>z"_request_stream.<locals>.<genexpr>"   s"   è è € Ð:Ð: :�JÐ:Ð:Ð:Ð:Ð:Ð:r   r   zPCould not import `sseclient`. Please install it with `pip install sseclient-py`.)Úsearch_resultsÚdoneÚtokenÚerrorzError in response: zUnknown event type r    )Údictr   r   r   Ú	sseclientÚ	SSEClientÚImportErrorÚeventsÚeventÚdataÚ
ValueErrorÚNotImplementedError)
r   r   r   r   Úparamsr   Úevent_sourcer)   Úclientr-   s
             r   Ú_request_streamr4      s]  è è € ð ˜GÐ$€GÝÐ(Ð(�FÐ(Ð( 4Ð(Ð(Ð(€FÝŒ}˜X¨w¸tÈ&ÐQÑQÔQ€HØ×ÒÑÔÐð ;Ð:°Ð:Ñ:Ô:€Lð

ØÐÐÐà×$Ò$ \Ñ2Ô2ˆˆøÝð 
ð 
ð 
ÝðEñ
ô 
ð 	
ð
øøøð —’‘”ð Kð KˆØŒ;Ð4Ð4Ð4ØØŒ[˜GÒ#Ð#Ø”*ÐÐÐÐØŒ[˜GÒ#Ð#ÝÐ?°5´:Ð?Ð?Ñ@Ô@Ð@å%Ð&I¸E¼KÐ&IÐ&IÑJÔJÐJðKð Ks   ÁA* Á*Bc                   ó`  — e Zd ZU dZ edd¬¦  «        Zed         ed<    edd¬¦  «        Ze	e
         ed	<   	 	 dd
e
de	ee
                  de	e         dede
f
d„Z	 	 dd
e
de	ee
                  de	e         dedee         f
d„Zede
fd„¦   «         Zede
fd„¦   «         Zede
fd„¦   «         ZdS )ÚYoua‰  Wrapper around You.com's conversational Smart and Research APIs.

    Each API endpoint is designed to generate conversational
    responses to a variety of query types, including inline citations
    and web results when relevant.

    Smart Endpoint:
    - Quick, reliable answers for a variety of questions
    - Cites the entire web page URL

    Research Endpoint:
    - In-depth answers with extensive citations for a variety of questions
    - Cites the specific web page snippet relevant to the claim

    To connect to the You.com api requires an API key which
    you can get at https://api.you.com.

    For more information, check out the documentations at
    https://documentation.you.com/api-reference/.

    Args:
        endpoint: You.com conversational endpoints. Choose from "smart" or "research"
        ydc_api_key: You.com API key, if `YDC_API_KEY` is not set in the environment
    ÚsmartzCYou.com conversational endpoints. Choose from "smart" or "research")Údescription)r7   ÚresearchÚendpointNz>You.com API key, if `YDC_API_KEY` is not set in the envriomentÚydc_api_keyÚpromptÚstopÚrun_managerr   r   c                 ón   — |rt          d¦  «        ‚d|i}t          | j        fd| j        i|¤Ž}|d         S )Nú5Stop words are not implemented for You.com endpoints.Úqueryr   Úanswer)r0   r   Ú_request_endpointÚ_api_key)Úselfr<   r=   r>   r   r1   r   s          r   Ú_callz	You._call`   sW   € ð ð 	Ý%ØGñô ð ð ˜6Ð"ˆÝ˜DÔ2ÐTÐT¸D¼MÐTÈVÐTÐTˆØ˜Ô!Ð!r   c              +   ó�   K  — |rt          d¦  «        ‚d|i}t          | j        fd| j        i|¤ŽD ]}t	          |¬¦  «        V — Œd S )Nr@   rA   r   )Útext)r0   r4   rC   rD   r   )rE   r<   r=   r>   r   r1   r&   s          r   Ú_streamzYou._streamo   s�   è è € ð ð 	Ý%ØGñô ð ð ˜6Ð"ˆÝ$ØÔ"ð
ð 
Ø,0¬Mð
Ø=Cð
ð 
ð 	.ð 	.ˆEõ " uÐ-Ñ-Ô-Ð-Ð-Ð-Ð-ð	.ð 	.r   c                 ó4   — | j         dk    rt          S t          S )Nr7   )r:   ÚSMART_ENDPOINTÚRESEARCH_ENDPOINT©rE   s    r   rC   zYou._request_endpoint€   s   € àŒ=˜GÒ#Ð#Ý!Ð!Ý Ð r   c                 ó4   — | j         pt          j        d         S )NÚYDC_API_KEY)r;   ÚosÚenvironrM   s    r   rD   zYou._api_key†   s   € àÔÐ<¥2¤:¨mÔ#<Ð<r   c                 ó   — dS )Nzyou.comr    rM   s    r   Ú	_llm_typezYou._llm_typeŠ   s   € àˆyr   )NN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r:   r   Ú__annotations__r;   r	   Ústrr   r
   r   rF   r   r   rI   ÚpropertyrC   rD   rS   r    r   r   r6   r6   ;   sÂ  € € € € € € ðð ð2 .3¨UØàQð.ñ .ô .€HˆgÐ)Ô*ð ð ñ ð "' ØØTð"ñ "ô "€K�˜#”ð ð ñ ð %)Ø:>ð	"ð "àð"ð �t˜C”yÔ!ð"ð Ð6Ô7ð	"ð
 ð"ð 
ð"ð "ð "ð "ð$ %)Ø:>ð	.ð .àð.ð �t˜C”yÔ!ð.ð Ð6Ô7ð	.ð
 ð.ð 
�/Ô	"ð.ð .ð .ð .ð" ð! 3ð !ð !ð !ñ „Xð!ð
 ð=˜#ð =ð =ð =ñ „Xð=ð ð˜3ð ð ð ñ „Xðð ð r   r6   )rP   Útypingr   r   r   r   r   r   r	   r   Ú langchain_core.callbacks.managerr
   Ú#langchain_core.language_models.llmsr   Úlangchain_core.outputsr   Úpydanticr   rK   rL   rY   r   r4   r6   r    r   r   ú<module>r`      s^  ðØ 	€	€	€	Ø JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ Jà €€€Ø EÐ EÐ EÐ EÐ EÐ EØ 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø Ð Ð Ð Ð Ð à1€Ø7Ð ð�sð  Sð °Cð ¸DÀÀcÀ¼Nð ð ð ð ðKØðKØðKØ+.ðKàˆs�D˜$ˆÔðKð Kð Kð KðDQð Qð Qð Qð Qˆ#ñ Qô Qð Qð Qð Qr   