Ë
    7 |h™  ã                  óž   — d dl mZ d dlmZmZmZmZmZ d dlm	Z	m
Z
 d dlmZ d dlmZ d dlmZ erd dlmZmZmZ d dlmZmZ  G d	„ d
e«      Zy)é    )Úannotations)ÚTYPE_CHECKINGÚAnyÚDictÚListÚOptional)Ú#AsyncCallbackManagerForRetrieverRunÚCallbackManagerForRetrieverRun)ÚDocument)ÚBaseRetriever)Úmodel_validator)ÚMemorySearchResultÚSearchScopeÚ
SearchType©ÚAsyncZepÚZepc                  ó   — e Zd ZU dZded<   	 ded<   	 ded<   	 ded<   	 d	ed
<   	 dZded<   	 dZded<   	 dZded<   	  ed¬«      e	dd„«       «       Z
	 	 	 	 dd„Z	 	 	 	 dd„Zddœ	 	 	 	 	 	 	 dd„Zddœ	 	 	 	 	 	 	 dd„Zy) ÚZepCloudRetrievera1  `Zep Cloud` MemoryStore Retriever.

    Search your user's long-term chat history with Zep.

    Zep offers both simple semantic search and Maximal Marginal Relevance (MMR)
    reranking of search results.

    Note: You will need to provide the user's `session_id` to use this retriever.

    Args:
        api_key: Your Zep API key
        session_id: Identifies your user or a user's session (required)
        top_k: Number of documents to return (default: 3, optional)
        search_type: Type of search to perform (similarity / mmr)
            (default: similarity, optional)
        mmr_lambda: Lambda value for MMR search. Defaults to 0.5 (optional)

    Zep - Recall, understand, and extract data from chat histories.
    Power personalized AI experiences.
    =========
    Zep is a long-term memory service for AI Assistant apps.
    With Zep, you can provide AI assistants with the ability
    to recall past conversations,
    no matter how distant, while also reducing hallucinations, latency, and cost.

    see Zep Cloud Docs: https://help.getzep.com
    ÚstrÚapi_keyr   Ú
zep_clientr   Úzep_client_asyncÚ
session_idzOptional[int]Útop_kÚmessagesr   Úsearch_scopeÚ
similarityr   Úsearch_typeNzOptional[float]Ú
mmr_lambdaÚbefore)Úmodec                óì   — 	 ddl m}m} |j	                  d«      €t        d«      ‚ ||j	                  d«      ¬«      |d<    ||j	                  d«      ¬«      |d<   |S # t        $ r t        d«      ‚w xY w)	Nr   r   zSCould not import zep-cloud package. Please install it with `pip install zep-cloud`.r   zZep API key is required.)r   r   r   )Úzep_cloud.clientr   r   ÚImportErrorÚgetÚ
ValueError)ÚclsÚvaluesr   r   s       úg/var/www/html/test/engine/venv/lib/python3.12/site-packages/langchain_community/retrievers/zep_cloud.pyÚcreate_clientzZepCloudRetriever.create_client@   s   € ð	ß6ð :‰:iÓ Ð(ÜÐ7Ó8Ð8Ù"¨6¯:©:°iÓ+@ÔAˆˆ|ÑÙ%-°f·j±jÀÓ6KÔ%LˆÐ!Ñ"Øˆøô ò 	ÜðBóð ð	ús   ‚A ÁA3c                óŒ  — |xs g D cg c]°  }|j                   r¢t        t        |j                   j                  «      |j                  |j                   j
                  |j                   j                  |j                   j                  |j                   j                  xs |j                   j                  dœ¬«      ‘Œ² c}S c c}w )N)ÚscoreÚuuidÚ
created_atÚtoken_countÚrole©Úpage_contentÚmetadata)
Úmessager   r   Úcontentr-   Úuuid_r/   r0   r1   Ú	role_type©ÚselfÚresultsÚrs      r*   Ú_messages_search_result_to_docz0ZepCloudRetriever._messages_search_result_to_docP   s“   € ð ’] ö
ð ØyŠyô Ü  §¡×!2Ñ!2Ó3àŸW™WØŸI™IŸO™OØ"#§)¡)×"6Ñ"6Ø#$§9¡9×#8Ñ#8ØŸI™IŸN™NÒA¨a¯i©i×.AÑ.Añö	ò
ð 	
ùò 
s   ‰B5Cc                ó*  — |D cg c]ƒ  }|j                   rut        t        |j                   j                  «      |j                  |j                   j
                  |j                   j                  |j                   j                  dœ¬«      ‘Œ… c}S c c}w )N)r-   r.   r/   r0   r2   )Úsummaryr   r   r6   r-   r7   r/   r0   r9   s      r*   Ú_summary_search_result_to_docz/ZepCloudRetriever._summary_search_result_to_docb   su   € ð ö
ð ØyŠyô Ü  §¡×!2Ñ!2Ó3àŸW™WØŸI™IŸO™OØ"#§)¡)×"6Ñ"6Ø#$§9¡9×#8Ñ#8ñ	öò
ð 	
ùò 
s   …BB)r4   c          	     óN  — | j                   st        d«      ‚| j                   j                  j                  | j                  ||| j
                  | j                  | j                  | j                  ¬«      }| j
                  dk(  r| j                  |«      S | j                  |«      S ©NzZep client not initialized.)Útextr4   r   r   r    Úlimitr?   )r   ÚRuntimeErrorÚmemoryÚsearchr   r   r   r    r   r@   r=   ©r:   ÚqueryÚrun_managerr4   r;   s        r*   Ú_get_relevant_documentsz)ZepCloudRetriever._get_relevant_documentss   s•   € ð ŠÜÐ<Ó=Ð=à—/‘/×(Ñ(×/Ñ/ØO‰OØØØ×*Ñ*Ø×(Ñ(Ø—‘Ø—*‘*ð 0ó 
ˆð ×Ñ 	Ò)Ø×5Ñ5°gÓ>Ð>à×2Ñ2°7Ó;Ð;ó    c          	   ƒ  ój  K  — | j                   st        d«      ‚| j                   j                  j                  | j                  ||| j
                  | j                  | j                  | j                  ¬«      ƒ d {  –—† }| j
                  dk(  r| j                  |«      S | j                  |«      S 7 Œ5­wrB   )r   rE   rF   rG   r   r   r   r    r   r@   r=   rH   s        r*   Ú_aget_relevant_documentsz*ZepCloudRetriever._aget_relevant_documentsŒ   s§   è ø€ ð ×$Ò$ÜÐ<Ó=Ð=à×-Ñ-×4Ñ4×;Ñ;ØO‰OØØØ×*Ñ*Ø×(Ñ(Ø—‘Ø—*‘*ð <ó 
÷ 
ˆð ×Ñ 	Ò)Ø×5Ñ5°gÓ>Ð>à×2Ñ2°7Ó;Ð;ð
ús   ‚A9B3Á;B1Á<6B3)r)   ÚdictÚreturnr   )r;   zList[MemorySearchResult]rP   úList[Document])rI   r   rJ   r
   r4   úOptional[Dict[str, Any]]rP   rQ   )rI   r   rJ   r	   r4   rR   rP   rQ   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__r   r   r    r   Úclassmethodr+   r=   r@   rK   rN   © rL   r*   r   r      s  … ñð8 ƒLØØƒOØ2ØÓØ8ØƒOØØÓØ$Ø *€L+Ó*Ø;Ø*€KÓ*Ø6Ø"&€JÓ&Ø&á˜(Ô#Øòó ó $ðð
Ø/ð
à	ó
ð$
Ø/ð
à	ó
ð, .2ñ<àð<ð 4ð	<ð
 +ð<ð 
ó<ð< .2ñ<àð<ð 9ð	<ð
 +ð<ð 
ô<rL   r   N)Ú
__future__r   Útypingr   r   r   r   r   Úlangchain_core.callbacksr	   r
   Úlangchain_core.documentsr   Úlangchain_core.retrieversr   Úpydanticr   Ú	zep_cloudr   r   r   r$   r   r   r   rY   rL   r*   ú<module>ra      s8   ðÝ "ç ;Õ ;÷õ .Ý 3Ý $áßEÑEß.ôQ<˜õ Q<rL   