
    Q
i                     ~    d Z ddlmZmZmZmZmZ ddlmZm	Z	m
Z
mZ ddlmZmZ ddlmZmZmZ  G d de          ZdS )	zSchema definitions for embeddings cache in RedisVL.

This module defines the Pydantic models used for embedding cache entries and
related data structures.
    )AnyDictListOptionalUnion)	BaseModel
ConfigDictFieldmodel_validator)EMBEDDING_FIELD_NAMEMETADATA_FIELD_NAME)current_timestampdeserialize	serializec                   \   e Zd ZU dZ ed          Zeed<   	 ee	ef         ed<   	 eed<   	 e
e         ed<   	  ee          Zeed	<   	  ed
          Zeeeef                  ed<   	  ed          edeeef         deeef         fd                        Zdeeef         fdZd
S )
CacheEntryz Embedding cache entry data model )protected_namespacesentry_idcontent
model_name	embedding)default_factoryinserted_atN)defaultmetadatabefore)modevaluesreturnc                 2   t           |v rBt          |t                    t                    r"t          |t                              |t           <   t          |v rBt          |t                   t                    r"t          |t                             |t          <   |S )N)r   
isinstancestrr   r   )clsr   s     C:\Users\Dell Inspiron 16\Desktop\tws\AgrotaPowerBi\back-agrota-powerbi\mcp-client-agrota\venv\Lib\site-packages\redisvl/extensions/cache/embeddings/schema.pydeserialize_cache_entryz"CacheEntry.deserialize_cache_entry!   s     &((Z&'.
 .
( +6f=P6Q*R*RF&'6))j'(#/
 /
) ,7v>R7S+T+TF'(    c                     |                      d          }t          | j                  |t          <   | j        t          | j                  |t
          <   |S )z3Convert the cache entry to a dictionary for storageT)exclude_none)
model_dumpr   r   r   r   r   )selfdatas     r%   to_dictzCacheEntry.to_dict1   sL    D11%.t~%>%>!"=$(1$-(@(@D$%r'   )__name__
__module____qualname____doc__r	   model_configr#   __annotations__r   bytesr   floatr
   r   r   r   r   r   r   r   classmethodr&   r-   r   r'   r%   r   r      s6        **:2666LMMM 5#:%OOO.E{-/@AAAKAAA<).t)<)<)<HhtCH~&<<<5_(###T#s(^ S#X    [ $#c3h      r'   r   N)r1   typingr   r   r   r   r   pydanticr   r	   r
   r   redisvl.extensions.constantsr   r   redisvl.utils.utilsr   r   r   r   r   r'   r%   <module>r;      s     4 3 3 3 3 3 3 3 3 3 3 3 3 3 B B B B B B B B B B B B R R R R R R R R I I I I I I I I I I( ( ( ( ( ( ( ( ( (r'   