o
    "iA                     @   s*   d dl Z d dlZd dlZG dd dZdS )    Nc                   @   s   e Zd ZdefddZededefddZdefd	d
ZdededdfddZ	dededefddZ
dededee dededefddZdS )RedisCacheRepository	redis_urlc                 C   s   t jj|dd| _d S )NT)decode_responses)redisRedisfrom_urlclient)selfr    r
   I/home/aiteam/pcaa-dev/ai-call-quality-rag/app/repositories/redis_cache.py__init__      zRedisCacheRepository.__init__payloadreturnc                 C   s   t | d S )Nzutf-8)hashlibsha256encode	hexdigest)r   r
   r
   r   _hash   s   zRedisCacheRepository._hashkeyc                 C   s   | j |}|s
d S t|S )N)r   getjsonloads)r	   r   valuer
   r
   r   get_json   s   
zRedisCacheRepository.get_jsonttlNc                 C   s   | j ||tj|td d S )N)default)r   setexr   dumpsstr)r	   r   r   r   r
   r
   r   set_json   s   zRedisCacheRepository.set_json
model_nametextc                 C   s   d| d|  | S )Nzemb::)r   )r	   r!   r"   r
   r
   r   embedding_key   r   z"RedisCacheRepository.embedding_key	tenant_idquerytagstop_kuse_keywordc                 C   s.   t j||t|||ddd}d| | S )N)r%   r&   r'   r(   r)   T)	sort_keyszret:)r   r   sortedr   )r	   r%   r&   r'   r(   r)   r   r
   r
   r   retrieval_key   s   z"RedisCacheRepository.retrieval_key)__name__
__module____qualname__r   r   staticmethodr   r   intr    r$   listboolr,   r
   r
   r
   r   r      s    *r   )r   r   r   r   r
   r
   r
   r   <module>   s    