
    iA0                     B
   S SK rS SKrS SKrS SKrSSK7  S SKJr  S SK7  S SK	7  S SK
JrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJr  S\ \!\"4-  r#\RH                  " \%5      r&\RN                  " \(5        \RR                  " \*5        \RV                  " \,5        \RZ                  " \.5        \R^                  " \05        \Rb                  " \25        \Rf                  " \45        \Rj                  " \65        \Rn                  " \85        \Rr                  " \:SS9  \Rr                  " \;S	S9  \Rr                  " \<S	S	S
9  \Rz                  " \>5        \R~                  " \@5        \R~                  " \A5        \R                  " \C5        \R                  " \E5        \R                  " \G5        \R                  " \I5        \R                  " \K5      rK\R                  \%   rM\N" \M5       GH  rO\P" \M\O5      rQ\R                  " \Q5      (       d  M&  \QrS\T" \S\U5      (       a  \R                  " \S5        \T" \S\W5      (       a  \R                  " \S5        \T" \S\Y5      (       a  \R                  " \S5        \T" \S\[5      (       a  \R                  " \S5        \T" \S\]5      (       d  \T" \S\^5      (       a  \R                  " \S5        \T" \S\`5      (       a  \R                  " \S5        \T" \S\b5      (       d  GM  \R                  " \S5        GM     S rdS reS rfS rgS rhS\i" 5       ;   a-  \d" \jS5        \d" \kS5        \d" \lS5        \d" \mS5        \d" \nS5        \d" \oS 5        \d" \pS 5        \d" \qS S/S /S.5        \f" \qSS 5        \d" \rS 5        \d" \sS 5        \d" \tS 5        \d" \uS 5        \d" \vS 5        \d" \wS 5        \d" \xS 5        \d" \yS 5        \g" \yS5        \d" \zS 5        \d" \{S 5        \d" \|S 5        \d" \]S 5        \d" \^S 5        \d" \}S 5        \d" \~S 5        \d" \S 5        \f" \SS 5        \f" \SS 5        \d" \S /S /S.5        \d" \SS S/05        \d" \S 5        \d" \S 5        \d" \S 5        \d" \S 5        \f" \SS 5        \f" \SS 5        \d" \S 5        \d" \S 5        \d" \S 5        \d" \\" S5      5        \d" \\" S5      5        \d" \\" S5      5        \d" \\" S5      5        \d" \\" S5      5        \d" \\" S5      5        \rS S jr\rS S jr\r\r\r\rS!S jrS!S jrS rS r " S S5      rg)"    N   )*)class_wrappers)kminkmaxpairwise_distancesrandrandintlrandrandnrand_smooth_vectorseval_intersectionnormalize_L2
ResultHeapknnKmeanschecksummatrix_bucket_sort_inplacebucket_sortmerge_knn_resultsMapInt64ToInt64knn_hammingpack_bitstringsunpack_bitstringsz%d.%d.%dT)
class_ownsF)r   force_int64c                 |   ^^ U R                   mUU4S jnUU4S jn[        T5      [        :X  a  X0l         g X l         g )Nc                 .   > T" U /UQ76   UT   /U l         g Nreferenced_objects)selfargsoriginal_initparameter_nos     ^/home/dmtnaga/Documents/work/airagagent/rag_env/lib/python3.13/site-packages/faiss/__init__.pyreplacement_init0add_ref_in_constructor.<locals>.replacement_initj   s     d"T"#'#5"6    c                 r   > T" U /UQ76   T[        U5         nU Vs/ s H  o1U   PM	     snU l        g s  snf r   )lenr!   )r"   r#   psetnor$   r%   s       r&   replacement_init_multiple9add_ref_in_constructor.<locals>.replacement_init_multiplen   s:    d"T"CI&6:";d8d";";s   4)__init__typedict)	the_classr%   r'   r.   r$   s    `  @r&   add_ref_in_constructorr4   e   s5     &&M7<
 LT!6-r)   c                 n    [        U S5      (       d	  U/U l        g U R                  R                  U5        g Nr!   )hasattrr!   append)r"   refs     r&   add_to_referenced_objectsr:   y   s.    4-..#&%&&s+r)   c                 D   ^^ [        X5      mUU4S jn[        XU5        g )Nc                 6   > UT   n[        X5        T" U /UQ76 $ r   )r:   )r"   r#   r9   original_methodr%   s      r&   replacement_method-add_ref_in_method.<locals>.replacement_method   s%    < !$,t+d++r)   getattrsetattr)r3   method_namer%   r>   r=   s     ` @r&   add_ref_in_methodrD      s    i5O, I$67r)   c                 D   ^ [        X5      mSU4S jjn[        XU5        g )Nc                    > U(       d6  [        U S5      (       d	  U/U l        O6U R                  R                  U5        OUR                  R	                  5         T" XU5      $ r6   )r7   r!   r8   thisdisown)r"   r9   ownr=   s      r&   r>   :add_ref_in_method_explicit_own.<locals>.replacement_method   sO    4!566+.%'''..s3 HHOOt#..r)   )Fr@   )r3   rC   r>   r=   s      @r&   add_ref_in_method_explicit_ownrK      s    i5O	/ I$67r)   c                 V   ^^ [        [        U 5      mUU4S jn[        [        X5        g )Nc                  ,   > T" U 6 nU T   nU/Ul         U$ r   r    )r#   resultr9   original_functionr%   s      r&   replacement_function1add_ref_in_function.<locals>.replacement_function   s&    "D)< %(E!r)   )rA   this_modulerB   )function_namer%   rP   rO   s    ` @r&   add_ref_in_functionrT      s!    ];
 K=r)   GPU)   r   prepend_transform
replace_vt	add_shardrV   addIndex   c                    [         R                  " USS9nUR                  u  pVX`R                  :X  d   eU(       d7  [	        5       n[        U 5      nUR                  Ul        UR                  Ul        [         R                  " SS5      n[         R                  " SS5      n	[         R                  " XR4[         R                  S9n
[         R                  " XR4[         R                  S9n[        X[        U5      U[        U
5      [        U5      U[        U5      [        U	5      5	        U(       d  X4$ US   U	S   U	S   U	S   S	.nXU4$ )
Nfloat32dtyper   uint64r[   float64r   rV   ndispre_transform_mscoarse_quantizer_msinvlist_scan_ms)npascontiguousarrayshapedIVFSearchParametersextract_index_ivfnprobe	max_codesemptyr]   int64search_with_parameters_cswig_ptr)indexxkparamsoutput_statsnrj   	index_ivfnb_disms_per_stage	distanceslabelsstatss                r&   search_with_parametersr      s   
Qi0A77DA<<$&%e,	!(($..XXa"F88Ay)L!rzz2IXXqfBHH-F(1+	8I (<"8	    1I ,Q#/?+A	
 %''r)   c                    [         R                  " USS9nUR                  u  pVX`R                  :X  d   eU(       d7  [	        5       n[        U 5      nUR                  Ul        UR                  Ul        [         R                  " SS5      n[         R                  " SS5      n	[        U5      n
[        X[        U5      X*U[        U5      [        U	5      5        [        U
R                  US-   5      R                  5       n[        US   5      n[        U
R                   U5      R                  5       n[        U
R"                  U5      R                  5       nU(       d  XU4$ US   U	S   U	S   U	S	   S
.nXX4$ )Nr]   r^   r   r`   r[   ra   r   rV   rb   )rg   rh   ri   rj   rk   rl   rm   rn   ro   RangeSearchResultrange_search_with_parameters_crr   rev_swig_ptrlimscopyintr|   r}   )rs   rt   radiusrv   rw   rx   rj   ry   rz   r{   resr   ndDoutIoutr~   s                   r&   range_search_with_parametersr     sJ   
Qi0A77DA<<$&%e,	!(($..XXa"F88Ay)L
A
C"(1+ (<"8
 !a%(--/D	T"XBr*//1D

B',,.D4 1I ,Q#/?+A	
 4&&r)   c                 X    [        5       n[        XU5        [        UR                  5      $ z)convert an index to a numpy uint8 array  )VectorIOWriterwrite_indexvector_to_arraydata)rs   io_flagswriters      r&   serialize_indexr   :  s#    Fx(6;;''r)   c                 V    [        5       n[        XR                  5        [        X!5      $ r   )VectorIOReadercopy_array_to_vectorr   
read_index)r   r   readers      r&   deserialize_indexr   A  s!    F{{+f''r)   c                 V    [        5       n[        X5        [        UR                  5      $ r   )r   write_index_binaryr   r   )rs   r   s     r&   serialize_index_binaryr   G  s!    Fu%6;;''r)   c                 V    [        5       n[        XR                  5        [        U5      $ r   )r   r   r   read_index_binary)r   r   s     r&   deserialize_index_binaryr   N  s!    F{{+V$$r)   c                   .    \ rS rSrS\4S jrS rS rSrg)TimeoutGuardiT  timeout_in_secondsc                     Xl         g r   timeout)r"   r   s     r&   r0   TimeoutGuard.__init__U  s    )r)   c                 B    [         R                  U R                  5        g r   )TimeoutCallbackresetr   )r"   s    r&   	__enter__TimeoutGuard.__enter__X  s    dll+r)   c                 ,    [         R                  5         g r   )PythonInterruptCallbackr   )r"   exc_type	exc_value	tracebacks       r&   __exit__TimeoutGuard.__exit__[  s    %%'r)   r   N)	__name__
__module____qualname____firstlineno__floatr0   r   r   __static_attributes__ r)   r&   r   r   T  s    *5 *,(r)   r   )NF)r   )numpyrg   loggingsysinspectloaderfaissr   faiss.gpu_wrappersfaiss.array_conversionsfaiss.extra_wrappersr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   FAISS_VERSION_MAJORFAISS_VERSION_MINORFAISS_VERSION_PATCH__version__	getLoggerr   loggerhandle_Clustering
Clusteringhandle_Clustering1DClustering1Dhandle_MatrixStatsMatrixStatshandle_IOWriterIOWriterhandle_IOReaderIOReaderhandle_AutoTuneCriterionAutoTuneCriterionhandle_ParameterSpaceParameterSpace
handle_NSGIndexNSGhandle_MapLong2LongMapLong2Longhandle_IDSelectorSubsetIDSelectorBatchIDSelectorArrayIDSelectorBitmaphandle_CodeSetCodeSethandle_Tensor2DTensor2DInt32Tensor2Dhandle_Embedding	Embeddinghandle_LinearLinearhandle_QINCoQINCohandle_QINCoStep	QINCoStep handle_shard_ivf_index_centroidsshard_ivf_index_centroidsmodulesrR   dirsymbolrA   objisclassr3   
issubclassIndexhandle_IndexIndexBinaryhandle_IndexBinaryVectorTransformhandle_VectorTransform	Quantizerhandle_QuantizerIndexRowwiseMinMaxIndexRowwiseMinMaxFP16handle_IndexRowwiseMinMaxSearchParametershandle_SearchParameters
CodePackerhandle_CodePackerr4   r:   rD   rK   rT   get_compile_optionsGpuIndexIVFFlatGpuIndexBinaryFlatGpuIndexFlatGpuIndexIVFPQGpuIndexIVFScalarQuantizerIndexIVFFlatIndexIVFFlatDedupIndexPreTransform
IndexIVFPQIndexIVFPQRIndexIVFPQFastScanIndexIVFResidualQuantizerIndexIVFLocalSearchQuantizer!IndexIVFResidualQuantizerFastScan$IndexIVFLocalSearchQuantizerFastScanIndexIVFSpectralHashIndex2LayerLevel1QuantizerIndexIVFScalarQuantizer
IndexIDMapIndexIDMap2	IndexHNSWIndexShardsIndexBinaryShardsIndexRefineFlatIndexRefineIndexBinaryIVFIndexBinaryFromFloatIndexBinaryIDMapIndexBinaryIDMap2IndexReplicasIndexBinaryReplicasBufferedIOWriterBufferedIOReaderIDSelectorNotIDSelectorAndsliceIDSelectorOrIDSelectorXOrIDSelectorTranslatedIndexIVFIndependentQuantizerr   rq   r   r   
IndexProxyHStackInvertedListsConcatenatedInvertedListsIndexResidualQuantizerIndexResidualSearchParametersIVFrk   r   r   r   r   r   r   r)   r&   <module>r6     s5     
   !   %' ' ' ' ' ' ///1 1 
		8	$      ,  " "< 0  ! !+ .   x (   x (  ' '(9 :  $ $^ 4   ( #  " "< 0  & &4 H  & &5 I  & &'7EW\ ]   g &   x (   } -   	 *   V $   E "   	 **KKLef  kk(# +F
+v
&Cs	i''''	2i----i8i1111)<i++++I6i!3449&<==44Y?i!122229=i,,,,Y73 N.(,88"	> 	!!?A.-q1<+=!,5q9 |Q ' (! , (q!f!*= > #%8! < z1 % {A & )1 - 0! 4 3Q 7 8! < ;Q ? +Q / 3\ B {A &  * . 2 )1 - -q 1 z1 % {A & y! $ +{A . #[! 4 QCQC(8 9 {QAK 0 ~q ) +Q / ' + (! , -Q / %z1 5 ' + ' + }a ( }eAh / |U1X . }eAh / +U1X 6 }eAh / 3U1X > 2 (@ "> 'H 
/ &) (((%( (r)   