
    וg                         d dl mZmZmZmZ d dlmZ d dlmZm	Z	m
Z
 d dlmZmZ d dlZd dlZdefdZded	ed
efdZd Zded
efdZy)    )COLLECTIONS_CATEGORIESSTATUS_SERVER_PRODUCTSSTATUS_SERVER_PRODUCTS_UPDATINGCOLLECTIONS_CATEGORIES_BACKUP)modelo_vector)vectoresvectors_nameprocesar_colecciones)find_allfind_status_server_productNpreguntac                 &   d}g }t        |       }|D ];  \  }}|dkD  s||j                  dz   z  }|j                  |j                  d          = t	        |      dkD  rt        j                  ||d         }|S t        j                  dd      }|S N g      ?

	namespacer   	contenido	documento	ADICIONAL)r   page_contentappendmetadatalenr   RespuestaPgVector)r   r   titulosdocsr   puntajemodelos          =/opt/lhia/marcimex/python/app/langchain_lhia/milvus_vector.pypregunta_milvusrr!      s    IG	(	D" <	73;y--f44INN9--k:;< 7|A~009wWXzZ M 002TM    question
collectionamountc                 @   d}g }t        | ||      }|D ];  \  }}|dkD  s||j                  dz   z  }|j                  |j                  d          = t	        |      dkD  r't        |       t        j                  ||d         }|S t        j                  dd      }|S r   )r	   r   r   r   r   printr   r   )	r#   r$   r%   r   r   r   r   r   r   s	            r    question_milvusrr(      s    IG	hz&	1D" <	73;y--f44INN9--k:;< 7|A~g009wWXzZ M 002TMr"   c                     	 t        j                  | j                        }t        j                  |d      }|j                  dd      }|j                  dd      }|S # t        t        f$ r | j                  cY S w xY w)NF)ensure_ascii'r   ")astliteral_evalr   jsondumpsreplace
ValueErrorSyntaxError)r   dict_objjson_objjson_simplejson_simple2s        r    process_jsonr8   '   sw    &##I$:$:;::hU;&&sB/"**34$ &%%%&s   AA A<;A<c                 B   t         }t        t              }|r|d   }|t         k(  rt        t              }nt        t
              }|D cg c]  }t        |d          }}d}g }t        || |      }	g }
|	D ]  }|
j                  |        t        |
d d      }|D ]:  \  }}|dkD  s|t        |      dz   z  }|j                  |j                  d	          < t        |      d
kD  rt        j                  ||d
         }|S t        j                  dd      }|S c c}w )Nstatus_idr   c                     | d   S )N    )xs    r    <lambda>z%question_milvusr_v2.<locals>.<lambda>F   s
    AaD r"   T)keyreverseg?r   r   r   r   r   )r   r   r   r   r   r   strr
   extendsortedr8   r   r   r   r   r   )r#   r%   status_serverdataStatusServer
categoriescategorycoleccionesr   r   datar   sublist
docs_orderr   r   r   s                   r    question_milvusr_v2rN   2   s6   3M12HI(2 77;<
45
 9CCH3x'CKCIGXv>DD G.$?J( <	7S=i0699INN9--k:;< 7|A~009wWXzZ M 002TM! Ds   	D)app.constantsr   r   r   r   
app.modelsr   6app.langchain_lhia.funciones_langchain.filtro_vectoresr   r	   r
   app.db_mongo.list_collectionr   r   r/   r-   rC   r!   intr(   r8   rN   r>   r"   r    <module>rT      sa    G  G $ o o L  
c c S   & S r"   