
    +#h
                     l    d dl Zd dlZd dlZ	 d dlmZ d dl	m
Z
 ddZe
fdZe
fdZy# e$ r eZY w xY w)    N)display)EMc           	         g }t        j                   |      D ]_  }|j                  } | |      }t        |      }t        j                  |j
                  |j                        |d<   |j                  |       a t        j                  |      }t        d|d   j                         z  t        |      z  d      }	t        d|d   j                          dt        |       d|	 d       |d   j                  d       |d<   d t        j                  j                   _        t%        |j&                  j)                  d	d
gddd
gdg             y )Ncorrect      Y@   	Answered  /  (%) correctly.c                     | rdS dS Nu   ✔️u   ❌ xs    Q/var/www/html/sandstorm/venv/lib/python3.12/site-packages/dsp/evaluation/utils.py<lambda>z#evaluateRetrieval.<locals>.<lambda>       a( U     thz
text-alignleftselectorpropstd)tqdmquestiondictdsppassage_matchcontextanswerappendpd	DataFrameroundsumlenprintapplyoptionsr   max_colwidthipython_displaystyleset_table_styles)
fndevmetricdataexampler   
predictionddf
percentages
             r   evaluateRetrievalr:      s=   D99S> ##\
M ))**<*<gnnM)A 
d	Bur)}0022SX=qAJ	Ibm'')*#c#hZr*]
STyM''(JKByM&*BJJ#BHH--DLbKc/dsw  DZ  C[  g\  /]  ^  _r   c           	         g }t        j                   |      D ]Y  }|j                  } | |      }t        |      }|j                  }||d<    |||j                        |d<   |j	                  |       [ t        j                  |      }	t        d|	d   j                         z  t        |      z  d      }
t        d|	d   j                          dt        |       d|
 d       |	d   j                  d	       |	d<   d t
        j                  j                  _        t        |	j                   j#                  d
dgdddgdg             y )Nr6   r   r   r   r	   r
   r   r   c                     | rdS dS r   r   r   s    r   r   z evaluateAnswer.<locals>.<lambda>8   r   r   r   r   r   r   r   r   r   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r   r-   r.   r/   r0   r1   r2   r3   r4   r5   r   r6   r7   predr8   r9   s              r   evaluateAnswerr@   %   sC   D99S> 
##\
M  ,dGNN3)A
 
d	Bur)}0022SX=qAJ	Ibm'')*#c#hZr*]
STyM''(JKByM&*BJJ#BHH--DLbKc/dsw  DZ  C[  g\  /]  ^  _r   c           	         g }t        j                   |      D ]O  }|j                  } | |      }t        |      }|}||d<    |||j                        |d<   |j	                  |       Q t        j                  |      }	t        d|	d   j                         z  t        |      z  d      }
t        d|	d   j                          dt        |       d|
 d       |	d   j                  d	       |	d<   d t
        j                  j                  _        t        |	j                   j#                  d
dgdddgdg             |
S )Nr6   r   r   r   r	   r
   r   r   c                     | rdS dS r   r   r   s    r   r   zevaluate.<locals>.<lambda>R   r   r   r   r   r   r   r=   r>   s              r   evaluaterC   ?   sC   D99S> 
##\
M,dGNN3)A
 
d	Bur)}0022SX=qAJ	Ibm'')*#c#hZr*]
STyM''(JKByM&*BJJ#BHH--DLbKc/dsw  DZ  C[  g\  /]  ^  _r   )N)pandasr%   r   r    IPython.displayr   r.   ImportErrorr*   	dsp.utilsr   r:   r@   rC   r   r   r   <module>rH      sM      
: _. $& _4   m  Os   ) 33