§
    šŠtj–Z  ã                  óú   — d dl mZ d dlZd dlZd dlmZmZ d dl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 erd dlmZ d dlmZ  ej        ¦   «         Ze G d	„ d
¦  «        ¦   «         Z G d„ de¦  «        ZdS )é    )ÚannotationsN)ÚasdictÚ	dataclass)ÚTYPE_CHECKINGÚAnyÚDictÚIterableÚListÚOptionalÚTuple©ÚDocument)Ú
Embeddings)ÚVectorStore)ÚDocumentCollectionc                  óF   — e Zd ZU dZded<   ded<   ded<   ded	<   d
ed<   dS )ÚCollectionConfiga‚  Configuration for a `Zep Collection`.

    If the collection does not exist, it will be created.

    Attributes:
        name (str): The name of the collection.
        description (Optional[str]): An optional description of the collection.
        metadata (Optional[Dict[str, Any]]): Optional metadata for the collection.
        embedding_dimensions (int): The number of dimensions for the embeddings in
            the collection. This should match the Zep server configuration
            if auto-embed is true.
        is_auto_embedded (bool): A flag indicating whether the collection is
            automatically embedded by Zep.
    ÚstrÚnameúOptional[str]ÚdescriptionúOptional[Dict[str, Any]]ÚmetadataÚintÚembedding_dimensionsÚboolÚis_auto_embeddedN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__© ó    úb/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/vectorstores/zep.pyr   r      sW   € € € € € € ðð ð €I€I�IØÐÐÑØ&Ð&Ð&Ñ&ØÐÐÑØÐÐÑÐÐr$   r   c                  óv  ‡ — e Zd ZdZddddœdDˆ fd„ZedEd„¦   «         ZdFd„ZdFd„Z	 	 dGdHd„Z		 	 dGdId „Z
	 	 dGdId!„Z	 	 dJdKd*„Z	 	 dJdKd+„Z	 	 dLdMd-„Z	 	 dLdNd/„Z	 	 dLdNd0„Z	 	 dLdNd1„Z	 	 dLdMd2„Z	 	 dLdOd4„Z	 	 dLdOd5„Z	 	 	 	 dPdQd;„Z	 	 	 	 dPdQd<„Z	 	 	 	 dPdRd=„Z	 	 	 	 dPdRd>„Ze	 	 	 	 	 	 dSdTdA„¦   «         ZdUdVdC„Zˆ xZS )WÚZepVectorStoreaÞ  `Zep` vector store.

    It provides methods for adding texts or documents to the store,
    searching for similar documents, and deleting documents.

    Search scores are calculated using cosine similarity normalized to [0, 1].

    Args:
        api_url (str): The URL of the Zep API.
        collection_name (str): The name of the collection in the Zep store.
        api_key (Optional[str]): The API key for the Zep API.
        config (Optional[CollectionConfig]): The configuration for the collection.
            Required if the collection does not already exist.
        embedding (Optional[Embeddings]): Optional embedding function to use to
            embed the texts. Required if the collection is not auto-embedded.
    N©Úapi_keyÚconfigÚ	embeddingÚcollection_namer   Úapi_urlr)   r   r*   úOptional[CollectionConfig]r+   úOptional[Embeddings]ÚreturnÚNonec               óp  •— t          ¦   «                              ¦   «          |st          d¦  «        ‚	 ddlm} n# t
          $ r t          d¦  «        ‚w xY w |||¬¦  «        | _        || _        |r|j        | j        k    r| j        |_        || _	        |  
                    ¦   «         | _        || _        d S )Nz<collection_name must be specified when using ZepVectorStore.r   )Ú	ZepClientz\Could not import zep-python python package. Please install it with `pip install zep-python`.)r)   )ÚsuperÚ__init__Ú
ValueErrorÚ
zep_pythonr3   ÚImportErrorÚ_clientr,   r   Ú_collection_configÚ_load_collectionÚ_collectionÚ
_embedding)Úselfr,   r-   r)   r*   r+   r3   Ú	__class__s          €r%   r5   zZepVectorStore.__init__>   sï   ø€ õ 	‰Œ×ÒÑÔÐØð 	ÝØNñô ð ð	Ø,Ð,Ð,Ð,Ð,Ð,Ð,øÝð 	ð 	ð 	ÝðCñô ð ð	øøøð
 !�y °'Ð:Ñ:Ô:ˆŒà.ˆÔð ð 	/�f”k TÔ%9Ò9Ð9ØÔ.ˆFŒKà"(ˆÔØ×0Ò0Ñ2Ô2ˆÔØ#ˆŒˆˆs	   ´; »Ac                ó   — | j         S )z/Access the query embedding object if available.)r=   )r>   s    r%   Ú
embeddingszZepVectorStore.embeddingsa   s   € ð ŒÐr$   r   c                óâ   — ddl m} 	 | j        j                             | j        ¦  «        }nB# |$ r: t                               d| j        › d�¦  «         |                      ¦   «         }Y nw xY w|S )z;
        Load the collection from the Zep backend.
        r   )ÚNotFoundErrorzCollection z$ not found. Creating new collection.)	r7   rC   r9   ÚdocumentÚget_collectionr,   ÚloggerÚinfoÚ_create_collection)r>   rC   Ú
collections      r%   r;   zZepVectorStore._load_collectionf   s™   € ð 	-Ð,Ð,Ð,Ð,Ð,ð	3ØœÔ.×=Ò=¸dÔ>RÑSÔSˆJˆJøØð 	3ð 	3ð 	3Ý�KŠKØX˜dÔ2ÐXÐXÐXñô ð ð ×0Ò0Ñ2Ô2ˆJˆJˆJð		3øøøð Ðs   ˆ$- ­<A,Á+A,c                ó„   — | j         st          d¦  «        ‚ | j        j        j        di t          | j         ¦  «        ¤Ž}|S )z=
        Create a new collection in the Zep backend.
        zCCollection config must be specified when creating a new collection.r#   )r:   r6   r9   rD   Úadd_collectionr   )r>   rI   s     r%   rH   z!ZepVectorStore._create_collectionv   s_   € ð Ô&ð 	ÝØUñô ð ð :�T”\Ô*Ô9ð 
ð 
Ý�TÔ,Ñ-Ô-ð
ð 
ˆ
ð Ðr$   ÚtextsúIterable[str]Ú	metadatasúOptional[List[Dict[Any, Any]]]Údocument_idsúOptional[List[str]]úList[ZepDocument]c           
     ó>  — ddl m} d }| j        r*| j        j        r| j        �t          j        dd¬¦  «         nŒ| j        �„| j                             t          |¦  «        ¦  «        }| j        rU| j        j	        t          |d         ¦  «        k    r2t          d| j        j	        › dt          |d         ¦  «        › �¦  «        ‚n	 g }t          |¦  «        D ]E\  }}|                      |||r||         nd |r||         nd |r||         nd ¬¦  «        ¦  «         ŒF|S )	Nr   r   z{The collection is set to auto-embed and an embedding 
                function is present. Ignoring the embedding function.é   )Ú
stacklevelzkThe embedding dimensions of the collection and the embedding function do not match. Collection dimensions: z, Embedding dimensions: )Úcontentr   Údocument_idr+   )Úzep_python.documentr   r<   r   r=   ÚwarningsÚwarnÚembed_documentsÚlistr   Úlenr6   Ú	enumerateÚappend)	r>   rL   rN   rP   ÚZepDocumentrA   Ú	documentsÚiÚds	            r%   Ú_generate_documents_to_addz)ZepVectorStore._generate_documents_to_addƒ   s�  € ð 	@Ð?Ð?Ð?Ð?Ð?àˆ
ØÔð 	 Ô 0Ô Að 	ØŒÐ*Ý”ðIà ðñ ô ð øð
 Œ_Ð(Øœ×8Ò8½¸e¹¼ÑEÔEˆJØÔð  DÔ$4Ô$IÍSØ˜1”ñNô Nò %ð %õ !ð-àÔ(Ô=ð-ð -õ ˜J qœMÑ*Ô*ð-ð -ñô ð øð à')ˆ	Ý˜eÑ$Ô$ð 	ð 	‰DˆAˆqØ×ÒØ�ØØ-6Ð@˜Y qœ\˜\¸DØ3?Ð I ¨Q¤ ÀTØ/9ÐC˜j¨œm˜m¸tð	ñ ô ñô ð ð ð Ðr$   úOptional[List[Dict[str, Any]]]Úkwargsr   ú	List[str]c                ó”   — | j         st          d¦  «        ‚|                      |||¦  «        }| j                              |¦  «        }|S )aÅ  Run more texts through the embeddings and add to the vectorstore.

        Args:
            texts: Iterable of strings to add to the vectorstore.
            metadatas: Optional list of metadatas associated with the texts.
            document_ids: Optional list of document ids associated with the texts.
            kwargs: vectorstore specific parameters

        Returns:
            List of ids from adding the texts into the vectorstore.
        ú<collection should be an instance of a Zep DocumentCollection)r<   r6   rd   Úadd_documents©r>   rL   rN   rP   rf   ra   Úuuidss          r%   Ú	add_textszZepVectorStore.add_texts­   sX   € ð$ Ôð 	ÝØNñô ð ð ×3Ò3°E¸9ÀlÑSÔSˆ	ØÔ ×.Ò.¨yÑ9Ô9ˆàˆr$   c              ‹  ó¤   K  — | j         st          d¦  «        ‚|                      |||¦  «        }| j                              |¦  «        ƒ d{V —†}|S )zARun more texts through the embeddings and add to the vectorstore.ri   N)r<   r6   rd   Úaadd_documentsrk   s          r%   Ú
aadd_textszZepVectorStore.aadd_textsÉ   sn   è è € ð Ôð 	ÝØNñô ð ð ×3Ò3°E¸9ÀlÑSÔSˆ	ØÔ&×5Ò5°iÑ@Ô@Ð@Ð@Ð@Ð@Ð@Ð@ˆàˆr$   é   ÚqueryÚsearch_typer   r   Úkr   úList[Document]c                ó„   — |dk    r | j         |f||dœ|¤ŽS |dk    r | j        |f||dœ|¤ŽS t          d|› d�¦  «        ‚)ú>Return docs most similar to query using specified search type.Ú
similarity©rt   r   Úmmrúsearch_type of ú? not allowed. Expected search_type to be 'similarity' or 'mmr'.)Úsimilarity_searchÚmax_marginal_relevance_searchr6   ©r>   rr   rs   r   rt   rf   s         r%   ÚsearchzZepVectorStore.searchÛ   s—   € ð ˜,Ò&Ð&Ø)�4Ô)¨%ÐR°1¸xÐRÐRÈ6ÐRÐRÐRØ˜EÒ!Ð!Ø5�4Ô5ØðØ Xðð Ø17ðð ð õ ð; +ð ;ð ;ð ;ñô ð r$   c              ‹  ó    K  — |dk    r | j         |f||dœ|¤Žƒ d{V —†S |dk    r | j        |f||dœ|¤Žƒ d{V —†S t          d|› d�¦  «        ‚)rw   rx   ry   Nrz   r{   r|   )Úasimilarity_searchÚamax_marginal_relevance_searchr6   r   s         r%   ÚasearchzZepVectorStore.asearchð   sè   è è € ð ˜,Ò&Ð&Ø0˜Ô0ØðØ Xðð Ø17ðð ð ð ð ð ð ð ð ð ˜EÒ!Ð!Ø<˜Ô<ØðØ Xðð Ø17ðð ð ð ð ð ð ð ð õ ð; +ð ;ð ;ð ;ñô ð r$   é   c                ó<   —  | j         |f||dœ|¤Ž}d„ |D ¦   «         S )ú"Return docs most similar to query.ry   c                ó   — g | ]\  }}|‘ŒS r#   r#   ©Ú.0ÚdocÚ_s      r%   ú
<listcomp>z4ZepVectorStore.similarity_search.<locals>.<listcomp>  ó   € Ð*Ð*Ð*™˜˜Q�Ð*Ð*Ð*r$   ©Ú(_similarity_search_with_relevance_scores©r>   rr   rt   r   rf   Úresultss         r%   r}   z ZepVectorStore.similarity_search  sI   € ð @�$Ô?Øð
Ø ð
ð 
Ø-3ð
ð 
ˆð +Ð* 'Ð*Ñ*Ô*Ð*r$   úList[Tuple[Document, float]]c                ó$   —  | j         |f||dœ|¤ŽS )z$Run similarity search with distance.ry   r�   )r>   rr   rt   r   rf   s        r%   Úsimilarity_search_with_scorez+ZepVectorStore.similarity_search_with_score  s5   € ð =ˆtÔ<Øð
Ø ð
ð 
Ø-3ð
ð 
ð 	
r$   c                óú   — | j         st          d¦  «        ‚| j         j        s8| j        r1| j                             |¦  «        } | j         j        d|||dœ|¤Ž}n | j         j        |f||dœ|¤Ž}d„ |D ¦   «         S )aœ  
        Default similarity search with relevance scores. Modify if necessary
        in subclass.
        Return docs and relevance scores in the range [0, 1].

        0 is dissimilar, 1 is most similar.

        Args:
            query: input text
            k: Number of Documents to return. Defaults to 4.
            metadata: Optional, metadata filter
            **kwargs: kwargs to be passed to similarity search. Should include:
                score_threshold: Optional, a floating point value between 0 to 1 and
                    filter the resulting set of retrieved docs

        Returns:
            List of Tuples of (doc, similarity_score)
        ri   ©r+   Úlimitr   ©r˜   r   c                óV   — g | ]&}t          |j        |j        ¬ ¦  «        |j        pdf‘Œ'S ©©Úpage_contentr   g        ©r   rV   r   Úscore©rŠ   r‹   s     r%   r�   zKZepVectorStore._similarity_search_with_relevance_scores.<locals>.<listcomp>K  óT   € ð 	
ð 	
ð 	
ð õ Ø!$¤Ø œ\ðñ ô ð ”	Ð ˜Sðð	
ð 	
ð 	
r$   r#   )r<   r6   r   r=   Úembed_queryr€   ©r>   rr   rt   r   rf   Úquery_vectorr’   s          r%   r�   z7ZepVectorStore._similarity_search_with_relevance_scores"  sÚ   € ð4 Ôð 	ÝØNñô ð ð ÔÔ0ð 	°T´_ð 	Øœ?×6Ò6°uÑ=Ô=ˆLØ-�dÔ&Ô-ð Ø&¨a¸(ðð ØFLðð ˆGˆGð .�dÔ&Ô-ØðØ¨ðð Ø5;ðð ˆGð	
ð 	
ð ð	
ñ 	
ô 	
ð 		
r$   c              ‹  ó  K  — | j         st          d¦  «        ‚| j         j        s>| j        r7| j                             |¦  «        } | j         j        d|||dœ|¤Žƒ d{V —†}n | j         j        |f||dœ|¤Žƒ d{V —†}d„ |D ¦   «         S )r‡   ri   r—   Nr™   c                óV   — g | ]&}t          |j        |j        ¬ ¦  «        |j        pdf‘Œ'S r›   rž   r    s     r%   r�   zKZepVectorStore.asimilarity_search_with_relevance_scores.<locals>.<listcomp>n  r¡   r$   r#   )r<   r6   r   r=   r¢   r„   r£   s          r%   Ú(asimilarity_search_with_relevance_scoresz7ZepVectorStore.asimilarity_search_with_relevance_scoresV  s  è è € ð Ôð 	ÝØNñô ð ð ÔÔ0ð 	°T´_ð 	Øœ?×6Ò6°uÑ=Ô=ˆLØ4˜DÔ,Ô4ð Ø&¨a¸(ðð ØFLðð ð ð ð ð ð ð ˆGˆGð 5˜DÔ,Ô4ØðØ¨ðð Ø5;ðð ð ð ð ð ð ð ˆGð	
ð 	
ð ð	
ñ 	
ô 	
ð 		
r$   c              ‹  óL   K  —  | j         ||fd|i|¤Žƒ d{V —†}d„ |D ¦   «         S )r‡   r   Nc                ó   — g | ]\  }}|‘ŒS r#   r#   r‰   s      r%   r�   z5ZepVectorStore.asimilarity_search.<locals>.<listcomp>†  rŽ   r$   )r§   r‘   s         r%   r‚   z!ZepVectorStore.asimilarity_searchy  sk   è è € ð F˜ÔEØ�1ð
ð 
Ø'ð
Ø+1ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ˆð +Ð* 'Ð*Ñ*Ô*Ð*r$   úList[float]c                ór   — | j         st          d¦  «        ‚ | j         j        d|||dœ|¤Ž}d„ |D ¦   «         S )aF  Return docs most similar to embedding vector.

        Args:
            embedding: Embedding to look up documents similar to.
            k: Number of Documents to return. Defaults to 4.
            metadata: Optional, metadata filter

        Returns:
            List of Documents most similar to the query vector.
        ri   r—   c                óD   — g | ]}t          |j        |j        ¬ ¦  «        ‘ŒS ©rœ   ©r   rV   r   r    s     r%   r�   z>ZepVectorStore.similarity_search_by_vector.<locals>.<listcomp>¢  óC   € ð 
ð 
ð 
ð
 õ	 Ø œ[Øœðñ ô ð
ð 
ð 
r$   r#   ©r<   r6   r€   ©r>   r+   rt   r   rf   r’   s         r%   Úsimilarity_search_by_vectorz*ZepVectorStore.similarity_search_by_vectorˆ  sy   € ð" Ôð 	ÝØNñô ð ð *�$Ô"Ô)ð 
Ø q°8ð
ð 
Ø?Eð
ð 
ˆð
ð 
ð
 ð
ñ 
ô 
ð 	
r$   c              ‹  óv   K  — | j         st          d¦  «        ‚ | j         j        d|||dœ|¤Ž}d„ |D ¦   «         S )z-Return docs most similar to embedding vector.ri   r—   c                óD   — g | ]}t          |j        |j        ¬ ¦  «        ‘ŒS r­   r®   r    s     r%   r�   z?ZepVectorStore.asimilarity_search_by_vector.<locals>.<listcomp>»  r¯   r$   r#   r°   r±   s         r%   Úasimilarity_search_by_vectorz+ZepVectorStore.asimilarity_search_by_vectorª  s}   è è € ð Ôð 	ÝØNñô ð ð *�$Ô"Ô)ð 
Ø q°8ð
ð 
Ø?Eð
ð 
ˆð
ð 
ð
 ð
ñ 
ô 
ð 	
r$   é   ç      à?Úfetch_kÚlambda_multÚfloatc           	     ó  — | j         st          d¦  «        ‚| j         j        s:| j        r3| j                             |¦  «        } | j         j        d|||d|dœ|¤Ž}n | j         j        |f||d|dœ|¤Ž\  }}d„ |D ¦   «         S )a¯  Return docs selected using the maximal marginal relevance.

        Maximal marginal relevance optimizes for similarity to query AND diversity
        among selected documents.

        Args:
            query: Text to look up documents similar to.
            k: Number of Documents to return. Defaults to 4.
            fetch_k: Number of Documents to fetch to pass to MMR algorithm.
                     Zep determines this automatically and this parameter is
                        ignored.
            lambda_mult: Number between 0 and 1 that determines the degree
                        of diversity among the results with 0 corresponding
                        to maximum diversity and 1 to minimum diversity.
                        Defaults to 0.5.
            metadata: Optional, metadata to filter the resulting set of retrieved docs
        Returns:
            List of Documents selected by maximal marginal relevance.
        ri   rz   ©r+   r˜   r   rs   Ú
mmr_lambda©r˜   r   rs   r½   c                óD   — g | ]}t          |j        |j        ¬ ¦  «        ‘ŒS r­   r®   ©rŠ   rc   s     r%   r�   z@ZepVectorStore.max_marginal_relevance_search.<locals>.<listcomp>ù  ó)   € ÐWÐWÐWÈ!• a¤i¸!¼*ÐEÑEÔEÐWÐWÐWr$   r#   )r<   r6   r   r=   r¢   r€   Úsearch_return_query_vector©	r>   rr   rt   r¸   r¹   r   rf   r¤   r’   s	            r%   r~   z,ZepVectorStore.max_marginal_relevance_searchÃ  sç   € ð: Ôð 	ÝØNñô ð ð ÔÔ0ð 	°T´_ð 	Øœ?×6Ò6°uÑ=Ô=ˆLØ-�dÔ&Ô-ð Ø&ØØ!Ø!Ø&ðð ð ðð ˆGˆGð %P DÔ$4Ô$OØð%àØ!Ø!Ø&ð%ð %ð ð%ð %Ñ!ˆG�\ð XÐWÈwÐWÑWÔWÐWr$   c           	   ‹  ó$  K  — | j         st          d¦  «        ‚| j         j        s@| j        r9| j                             |¦  «        } | j         j        d|||d|dœ|¤Žƒ d{V —†}n! | j         j        |f||d|dœ|¤Žƒ d{V —†\  }}d„ |D ¦   «         S )ú:Return docs selected using the maximal marginal relevance.ri   rz   r¼   Nr¾   c                óD   — g | ]}t          |j        |j        ¬ ¦  «        ‘ŒS r­   r®   rÀ   s     r%   r�   zAZepVectorStore.amax_marginal_relevance_search.<locals>.<listcomp>  rÁ   r$   r#   )r<   r6   r   r=   r¢   r„   Úasearch_return_query_vectorrÃ   s	            r%   rƒ   z-ZepVectorStore.amax_marginal_relevance_searchû  s'  è è € ð Ôð 	ÝØNñô ð ð ÔÔ0ð 	°T´_ð 	Øœ?×6Ò6°uÑ=Ô=ˆLØ4˜DÔ,Ô4ð Ø&ØØ!Ø!Ø&ðð ð ðð ð ð ð ð ð ð ˆGˆGð +W¨$Ô*:Ô*VØð+àØ!Ø!Ø&ð+ð +ð ð+ð +ð %ð %ð %ð %ð %ð %Ñ!ˆG�\ð XÐWÈwÐWÑWÔWÐWr$   c           	     óv   — | j         st          d¦  «        ‚ | j         j        d|||d|dœ|¤Ž}d„ |D ¦   «         S )a¸  Return docs selected using the maximal marginal relevance.

        Maximal marginal relevance optimizes for similarity to query AND diversity
        among selected documents.

        Args:
            embedding: Embedding to look up documents similar to.
            k: Number of Documents to return. Defaults to 4.
            fetch_k: Number of Documents to fetch to pass to MMR algorithm.
                     Zep determines this automatically and this parameter is
                        ignored.
            lambda_mult: Number between 0 and 1 that determines the degree
                        of diversity among the results with 0 corresponding
                        to maximum diversity and 1 to minimum diversity.
                        Defaults to 0.5.
            metadata: Optional, metadata to filter the resulting set of retrieved docs
        Returns:
            List of Documents selected by maximal marginal relevance.
        ri   rz   r¼   c                óD   — g | ]}t          |j        |j        ¬ ¦  «        ‘ŒS r­   r®   rÀ   s     r%   r�   zJZepVectorStore.max_marginal_relevance_search_by_vector.<locals>.<listcomp>K  rÁ   r$   r#   r°   ©r>   r+   rt   r¸   r¹   r   rf   r’   s           r%   Ú'max_marginal_relevance_search_by_vectorz6ZepVectorStore.max_marginal_relevance_search_by_vector!  sw   € ð8 Ôð 	ÝØNñô ð ð *�$Ô"Ô)ð 
ØØØØØ"ð
ð 
ð ð
ð 
ˆð XÐWÈwÐWÑWÔWÐWr$   c           	   ‹  ó†   K  — | j         st          d¦  «        ‚ | j         j        d|||d|dœ|¤Žƒ d{V —†}d„ |D ¦   «         S )rÅ   ri   rz   r¼   Nc                óD   — g | ]}t          |j        |j        ¬ ¦  «        ‘ŒS r­   r®   rÀ   s     r%   r�   zKZepVectorStore.amax_marginal_relevance_search_by_vector.<locals>.<listcomp>e  rÁ   r$   r#   )r<   r6   r„   rÊ   s           r%   Ú(amax_marginal_relevance_search_by_vectorz7ZepVectorStore.amax_marginal_relevance_search_by_vectorM  s™   è è € ð Ôð 	ÝØNñô ð ð 1˜Ô(Ô0ð 
ØØØØØ"ð
ð 
ð ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ˆð XÐWÈwÐWÑWÔWÐWr$   Ú úOptional[List[dict]]c                óR   —  | |||||¬¦  «        }	|	                      ||¦  «         |	S )a—  
        Class method that returns a ZepVectorStore instance initialized from texts.

        If the collection does not exist, it will be created.

        Args:
            texts (List[str]): The list of texts to add to the vectorstore.
            embedding (Optional[Embeddings]): Optional embedding function to use to
               embed the texts.
            metadatas (Optional[List[Dict[str, Any]]]): Optional list of metadata
               associated with the texts.
            collection_name (str): The name of the collection in the Zep store.
            api_url (str): The URL of the Zep API.
            api_key (Optional[str]): The API key for the Zep API.
            config (Optional[CollectionConfig]): The configuration for the collection.
            kwargs: Additional parameters specific to the vectorstore.

        Returns:
            ZepVectorStore: An instance of ZepVectorStore.
        r(   )rm   )
ÚclsrL   r+   rN   r,   r-   r)   r*   rf   Úvecstores
             r%   Ú
from_textszZepVectorStore.from_textsg  sG   € ð@ �3ØØØØØð
ñ 
ô 
ˆð 	×Ò˜5 )Ñ,Ô,Ð,Øˆr$   Úidsc                ó¸   — |�t          |¦  «        dk    rt          d¦  «        ‚| j        €t          d¦  «        ‚|D ]}| j                             |¦  «         ŒdS )zõDelete by Zep vector UUIDs.

        Parameters
        ----------
        ids : Optional[List[str]]
            The UUIDs of the vectors to delete.

        Raises
        ------
        ValueError
            If no UUIDs are provided.
        Nr   zNo uuids provided to delete.zNo collection name provided.)r]   r6   r<   Údelete_document)r>   rÕ   rf   Úus       r%   ÚdeletezZepVectorStore.delete‘  sq   € ð ˆ;�#˜c™(œ( aš-˜-ÝÐ;Ñ<Ô<Ð<àÔÐ#ÝÐ;Ñ<Ô<Ð<àð 	0ð 	0ˆAØÔ×,Ò,¨QÑ/Ô/Ð/Ð/ð	0ð 	0r$   )r,   r   r-   r   r)   r   r*   r.   r+   r/   r0   r1   )r0   r/   )r0   r   )NN)rL   rM   rN   rO   rP   rQ   r0   rR   )
rL   rM   rN   re   rP   rQ   rf   r   r0   rg   )Nrq   )rr   r   rs   r   r   r   rt   r   rf   r   r0   ru   )r…   N)
rr   r   rt   r   r   r   rf   r   r0   ru   )
rr   r   rt   r   r   r   rf   r   r0   r“   )
r+   rª   rt   r   r   r   rf   r   r0   ru   )r…   r¶   r·   N)rr   r   rt   r   r¸   r   r¹   rº   r   r   rf   r   r0   ru   )r+   rª   rt   r   r¸   r   r¹   rº   r   r   rf   r   r0   ru   )NNrÏ   rÏ   NN)rL   rg   r+   r/   rN   rÐ   r,   r   r-   r   r)   r   r*   r.   rf   r   r0   r'   )N)rÕ   rQ   rf   r   r0   r1   )r   r   r    r!   r5   ÚpropertyrA   r;   rH   rd   rm   rp   r€   r„   r}   r•   r�   r§   r‚   r²   rµ   r~   rƒ   rË   rÎ   ÚclassmethodrÔ   rÙ   Ú__classcell__)r?   s   @r%   r'   r'   ,   s;  ø€ € € € € ðð ð, "&Ø-1Ø*.ð$ð $ð $ð $ð $ð $ð $ð $ðF ðð ð ñ „Xððð ð ð ð ð ð ð ð  59Ø,0ð	(ð (ð (ð (ð (ðZ 59Ø,0ð	ð ð ð ð ð> 59Ø,0ð	ð ð ð ð ð, .2Øðð ð ð ð ð2 .2Øðð ð ð ð ð4 Ø-1ð	+ð +ð +ð +ð +ð" Ø-1ð	
ð 
ð 
ð 
ð 
ð  Ø-1ð	2
ð 2
ð 2
ð 2
ð 2
ðn Ø-1ð	!
ð !
ð !
ð !
ð !
ðL Ø-1ð	+ð +ð +ð +ð +ð$ Ø-1ð	 
ð  
ð  
ð  
ð  
ðJ Ø-1ð	
ð 
ð 
ð 
ð 
ð8 ØØ Ø-1ð6Xð 6Xð 6Xð 6Xð 6Xðv ØØ Ø-1ð$Xð $Xð $Xð $Xð $XðR ØØ Ø-1ð*Xð *Xð *Xð *Xð *Xð^ ØØ Ø-1ðXð Xð Xð Xð Xð4 ð +/Ø*.Ø!ØØ!%Ø-1ð'ð 'ð 'ð 'ñ „[ð'ðR0ð 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0r$   r'   )Ú
__future__r   ÚloggingrY   Údataclassesr   r   Útypingr   r   r   r	   r
   r   r   Úlangchain_core.documentsr   Úlangchain_core.embeddingsr   Úlangchain_core.vectorstoresr   rX   r`   r   Ú	getLoggerrF   r   r'   r#   r$   r%   ú<module>rå      s]  ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø €€€Ø )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ø LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ Là -Ð -Ð -Ð -Ð -Ð -Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3àð 7Ø;Ð;Ð;Ð;Ð;Ð;Ø6Ð6Ð6Ð6Ð6Ð6ð 
ˆÔ	Ñ	Ô	€ð ðð ð ð ð ñ ô ñ „ðð.z	0ð z	0ð z	0ð z	0ð z	0�[ñ z	0ô z	0ð z	0ð z	0ð z	0r$   