Ë
    µŒjé,  ã                  óÆ   — d dl mZ d dlZd dlZd dlZd dlmZmZm	Z	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 d dlmZmZmZ  ej4                  e«      Z G d„ d	e«      Zy)
é    )ÚannotationsN)	ÚAnyÚCallableÚDictÚIteratorÚListÚLiteralÚOptionalÚTupleÚUnion)ÚCallbackManagerForLLMRun)ÚLLM)ÚGenerationChunk)Ú	BaseModelÚFieldÚmodel_validatorc                  óœ  — e Zd ZU dZdZ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Zded<   	 dZded<   	 dZded<   	  ee¬«      Zded<   	  ed¬«      d)d „«       Zd)d!„Zed*d"„«       Zed+d#„«       Zed+d$„«       Zed,d%„«       Z	 	 d-	 	 	 	 	 	 	 	 	 d.d&„Z	 	 d-	 	 	 	 	 	 	 	 	 d/d'„Zed,d(„«       Zy)0ÚOutlinesz%LLM wrapper for the Outlines library.Nr   ÚclientÚstrÚmodelÚtransformerszKLiteral['llamacpp', 'transformers', 'transformers_vision', 'vllm', 'mlxlm']Úbackendé   ÚintÚ
max_tokensúOptional[List[str]]ÚstopTÚboolÚ	streamingzOptional[str]ÚregexzOptional[Union[type, str]]Útype_constraintsz*Optional[Union[BaseModel, Dict, Callable]]Újson_schemaÚgrammarzOptional[Any]Úcustom_generator)Údefault_factoryúDict[str, Any]Úmodel_kwargsÚafter)Úmodec                óø   — t        t        | j                  «      t        | j                  «      t        | j                  «      t        | j
                  «      g«      }|dkD  rt        d«      ‚| j                  «       S )z@Validate that outlines is installed and create a model instance.é   z_Either none or exactly one of regex, type_constraints, json_schema, or grammar can be provided.)Úsumr   r!   r"   r#   r$   Ú
ValueErrorÚbuild_client)ÚselfÚnum_constraintss     úk/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/llms/outlines.pyÚvalidate_environmentzOutlines.validate_environmentŽ   st   € ô ä�T—Z‘ZÓ Ü�T×*Ñ*Ó+Ü�T×%Ñ%Ó&Ü�T—\‘\Ó"ð	ó
ˆð ˜QÒÜð;óð ð × Ñ Ó"Ð"ó    c                ó2  — 	 dd l m} 	 	 	 	 dd„}| j                  dk(  rod| j                  v r(| j                  j                  dd«      \  }}}|› d|› �}nt        d«      ‚ |d	g«        |j                  ||fi | j                  ¤Ž| _	        | S | j                  d
k(  r8 |g d¢«        |j                  | j                  fi | j                  ¤Ž| _	        | S | j                  dk(  rW |g d¢«       ddl
m} t        |d«      st        d«      ‚ |j                  | j                  fd|i| j                  ¤Ž| _	        | S | j                  dk(  rYt        j                  «       dk(  rt        d«      ‚ |dg«        |j                   | j                  fi | j                  ¤Ž| _	        | S | j                  dk(  r7 |dg«        |j"                  | j                  fi | j                  ¤Ž| _	        | S t        d| j                  › �«      ‚# t        $ r t        d«      ‚w xY w)Nr   zUCould not import the Outlines library. Please install it with `pip install outlines`.c           	     ó"  — | D �cg c]N  }t         j                  j                  t        |t        «      r|d   n|«      	 €t        |t
        «      r|n|d   ‘ŒP }}|r/t        ddj                  |«      › ddj                  |«      › �«      ‚y c c}w )Nr,   r   zMissing packages: z, z.. You can install them with:

    pip install Ú )Ú	importlibÚutilÚ	find_specÚ
isinstanceÚtupler   ÚImportErrorÚjoin)ÚpackagesÚpkgÚmissing_packagess      r2   Úcheck_packages_installedz7Outlines.build_client.<locals>.check_packages_installed©   sª   € ñ
 $ó á#�CÜ—>‘>×+Ñ+´jÀÄeÔ6L¨C°ªFÐRUÓVØðô " #¤sÔ+‘°°Q±Ñ7Ø#ð ð  ñ  Ü!Ø(¨¯©Ð3CÓ)DÐ(Eð F'à'*§x¡xÐ0@Ó'AÐ&BðDóð ð  ùò s   …ABÚllamacppz.ggufÚ/é   z.GGUF file_name must be provided for llama.cpp.)zllama-cpp-pythonÚ	llama_cppr   )r   ÚtorchÚdatasetsÚtransformers_vision)r   rH   ÚtorchvisionÚPILÚ
flash_attn)Ú!LlavaNextForConditionalGenerationzZtransformers_vision backend is not supported, please install the correct outlines version.Úmodel_classÚvllmÚDarwinz'vLLM backend is not supported on macOS.ÚmlxlmÚmlxzUnsupported backend: )r?   z!List[Union[str, Tuple[str, str]]]ÚreturnÚNone)Úoutlines.modelsÚmodelsr=   r   r   Úsplitr.   rC   r(   r   r   rM   ÚhasattrrI   ÚplatformÚsystemrO   rQ   )r0   rV   rB   ÚcreatorÚ	repo_nameÚ	file_nameÚrepo_idrM   s           r2   r/   zOutlines.build_client    s>  € ð	Ý,ð	Ø7ð	àó	ð  �<‰<˜:Ò%Ø˜$Ÿ*™*Ñ$Ø04·
±
×0@Ñ0@ÀÀaÓ0HÑ-�˜ IØ$˜I Q y kÐ2‘ä Ð!QÓRÐRÙ$Ð&GÐ%HÔIØ)˜&Ÿ/™/¨'°9ÑRÀ×@QÑ@QÑRˆDŒKðJ ˆðI �\‰\˜^Ò+Ù$Ò%JÔKØ-˜&×-Ñ-¨d¯j©jÑN¸D×<MÑ<MÑNˆDŒKðD ˆðC �\‰\Ð2Ò2Ù$òôõ Gä˜6Ð#8Ô9Ü ðCóð ð 5˜&×4Ñ4Ø—
‘
ñà=ðð ×#Ñ#ñˆDŒKð  ˆð �\‰\˜VÒ#Ü�‰Ó  HÒ,Ü Ð!JÓKÐKÙ$ f XÔ.Ø%˜&Ÿ+™+ d§j¡jÑF°D×4EÑ4EÑFˆDŒKð ˆð �\‰\˜WÒ$Ù$ e WÔ-Ø&˜&Ÿ,™, t§z¡zÑG°T×5FÑ5FÑGˆDŒKð ˆô Ð4°T·\±\°NÐCÓDÐDøôA ò 	ÜðAóð ð	ús   ‚H ÈHc                 ó   — y)NÚoutlines© ©r0   s    r2   Ú	_llm_typezOutlines._llm_typeç   s   € àr4   c                óL   — | j                   | j                  dœ| j                  ¥S )N)r   Ústop_at)r   r   r(   rb   s    r2   Ú_default_paramszOutlines._default_paramsë   s,   € ð Ÿ/™/Ø—y‘yñ
ð ×Ñð
ð 	
r4   c                ó¤   — | j                   | j                  | j                  | j                  | j                  | j
                  dœ| j                  ¥S )N)r   r   r!   r"   r#   r$   )r   r   r!   r"   r#   r$   rf   rb   s    r2   Ú_identifying_paramszOutlines._identifying_paramsó   sL   € ð —Z‘ZØ—|‘|Ø—Z‘ZØ $× 5Ñ 5Ø×+Ñ+Ø—|‘|ñ
ð ×"Ñ"ð
ð 	
r4   c                ó  — ddl m} | j                  r| j                  S | j                  r'|j                  | j                  | j                  ¬«      S | j
                  r'|j                  | j                  | j
                  ¬«      S | j                  r'|j                  | j                  | j                  ¬«      S | j                  r'|j                  | j                  | j                  ¬«      S |j                  | j                  «      S )Nr   )Úgenerate)Ú	regex_str)Úpython_type)Úschema_object)Úcfg_str)r`   rj   r%   r!   r   r"   Úformatr#   Újsonr$   ÚcfgÚtext)r0   rj   s     r2   Ú
_generatorzOutlines._generatorÿ   s½   € å%à× Ò Ø×(Ñ(Ð(Ø�:Š:Ø—>‘> $§+¡+¸¿¹�>ÓDÐDØ× Ò Ø—?‘? 4§;¡;¸D×<QÑ<Q�?ÓRÐRØ×ÒØ—=‘= §¡¸D×<LÑ<L�=ÓMÐMØ�<Š<Ø—<‘< §¡°T·\±\�<ÓBÐBØ�}‰}˜TŸ[™[Ó)Ð)r4   c                óÔ   — i | j                   ¥|¥}|r||d<   d}| j                  r/ | j                  d||d   |dœ|¤ŽD ]  }||j                  z  }Œ |S  | j                  |fi |¤Ž}|S )Nre   Ú )Úpromptr   Úrun_managerra   )rf   r    Ú_streamrr   rs   )r0   rv   r   rw   ÚkwargsÚparamsÚresponseÚchunks           r2   Ú_callzOutlines._call  s—   € ð 4�D×(Ñ(Ð3¨FÐ3ˆÙØ $ˆF�9ÑàˆØ�>Š>Ø%˜Ÿ™ð ØØ˜IÑ&Ø'ñð ô	�ð ˜EŸJ™JÑ&‘ðð ˆð '�t—‘ vÑ8°Ñ8ˆHØˆr4   c              +  óÀ   K  — i | j                   ¥|¥}|r||d<    | j                  j                  |fi |¤ŽD ]#  }|r|j                  |«       t	        |¬«      –— Œ% y ­w)Nre   )rr   )rf   rs   ÚstreamÚon_llm_new_tokenr   )r0   rv   r   rw   ry   rz   Útokens          r2   rx   zOutlines._stream'  sf   è ø€ ð 4�D×(Ñ(Ð3¨FÐ3ˆÙØ $ˆF�9Ñà+�T—_‘_×+Ñ+¨FÑ=°fÔ=ˆEÙØ×,Ñ,¨UÔ3Ü! uÔ-Ó-ñ >ùs   ‚AAc                óp   — t        | j                  d«      r| j                  j                  S t        d«      ‚)zŽAccess the tokenizer for the underlying model.

        .encode() to tokenize text.
        .decode() to convert tokens back to text.
        Ú	tokenizerzTokenizer not found)rX   r   rƒ   r.   rb   s    r2   rƒ   zOutlines.tokenizer7  s.   € ô �4—;‘; Ô,Ø—;‘;×(Ñ(Ð(ÜÐ.Ó/Ð/r4   )rS   z
'Outlines')rS   r   )rS   r'   )rS   r   )NN)
rv   r   r   r   rw   ú"Optional[CallbackManagerForLLMRun]ry   r   rS   r   )
rv   r   r   r   rw   r„   ry   r   rS   zIterator[GenerationChunk])Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú__annotations__r   r   r   r    r!   r"   r#   r$   r%   r   Údictr(   r   r3   r/   Úpropertyrc   rf   rh   rs   r}   rx   rƒ   ra   r4   r2   r   r      sÄ  … Ù/à€FˆCÓàƒJðð 	ð ð ó ðð €J�ÓØ3à $€DÐ
Ó$Ø@à€IˆtÓØ8à€Eˆ=Óðð 48ÐÐ0Ó7ð	ð ?C€KÐ;ÓBðð$ "€Gˆ]Ó!ðð0 '+Ð�mÓ*ØRá#(¸Ô#>€L�.Ó>ðñ ˜'Ô"ò#ó #ð#ó"EðN òó ðð ò
ó ð
ð ò	
ó ð	
ð ò*ó ð*ð$ %)Ø:>ð	àðð "ðð 8ð	ð
 ðð 
óð6 %)Ø:>ð	.àð.ð "ð.ð 8ð	.ð
 ð.ð 
#ó.ð  ò0ó ñ0r4   r   )Ú
__future__r   Úimportlib.utilr8   ÚloggingrY   Útypingr   r   r   r   r   r	   r
   r   r   Úlangchain_core.callbacksr   Ú#langchain_core.language_models.llmsr   Úlangchain_core.outputsr   Úpydanticr   r   r   Ú	getLoggerr…   Úloggerr   ra   r4   r2   Ú<module>r–      sI   ðÝ "ã Û Û ß W× WÕ Wå =Ý 3Ý 2ß 6Ñ 6à	ˆ×	Ñ	˜8Ó	$€ôp0ˆsõ p0r4   