o
    Zh                     @   s  d Z ddlmZmZmZmZ ddlmZ G dd deZG dd deZ	G dd	 d	eZ
G d
d deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG d d! d!eZd"S )#z'Models for the PebbloRetrievalQA chain.    )AnyListOptionalUnion)	BaseModelc                   @   s6   e Zd ZU dZdZee ed< eed< ee ed< dS )AuthContextz#Class for an authorization context.NnameZuser_idZ	user_auth)	__name__
__module____qualname____doc__r   r   str__annotations__r    r   r   i/var/www/html/lang_env/lib/python3.10/site-packages/langchain_community/chains/pebblo_retrieval/models.pyr      s   
 r   c                   @      e Zd ZU dZee ed< dS )SemanticEntitiesz#Class for a semantic entity filter.denyNr	   r
   r   r   r   r   r   r   r   r   r   r         
 r   c                   @   r   )SemanticTopicsz"Class for a semantic topic filter.r   Nr   r   r   r   r   r      r   r   c                       sL   e Zd ZU dZdZee ed< dZee	 ed< de
ddf fddZ  ZS )	SemanticContextzClass for a semantic context.Npebblo_semantic_entitiespebblo_semantic_topicsdatareturnc                    s6   t  jdi | | jd u r| jd u rtdd S d S )NzTsemantic_context must contain 'pebblo_semantic_entities' or 'pebblo_semantic_topics'r   )super__init__r   r   
ValueError)selfr   	__class__r   r   r   $   s   

zSemanticContext.__init__)r	   r
   r   r   r   r   r   r   r   r   r   r   __classcell__r   r   r    r   r      s
   
 r   c                       sT   e Zd ZU dZeed< dZee ed< dZ	ee
 ed< dedef fdd	Z  ZS )

ChainInputz"Input for PebbloRetrievalQA chain.queryNauth_contextsemantic_contextkwargsr   c                    s*   t  jdi |}| j|d< | j|d< |S )Nr%   r&   r   )r   dictr%   r&   )r   r'   Z	base_dictr    r   r   r(   9   s   

zChainInput.dict)r	   r
   r   r   r   r   r%   r   r   r&   r   r   r(   r"   r   r   r    r   r#   2   s   
 r#   c                   @   sz   e Zd ZU dZdZee ed< eed< eed< dZee ed< eed< eed< eed	< eed
< eed< dZ	ee ed< dS )Runtimez
    OS, language details
     typehostpathipplatformos
os_versionlanguageZlanguage_versionruntimeN)
r	   r
   r   r   r+   r   r   r   r.   r3   r   r   r   r   r)   A   s   
 r)   c                   @   s"   e Zd ZU dZeed< eed< dS )	Frameworkz%
    Langchain framework details
    r   versionN)r	   r
   r   r   r   r   r   r   r   r   r4   R   s   
 r4   c                   @   s&   e Zd ZU ee ed< ee ed< dS )Modelvendorr   Nr	   r
   r   r   r   r   r   r   r   r   r6   [   s   
 r6   c                   @   sV   e Zd ZU ee ed< ee ed< ee ed< ee ed< ee ed< ee ed< dS )PkgInfoZproject_home_pageZdocumentation_urlpypi_urlZliscence_typeZinstalled_vialocationNr8   r   r   r   r   r9   `   s   
 r9   c                   @   sN   e Zd ZU 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S )VectorDBNr   r5   r;   embedding_model)
r	   r
   r   r   r   r   r   r5   r;   r=   r   r   r   r   r<   i   s
   
 r<   c                   @   s2   e Zd ZU eed< ee ed< eee  ed< dS )	ChainInfor   modelZ
vector_dbsN)	r	   r
   r   r   r   r   r6   r   r<   r   r   r   r   r>   p   s   
 r>   c                   @   sV   e Zd ZU eed< eed< ee ed< eed< eed< ee	 ed< eed< eed< d	S )
Appr   ownerdescriptionr3   Z	frameworkchainsZplugin_versionclient_versionN)
r	   r
   r   r   r   r   r)   r4   r   r>   r   r   r   r   r@   v   s   
 r@   c                   @   s:   e Zd ZU ee ed< ee ed< eed< ee ed< dS )ContextZretrieved_fromdocZ	vector_dbZpb_checksumNr8   r   r   r   r   rE      s
   
 rE   c                   @   sR   e Zd ZU eeeef  ed< dZee	 ed< dZ
ee ed< dZee ed< dS )Promptr   NentityCountentitiesprompt_gov_enabled)r	   r
   r   r   r   listr   r   rH   intrI   r(   rJ   boolr   r   r   r   rG      s
   
 rG   c                   @   sr   e Zd ZU eed< eeee  ee f ed< ee	 ed< ee	 ed< eed< eed< eee  ed< eed< d	S )
Qar   contextpromptresponseZprompt_timeuserZuser_identitiesZclassifier_locationN)
r	   r
   r   r   r   r   r   r   rE   rG   r   r   r   r   rN      s   
 rN   N)r   typingr   r   r   r   Zpydanticr   r   r   r   r   r#   r)   r4   r6   r9   r<   r>   r@   rE   rG   rN   r   r   r   r   <module>   s$    
		