§
    ÙìNgÑ  ã                   óV   — d dl mZ d dlZd dlmZ d dlmZmZ d
d„Z	d
d„Z
d
d„Zd
d	„ZdS )é    )ÚListN)Úmodels)Úreciprocal_rank_fusionÚdistribution_based_score_fusionÚreturnc            	      óR  — t          j        ddd¬¦  «        t          j        ddd¬¦  «        t          j        ddd¬¦  «        gt          j        d	d
d¬¦  «        t          j        ddd¬¦  «        t          j        ddd¬¦  «        t          j        ddd¬¦  «        gg} t          | ¦  «        }|d         j        dk    sJ ‚|d         j        dv sJ ‚t	          j        |d         j        d¦  «        sJ ‚|d         j        dv sJ ‚t	          j        |d         j        d¦  «        sJ ‚d S )NÚ1çš™™™™™¹?é   ©ÚidÚscoreÚversionÚ2çš™™™™™É?Ú3ç333333Ó?Ú5g      (@Ú6g       @Ú7g      @g      @r   )r	   r   ç      à?é   )r   ÚScoredPointr   r   ÚnpÚiscloser   ©Ú	responsesÚfuseds     ú_/var/www/html/ai-engine/env/lib/python3.11/site-packages/qdrant_client/hybrid/test_reranking.pyÚtest_reciprocal_rank_fusionr    	   s@  € õ Ô #¨S¸!Ð<Ñ<Ô<ÝÔ #¨S¸!Ð<Ñ<Ô<ÝÔ #¨S¸!Ð<Ñ<Ô<ð	
õ Ô #¨T¸1Ð=Ñ=Ô=ÝÔ #¨S¸!Ð<Ñ<Ô<ÝÔ #¨S¸!Ð<Ñ<Ô<ÝÔ #¨S¸!Ð<Ñ<Ô<ð		
ð€Iõ # 9Ñ-Ô-€EàŒ8Œ;˜#ÒÐÐÐØŒ8Œ;˜*Ð$Ð$Ð$Ð$ÝŒ:e˜A”h”n eÑ,Ô,Ð,Ð,Ð,ØŒ8Œ;˜*Ð$Ð$Ð$Ð$ÝŒ:e˜A”h”n eÑ,Ô,Ð,Ð,Ð,Ð,Ð,ó    c            
      ó  — t          j        ddd¬¦  «        t          j        ddd¬¦  «        t          j        ddd¬¦  «        gt          j        ddd¬¦  «        t          j        ddd	¬¦  «        t          j        d
dd¬¦  «        t          j        ddd¬¦  «        t          j        ddd¬¦  «        gg} t          | d¬¦  «        }|d         j        dk    sJ ‚|d         j        dk    sJ ‚|d         j        d
k    sJ ‚d S )Nr   r   ç     @U@©r   r   r   ç      S@é   ç      Q@g      O@g     €N@é   g     €L@é   g     €I@r   g      F@©Úlimit)r   r   r   r   r   s     r   Ú$test_distribution_based_score_fusionr,   !   s  € õ Ô !¨Q°dÐ;Ñ;Ô;ÝÔ !¨Q°dÐ;Ñ;Ô;ÝÔ !¨Q°dÐ;Ñ;Ô;ð	
õ Ô !¨Q°dÐ;Ñ;Ô;ÝÔ !¨Q°dÐ;Ñ;Ô;ÝÔ !¨Q°dÐ;Ñ;Ô;ÝÔ !¨Q°dÐ;Ñ;Ô;ÝÔ !¨Q°dÐ;Ñ;Ô;ð	
ð€Iõ ,¨I¸QÐ?Ñ?Ô?€EàŒ8Œ;˜!ÒÐÐÐØŒ8Œ;˜!ÒÐÐÐØŒ8Œ;˜!ÒÐÐÐÐÐr!   c                  ó"  — g g} t          | ¦  «        }|g k    sJ ‚t          j        ddd¬¦  «        t          j        ddd¬¦  «        t          j        ddd¬¦  «        gg g} t          | ¦  «        }|d	         j        dk    sJ ‚t	          j        |d	         j        d
¦  «        sJ ‚|d         j        dk    sJ ‚t	          j        |d         j        d¦  «        sJ ‚|d         j        dk    sJ ‚t	          j        |d         j        d¦  «        sJ ‚d S )Nr	   r
   r   r   r   r   r   r   r   r   gUUUUUUÕ?r   g      Ð?)r   r   r   r   r   r   r   r   s     r   Ú+test_reciprocal_rank_fusion_empty_responsesr.   8   s)  € Ø13°€IÝ" 9Ñ-Ô-€EØBŠ;ˆ;ˆ;ˆ;õ Ô #¨S¸!Ð<Ñ<Ô<ÝÔ #¨S¸!Ð<Ñ<Ô<ÝÔ #¨S¸!Ð<Ñ<Ô<ð	
ð
 	ð€Iõ # 9Ñ-Ô-€EàŒ8Œ;˜#ÒÐÐÐÝŒ:e˜A”h”n eÑ,Ô,Ð,Ð,Ð,ØŒ8Œ;˜#ÒÐÐÐÝŒ:e˜A”h”n eÑ,Ô,Ð,Ð,Ð,ØŒ8Œ;˜#ÒÐÐÐÝŒ:e˜A”h”n eÑ,Ô,Ð,Ð,Ð,Ð,Ð,r!   c                  ó^  — g g} t          | d¬¦  «        }|g k    sJ ‚t          j        ddd¬¦  «        t          j        ddd¬¦  «        t          j        ddd	¬¦  «        gg g} t          | d¬¦  «        }|d         j        dk    sJ ‚|d         j        dk    sJ ‚|d
         j        dk    sJ ‚d S )Nr)   r*   r   r   r#   r$   r%   r&   r'   r   )r   r   r   r   r   s     r   Ú3test_distribution_based_score_fusion_empty_responser0   P   sÙ   € Ø13°€IÝ+¨I¸QÐ?Ñ?Ô?€EØBŠ;ˆ;ˆ;ˆ;õ Ô !¨Q°dÐ;Ñ;Ô;ÝÔ !¨Q°dÐ;Ñ;Ô;ÝÔ !¨Q°dÐ;Ñ;Ô;ð	
ð
 	ð€Iõ ,¨I¸QÐ?Ñ?Ô?€EàŒ8Œ;˜!ÒÐÐÐØŒ8Œ;˜!ÒÐÐÐØŒ8Œ;˜!ÒÐÐÐÐÐr!   )r   N)Útypingr   Únumpyr   Úqdrant_client.httpr   Úqdrant_client.hybrid.fusionr   r   r    r,   r.   r0   © r!   r   ú<module>r6      s§   ðØ Ð Ð Ð Ð Ð à Ð Ð Ð à %Ð %Ð %Ð %Ð %Ð %Ø _Ð _Ð _Ð _Ð _Ð _Ð _Ð _ð-ð -ð -ð -ð0ð ð ð ð.-ð -ð -ð -ð0ð ð ð ð ð r!   