§
    æ˜ºh}  ã                   ó†   — d dl m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mZ d dlmZ  G d„ de¦  «        Zd	S )
é    )Úpartial)ÚAnyÚDictÚListÚMappingÚOptionalÚSet)ÚCallbackManagerForLLMRun)ÚLLM)ÚExtraÚFieldÚroot_validator)Úenforce_stop_tokensc                   ó@  — e Zd ZU dZeed<   	  edd¬¦  «        Zee         ed<    edd¬¦  «        Z	e
ed<   	  edd	¬¦  «        Ze
ed	<   	  ed
d¬¦  «        Ze
ed<   	  edd¬¦  «        Zeed<   	  edd¬¦  «        Zeed<   	  edd¬¦  «        Zeed<   	  edd¬¦  «        Zeed<   	  edd¬¦  «        Zeed<   	  edd¬¦  «        Zee
         ed<   	 dZee
         ed<   	 dZee         ed<   	 dZee         ed<   	 dZee
         ed<   	 dZee         ed<   	 g Zeee                  ed<   	 dZee
         ed<   	 d Zee         ed!<   	  ed"d#¬¦  «        Ze
ed#<   	 dZeed$<   	 dZ eed%<   	  ed&d'¬¦  «        Z!ee         ed'<   	 dZ"e#ed(<    G d)„ d*¦  «        Z$e%d+e&e         fd,„¦   «         Z'd+e(ee#f         fd-„Z) e*¦   «         d.e(d+e(fd/„¦   «         Z+e,d+e-ee#f         fd0„¦   «         Z.e,d+efd1„¦   «         Z/	 	 d6d2edeee                  d3ee0         d4e#d+ef
d5„Z1dS )7ÚGPT4Alla²  GPT4All language models.

    To use, you should have the ``gpt4all`` python package installed, the
    pre-trained model file, and the model's config information.

    Example:
        .. code-block:: python

            from langchain_community.llms import GPT4All
            model = GPT4All(model="./models/gpt4all-model.bin", n_threads=8)

            # Simplest invocation
            response = model("Once upon a time, ")
    ÚmodelNÚbackend)ÚaliaséÈ   Ú
max_tokenséÿÿÿÿÚn_partsr   ÚseedFÚf16_kvÚ
logits_allÚ
vocab_onlyÚ	use_mlockÚ	embeddingé   Ú	n_threadsé   Ú	n_predictgffffffæ?Útempgš™™™™™¹?Útop_pé(   Útop_kÚechoÚstopé@   Úrepeat_last_ngáz®Gáò?Úrepeat_penaltyé   Ún_batchÚ	streamingÚallow_downloadÚcpuÚdeviceÚclientc                   ó    — e Zd ZdZej        ZdS )úGPT4All.Configz'Configuration for this pydantic object.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚforbidÚextra© ó    úh/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/langchain_community/llms/gpt4all.pyÚConfigr4   b   s   € € € € € Ø5Ð5à”ˆˆˆr<   r>   Úreturnc                  ó
   — h d£S )N>   r#   r&   r$   r-   r"   r   r*   r+   r;   r;   r<   r=   Ú_model_param_nameszGPT4All._model_param_namesg   s   € ð	
ð 	
ð 	
ð 		
r<   c           	      óh   — | j         | j        | j        | j        | j        | j        | j        | j        dœS )N©r   r"   r&   r$   r#   r-   r+   r*   rC   ©Úselfs    r=   Ú_default_paramszGPT4All._default_paramst   s;   € àœ/ØœØ”ZØ”ZØ”IØ”|Ø"Ô1Ø!Ô/ð	
ð 	
ð 		
r<   Úvaluesc                 ó´  — 	 ddl m} n# t          $ r t          d¦  «        ‚w xY w|d         }|                     d¦  «        \  }}}||z  } |||pd|d         |d         |d	         ¬
¦  «        |d<   |d         �&|d         j                             |d         ¦  «         	 |d         j        |d<   n%# t          $ r |d         j        j        |d<   Y nw xY w|S )z;Validate that the python package exists in the environment.r   )r   zVCould not import gpt4all python package. Please install it with `pip install gpt4all`.r   ú/Nr   r/   r1   )Ú
model_pathÚ
model_typer/   r1   r2   r    )Úgpt4allr   ÚImportErrorÚ
rpartitionr   Úset_thread_countrK   ÚAttributeError)ÚclsrG   ÚGPT4AllModelÚ	full_pathrJ   Ú	delimiterÚ
model_names          r=   Úvalidate_environmentzGPT4All.validate_environment€   sG  € ð	Ø7Ð7Ð7Ð7Ð7Ð7Ð7øÝð 	ð 	ð 	Ýð@ñô ð ð	øøøð ˜7”Oˆ	Ø,5×,@Ò,@ÀÑ,EÔ,EÑ)ˆ
�I˜zØ�iÑˆ
à'˜<ØØ!Ð) TØ˜iÔ(Ø!Ð"2Ô3Ø˜(Ô#ð
ñ 
ô 
ˆˆxÑð �+ÔÐ*à�8ÔÔ"×3Ò3°F¸;Ô4GÑHÔHÐHð	BØ & xÔ 0Ô ;ˆF�9ÑÐøÝð 	Bð 	Bð 	Bà & xÔ 0Ô 6Ô AˆF�9ÑÐÐð	Bøøøð ˆs   ‚	 ‰#Â"B3 Â3CÃCc                 óˆ   ‡ — d‰ j         i‰                      ¦   «         ¥ˆ fd„‰ j                             ¦   «         D ¦   «         ¥S )zGet the identifying parameters.r   c                 óH   •— i | ]\  }}|‰                      ¦   «         v ¯||“ŒS r;   )rA   )Ú.0ÚkÚvrE   s      €r=   ú
<dictcomp>z/GPT4All._identifying_params.<locals>.<dictcomp>¨   s<   ø€ ð ð ð Ù˜˜A¸!¸t×?VÒ?VÑ?XÔ?XÐ:XÐ:X��1Ð:XÐ:XÐ:Xr<   )r   rF   Ú__dict__ÚitemsrD   s   `r=   Ú_identifying_paramszGPT4All._identifying_params¢   sc   ø€ ð �T”Zð
à×"Ò"Ñ$Ô$ð
ðð ð ð Ø!%¤×!4Ò!4Ñ!6Ô!6ðñ ô ð
ð 	
r<   c                 ó   — dS )zReturn the type of llm.rL   r;   rD   s    r=   Ú	_llm_typezGPT4All._llm_type­   s	   € ð ˆyr<   ÚpromptÚrun_managerÚkwargsc                 óì   — d}|rt          |j        | j        ¬¦  «        }d}i |                      ¦   «         ¥|¥} | j        j        |fi |¤ŽD ]}|r ||¦  «         ||z  }Œ|�t          ||¦  «        }|S )aš  Call out to GPT4All's generate method.

        Args:
            prompt: The prompt to pass into the model.
            stop: A list of strings to stop generation when encountered.

        Returns:
            The string generated by the model.

        Example:
            .. code-block:: python

                prompt = "Once upon a time, "
                response = model(prompt, n_predict=55)
        N)ÚverboseÚ )r   Úon_llm_new_tokenrf   rF   r2   Úgenerater   )	rE   rb   r(   rc   rd   Útext_callbackÚtextÚparamsÚtokens	            r=   Ú_callzGPT4All._call²   s¬   € ð, ˆØð 	XÝ# KÔ$@È$Ì,ÐWÑWÔWˆMØˆØ5�D×(Ò(Ñ*Ô*Ð5¨fÐ5ˆØ)�T”[Ô)¨&Ð;Ð;°FÐ;Ð;ð 	ð 	ˆEØð %Ø�˜eÑ$Ô$Ð$Ø�E‰MˆDˆDØÐÝ& t¨TÑ2Ô2ˆDØˆr<   )NN)2r5   r6   r7   r8   ÚstrÚ__annotations__r   r   r   r   Úintr   r   r   Úboolr   r   r   r   r    r"   r#   Úfloatr$   r&   r'   r(   r   r*   r+   r-   r.   r/   r1   r2   r   r>   Ústaticmethodr	   rA   r   rF   r   rV   Úpropertyr   r_   ra   r
   rn   r;   r<   r=   r   r      s+  € € € € € € ðð ð €J€J�JØ5à"˜U 4¨yÐ9Ñ9Ô9€GˆX�cŒ]Ð9Ð9Ñ9à�e˜C |Ð4Ñ4Ô4€J�Ð4Ð4Ñ4Øà�5˜ 9Ð-Ñ-Ô-€GˆSÐ-Ð-Ñ-ð?ð ��a˜vÐ&Ñ&Ô&€Dˆ#Ð&Ð&Ñ&Ø-à�5˜ hÐ/Ñ/Ô/€FˆDÐ/Ð/Ñ/Ø1à�u˜U¨,Ð7Ñ7Ô7€J�Ð7Ð7Ñ7Ø@à�u˜U¨,Ð7Ñ7Ô7€J�Ð7Ð7Ñ7Ø/à�e˜E¨Ð5Ñ5Ô5€IˆtÐ5Ð5Ñ5Ø,à�e˜E¨Ð5Ñ5Ô5€IˆtÐ5Ð5Ñ5Ø"à$˜u Q¨kÐ:Ñ:Ô:€Iˆx˜Œ}Ð:Ð:Ñ:Ø#à"€Iˆx˜Œ}Ð"Ð"Ñ"Ø3à€Dˆ(�5Œ/ÐÐÑØ.à €Eˆ8�EŒ?Ð Ð Ñ Ø.à€Eˆ8�CŒ=ÐÐÑØ.à €Dˆ(�4Œ.Ð Ð Ñ Ø%à "€Dˆ(�4˜”9Ô
Ð"Ð"Ñ"Ø@à#%€M�8˜C”=Ð%Ð%Ñ%Øà&*€N�H˜U”OÐ*Ð*Ñ*Ø2à�5˜ )Ð,Ñ,Ô,€GˆSÐ,Ð,Ñ,Ø+à€IˆtÐÐÑØ/à €N�DÐ Ð Ñ ØDà!˜E %¨xÐ8Ñ8Ô8€FˆH�SŒMÐ8Ð8Ñ8ØBà€FˆCÐÐÑðð ð ð ð ñ ô ð ð
 ð

  C¤ð 

ð 

ð 

ñ „\ð

ð

  c¨3 h¤ð 

ð 

ð 

ð 

ð €^ÑÔð¨$ð °4ð ð ð ñ ÔððB ð
 W¨S°#¨XÔ%6ð 
ð 
ð 
ñ „Xð
ð ð˜3ð ð ð ñ „Xðð %)Ø:>ð	!ð !àð!ð �t˜C”yÔ!ð!ð Ð6Ô7ð	!ð
 ð!ð 
ð!ð !ð !ð !ð !ð !r<   r   N)Ú	functoolsr   Útypingr   r   r   r   r   r	   Úlangchain_core.callbacksr
   Ú#langchain_core.language_models.llmsr   Úlangchain_core.pydantic_v1r   r   r   Úlangchain_community.llms.utilsr   r   r;   r<   r=   ú<module>r|      sÙ   ðØ Ð Ð Ð Ð Ð Ø :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :à =Ð =Ð =Ð =Ð =Ð =Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ Cà >Ð >Ð >Ð >Ð >Ð >ðHð Hð Hð Hð Hˆcñ Hô Hð Hð Hð Hr<   