
    +#h                         d dl Z  G d de j                        Z G d de j                        Z G d de j                        Z G d d	e j                        Zy)
    Nc                       e Zd ZdZ ej
                         Z ej
                  d      Z ej
                  d      Z ej                  d      Z
y)AnswerCorrectnessSignaturez9Verify that the predicted answer matches the gold answer.zcorrect answer for questiondesczpredicted answer for questionTrue or FalseN)__name__
__module____qualname____doc__dspy
InputFieldquestiongold_answerpredicted_answerOutputField
is_correct     Z/var/www/html/sandstorm/venv/lib/python3.12/site-packages/dspy/evaluate/auto_evaluation.pyr   r      sH    Ct H!$//'DEK&t,KL!!!7Jr   r   c                   $     e Zd Z fdZd Z xZS )AnswerCorrectnessc                 ^    t         |           t        j                  t              | _        y N)super__init__r   ChainOfThoughtr   evaluate_correctnessself	__class__s    r   r   zAnswerCorrectness.__init__   s"    $($7$78R$S!r   c                 *    | j                  |||      S )N)r   r   r   )r   )r   r   r   r   s       r   forwardzAnswerCorrectness.forward   s    (((fv(wwr   r   r	   r
   r   r"   __classcell__r    s   @r   r   r      s    Txr   r   c                       e Zd ZdZ ej
                  d      Z ej
                         Z ej
                  d      Z ej                  d      Z
y)AnswerFaithfulnessSignaturezBVerify that the predicted answer is based on the provided context.z#relevant facts for producing answerr   zoften between 1 and 5 wordsr   N)r   r	   r
   r   r   r   contextr   answerr   is_faithfulr   r   r   r'   r'      sG    Ldoo#HIGt HT__"?@F"$""8Kr   r'   c                   $     e Zd Z fdZd Z xZS )AnswerFaithfulnessc                 ^    t         |           t        j                  t              | _        y r   )r   r   r   r   r'   evaluate_faithfulnessr   s    r   r   zAnswerFaithfulness.__init__   s"    %)%8%89T%U"r   c                 *    | j                  |||      S )N)r(   r   r)   )r.   )r   r(   r   r)   s       r   r"   zAnswerFaithfulness.forward"   s    ))'HU[)\\r   r#   r%   s   @r   r,   r,      s    V]r   r,   )r   	Signaturer   Moduler   r'   r,   r   r   r   <module>r2      sL    8 8x x9$.. 9] ]r   