Ë
    µŒjr!  ã                   ój   — 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y)é    N)ÚAnyÚDictÚListÚMappingÚOptionalÚUnion)ÚCallbackManagerForLLMRun)ÚLLM)ÚFieldÚ	SecretStrc                   ó  — 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y)Ú	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                  ó   — y)NÚ	predibase© ©Úselfs    úl/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/llms/predibase.pyÚ	_llm_typezPredibase._llm_type(   s   € àó    ÚpromptÚstopÚrun_managerÚkwargsc                 ó4  — i | j                   ¥| j                  xs i ¥|xs i ¥}| j                  «       rø	 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"                  j%                  «       dd	¬
«      } ||¬«      }|j+                  d| j,                  › �¬«      }| j.                  rY	 	 |j1                  | j.                  | j2                  d ¬«      }|j5                  |¬«      j7                  ||¬«      }|j8                  S |j7                  ||¬«      }|j8                  S ddlm} dt<        j>                  d<    || j"                  j%                  «       ¬«      }dd l }ddl!m"} ddl#m$} ddl%m&} |jN                  jQ                  | j,                  ¬«      }| j.                  rs	 | j2                  rD| j.                  › d| j2                  › �}|jS                  dd «       	  |j6                  d(||dœ|¤Ž}n7	  |j6                  d(|| j.                  d!d"œ|¤Ž}n	  |j6                  d(d%|i|¤Ž}|jV                  }|S # t&        $ r}t'        d«      |‚d }~wt(        $ r}t)        d«      |‚d }~ww xY w# |$ r# |j+                  d| j.                  › �¬«      }Y �ŒÂw xY w# |$ r}t)        d|› d �«      |‚d }~ww xY w# |$ r}t)        d#| j.                  › d$�«      |‚d }~ww xY w# |jT                  $ r}t)        d&| j,                  › d'�«      |‚d }~ww xY w))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ð1
à× Ñ Ò& Bð1
ð Š|˜ð1
ˆð
 ×*Ñ*Ô,ðYÝ5Ý5÷÷õ NÝ:á#.Ø×0Ñ0×AÑAÓCØ>Ø%@ô$�ñ
 '6¸gÔ&F�ð 24·±Ø'¨¯
©
 |Ð4ð 28ó 2Ðð �ŠððJØ$&§L¡LØ!Ÿ_™_Ø $× 4Ñ 4Ø!%ð %1ó %�Mð -×9Ñ9ÀÐ9ÓN×WÑWØ!Ø#ð Xó �ð —?‘?Ð"ð	 -×5Ñ5Ø!Ø#ð 6ó �ð —?‘?Ð"å'à*IŒ�
‰
Ð&Ñ'Ù(Ø×,Ñ,×=Ñ=Ó?ô 
ˆ	ó 	Ý6Ý0Ý(à$-×$9Ñ$9×$@Ñ$@ØŸ:™:ð %Aó %
ˆð
 �?Š?ðð ×#Ò#à(,¯©Ð'8¸¸$×:NÑ:NÐ9OÐ%P�Ø—‘Ø ôð
Ø4˜|×4Ñ4ð  Ø%Ø#0ñ ð "ñ ‘HðØ4˜|×4Ñ4ð  Ø%Ø#'§?¡?Ø',ñ ð "ñ	 ‘HðØ0˜<×0Ñ0ñ Ø!ðàñ�ð !×/Ñ/ˆàÐøô_ ò Ü!ðFóð ðûô ò YÜ Ð!PÓQÐWXÐXûðYûð( +ò Jà$&§F¡F°°t·±Ð6GÐ/H FÓ$I“MðJûð` 'ò Ü$Ø4°]°Oð D:ð =óð ðûðûð 'ò Ü$Ø;¸D¿O¹OÐ;Lð Mð óð
 ðûðûð ×+Ñ+ò Ü Ø7¸¿
¹
°|ð Dð óð ðûðús~   ¶AI Â7(I: Ç*J% È K È#K) É	I7ÉIÉI7É&I2É2I7É:$J"Ê!J"Ê%J?Ê*J:Ê:J?ËK&ËK!Ë!K&Ë)LË8LÌLc                 ó"   — i d| j                   i¥S )zGet the identifying parameters.r   )r   r   s    r    Ú_identifying_paramszPredibase._identifying_params¾   s   € ð
Ø˜t×0Ñ0Ð1ð
ð 	
r"   c                 óÞ   — 	 dd l }ddlm} ddlm} |j	                  d¬«      }| j
                  xs |}|j	                  |¬«      }||kD  xs 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Ý5à-=×-EÑ-EØ)ð .Fó .Ð!ð +/×*DÑ*DÒ*WÈÐ"Ø*:×*BÑ*BØ5ð +Có +Ðð $Ð&;Ñ;ò 6ØÐ4Ð4ðð øô ò 	ÜðSóð ðûð	ús   ‚AA Á	A,ÁA'Á'A,)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Ø Ó Ø+/Ð˜8 C™=Ó/Ø $€J�˜‘Ó$Ø%)€O�X˜c‘]Ó)Ù#(¸Ô#>€L�$�s˜C�x‘.Ó>Ù+0à!Øñ	
ó,Ð" Dó ð ð˜3ò ó ðð %)Ø:>ñ	PàðPð �t˜C‘yÑ!ðPð Ð6Ñ7ð	Pð
 ðPð 
óPðd ð
 W¨S°#¨XÑ%6ò 
ó ð
ð¨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ß %ôQ�õ Qr"   