§
    šŠtjr!  ã                   ór   — d dl Z d dlmZmZmZmZmZmZ d dlm	Z	 d dl
mZ d dlmZmZ  G d„ de¦  «        ZdS )é    N)ÚAnyÚDictÚListÚMappingÚOptionalÚUnion)ÚCallbackManagerForLLMRun)ÚLLM)ÚFieldÚ	SecretStrc                   óh  — e Zd ZU dZeed<   eed<   dZee         ed<   dZ	ee         ed<   dZ
ee         ed<    ee¬¦  «        Zeeef         ed	<    ed
ddœ¦  «        Zeed<   edefd„¦   «         Z	 	 ddedeee                  dee         dedef
d„Zedeeef         fd„¦   «         Zdefd„ZdS )Ú	Predibasea  Use your Predibase models with Langchain.

    To use, you should have the ``predibase`` python package installed,
    and have your Predibase API key.

    The `model` parameter is the Predibase "serverless" base_model ID
    (see https://docs.predibase.com/user-guide/inference/models for the catalog).

    An optional `adapter_id` parameter is the Predibase ID or HuggingFace ID of a
    fine-tuned LLM adapter, whose base model is the `model` parameter; the
    fine-tuned adapter must be compatible with its base model;
    otherwise, an error is raised.  If the fine-tuned adapter is hosted at Predibase,
    then `adapter_version` in the adapter repository must be specified.

    An optional `predibase_sdk_version` parameter defaults to latest SDK version.
    ÚmodelÚpredibase_api_keyNÚpredibase_sdk_versionÚ
adapter_idÚadapter_version)Údefault_factoryÚmodel_kwargsé   gš™™™™™¹?)Úmax_new_tokensÚtemperatureÚdefault_options_for_generationÚreturnc                 ó   — dS )NÚ	predibase© ©Úselfs    ú`/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/llms/predibase.pyÚ	_llm_typezPredibase._llm_type(   s   € àˆ{ó    ÚpromptÚstopÚrun_managerÚkwargsc                 óº  — i | j         ¥| j        pi ¥|pi ¥}|                      ¦   «         �rW	 ddlm} ddlm} ddlm}m	}	 ddl
m}
m} ddlm} ddlm}  || j                             ¦   «         dd	¬
¦  «        } ||¬¦  «        }n?# t&          $ r}t'          d¦  «        |‚d }~wt(          $ r}t)          d¦  «        |‚d }~ww xY w|                     d| j        › �¬¦  «        }| j        rz	 	 |                     | j        | j        d ¬¦  «        }n)# |$ r! |                     d| j        › �¬¦  «        }Y nw xY w|                     |¬¦  «                             ||¬¦  «        }n|                     ||¬¦  «        }|j        S ddlm} dt<          j        d<    || j                             ¦   «         ¬¦  «        }dd l }ddl!m"} ddl#m$} ddl%m&} |j'         (                    | j        ¬¦  «        }| j        r 	 | j        rZ| j        › d| j        › �}| )                    dd ¦  «         	  |j        d(||dœ|¤Ž}n›# |$ r}t)          d|› d �¦  «        |‚d }~ww xY w	  |j        d(|| j        d!d"œ|¤Ž}nb# |$ r}t)          d#| j        › d$�¦  «        |‚d }~ww xY w	  |j        d(d%|i|¤Ž}n+# |j*        $ r}t)          d&| j        › d'�¦  «        |‚d }~ww xY w|j+        }|S ))Nr   )ÚPredibaseClient)Úget_session)ÚServerResponseErrorÚSession)ÚHuggingFaceLLMÚLLMDeployment)ÚGeneratedResponse)ÚModelz https://api.app.predibase.com/v1zserving.app.predibase.com)ÚtokenÚgatewayÚserving_endpoint)ÚsessionzZCould not import Predibase Python package. Please install it with `pip install predibase`.z-Your API key is not correct. Please try againzpb://deployments/)Úuri)ÚnameÚversionÚmodel_idzhf://)r   )r#   Úoptions)r   zhttps://api.app.predibase.comÚPREDIBASE_GATEWAY)Ú	api_token)ÚClient)ÚGenerationError)ÚResponse)Údeployment_refú/r:   )r#   r   zAn adapter with the ID "zE" cannot be found in the Predibase repository of fine-tuned adapters.Úhub)r#   r   Úadapter_sourcezEither an adapter with the ID "zš" cannot be found in a HuggingFace repository, or it is incompatible with the base model (please make sure that the adapter configuration is consistent).
r#   zAn LLM with the deployment ID "zŒ" cannot be found at Predibase (please refer to "https://docs.predibase.com/user-guide/inference/models" for the list of supported models).
r   ),r   r   Ú_is_deprecated_sdk_versionr   r(   Úpredibase.pqlr)   Úpredibase.pql.apir*   r+   Ú predibase.resource.llm.interfacer,   r-   Úpredibase.resource.llm.responser.   Úpredibase.resource.modelr/   r   Úget_secret_valueÚImportErrorÚ
ValueErrorr
   r   r   Ú	get_modelr   Úwith_adapterÚgenerateÚresponser   ÚosÚenvironÚrequestsÚlorax.clientr;   Úlorax.errorsr<   Úlorax.typesr=   ÚdeploymentsÚclientÚpopÚJSONDecodeErrorÚgenerated_text) r   r#   r$   r%   r&   r8   r(   r)   r*   r+   r,   r-   r.   r/   r3   ÚpcÚeÚbase_llm_deploymentÚadapter_modelÚresultr   r   rQ   ÚLoraxClientr<   r=   Úlorax_clientÚpb_adapter_idrN   ÚgeÚjdeÚresponse_texts                                    r    Ú_callzPredibase._call,   s?  € ð1
ØÔ1ð1
àÔ Ð& Bð1
ð ˆ|˜ð1
ˆð
 ×*Ò*Ñ,Ô,ñ :	#ðYØ5Ð5Ð5Ð5Ð5Ð5Ø5Ð5Ð5Ð5Ð5Ð5ðð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð NÐMÐMÐMÐMÐMØ:Ð:Ð:Ð:Ð:Ð:à#. ;ØÔ0×AÒAÑCÔCØ>Ø%@ð$ñ $ô $�ð
 '6 o¸gÐ&FÑ&FÔ&F��øÝð ð ð Ý!ðFñô ð ðøøøøõ ð Yð Yð YÝ Ð!PÑQÔQÐWXÐXøøøøðYøøøð 24·²Ø4¨¬
Ð4Ð4ð 28ñ 2ô 2Ðð Œð ððJØ$&§L¢LØ!œ_Ø $Ô 4Ø!%ð %1ñ %ô %�M�Møð
 +ð Jð Jð Jà$&§F¢FÐ/H°t´Ð/HÐ/H FÑ$IÔ$I�M�M�MðJøøøð -×9Ò9ÀÐ9ÑNÔN×WÒWØ!Ø#ð Xñ ô ��ð
 -×5Ò5Ø!Ø#ð 6ñ ô �ð ”?Ð"à'Ð'Ð'Ð'Ð'Ð'à*I�Œ
Ð&Ñ'Ø(˜yØÔ,×=Ò=Ñ?Ô?ð 
ñ  
ô  
ˆ	ð 	ˆˆˆØ6Ð6Ð6Ð6Ð6Ð6Ø0Ð0Ð0Ð0Ð0Ð0Ø(Ð(Ð(Ð(Ð(Ð(à$-Ô$9×$@Ò$@Øœ:ð %Añ %
ô %
ˆð
 Œ?ð 4	ðð Ô#ð !à(,¬Ð%PÐ%P¸$Ô:NÐ%PÐ%P�Ø—’Ø ñô ð ð
Ø4˜|Ô4ð  Ø%Ø#0ð ð  ð "ð ð  �H�Høð
 'ð ð ð Ý$ð=°]ð =ð =ð =ñô ð ðøøøøðøøøðØ4˜|Ô4ð  Ø%Ø#'¤?Ø',ð ð  ð "ð	 ð  �H�Høð 'ð ð ð Ý$ð¸D¼Oð ð ð ñô ð
 ðøøøøðøøøðØ0˜<Ô0ð ð Ø!ðàðð ��øð Ô+ð ð ð Ý ð¸¼
ð ð ð ñô ð ðøøøøðøøøð !Ô/ˆàÐs~   ­AB Â
CÂB!Â!CÂ.B>Â>CÃ-"D Ä#D6Ä5D6È(H9 È9IÈ>IÉIÉI2 É2JÉ7JÊJÊJ) Ê)
KÊ3KËKc                 ó   — i d| j         i¥S )zGet the identifying parameters.r   )r   r   s    r    Ú_identifying_paramszPredibase._identifying_params¾   s   € ð
Ø˜tÔ0Ð1ð
ð 	
r"   c                 óè   — 	 dd l }ddlm} ddlm} |                     d¬¦  «        }| j        p|}|                     |¬¦  «        }||k    pd|v  S # t          $ r}t          d¦  «        |‚d }~ww xY w)Nr   )Ú__version__)ÚVersionz2024.4.8)Úversion_stringz+devzkCould not import Predibase Python package. Please install it with `pip install semantic_version predibase`.)Úsemantic_versionÚpredibase.versionri   Úsemantic_version.baserj   r   rI   )r   rl   Úcurrent_versionrj   Úsdk_semver_deprecatedÚactual_current_versionÚsdk_semver_currentr[   s           r    rB   z$Predibase._is_deprecated_sdk_versionÅ   sæ   € ð	Ø#Ð#Ð#Ð#ØHÐHÐHÐHÐHÐHØ5Ð5Ð5Ð5Ð5Ð5à-=×-EÒ-EØ)ð .Fñ .ô .Ð!ð +/Ô*DÐ*WÈÐ"Ø*:×*BÒ*BØ5ð +Cñ +ô +Ðð $Ð&;Ò;ð 6ØÐ4Ð4ðð øõ ð 	ð 	ð 	ÝðSñô ð ðøøøøð	øøøs   ‚AA Á
A1ÁA,Á,A1)NN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚstrÚ__annotations__r   r   r   r   r   Úintr   Údictr   r   r   r   Úpropertyr!   r   r	   re   r   rg   ÚboolrB   r   r"   r    r   r   	   s©  € € € € € € ðð ð" €J€J�JØ Ð Ð Ñ Ø+/Ð˜8 Cœ=Ð/Ð/Ñ/Ø $€J�˜”Ð$Ð$Ñ$Ø%)€O�X˜c”]Ð)Ð)Ñ)Ø#( 5¸Ð#>Ñ#>Ô#>€L�$�s˜C�x”.Ð>Ð>Ñ>Ø+0¨5à!Øð	
ð 	
ñ,ô ,Ð" Dð ð ñ ð ð˜3ð ð ð ñ „Xðð %)Ø:>ð	Pð PàðPð �t˜C”yÔ!ðPð Ð6Ô7ð	Pð
 ðPð 
ðPð Pð Pð Pðd ð
 W¨S°#¨XÔ%6ð 
ð 
ð 
ñ „Xð
ð¨Dð ð ð ð ð ð r"   r   )rO   Útypingr   r   r   r   r   r   Úlangchain_core.callbacksr	   Ú#langchain_core.language_models.llmsr
   Úpydanticr   r   r   r   r"   r    ú<module>r�      s¸   ðØ 	€	€	€	Ø <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <à =Ð =Ð =Ð =Ð =Ð =Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø %Ð %Ð %Ð %Ð %Ð %Ð %Ð %ðQð Qð Qð Qð Q�ñ Qô Qð Qð Qð Qr"   