cveval / agents /summary_validation_agent.py
GitLab CI
Deploy from GitLab CI - 6509512f
3f637a5
"""
SummaryValidationAgent - Validates resume/profile claims against experience evidence.
"""
import json
import logging
from agents.base_agent import BaseAgent
from models.schemas import ExperienceAnalysisOutput, SummaryValidationOutput
from prompts.templates import SUMMARY_VALIDATION_PROMPT
logger = logging.getLogger(__name__)
class SummaryValidationAgent(BaseAgent):
def __init__(self, **kwargs):
super().__init__(
name="SummaryValidationAgent",
role=(
"Valider le résumé/profil du CV en confrontant chaque affirmation "
"aux preuves trouvées dans les expériences. Distinguer les affirmations "
"prouvées des déclaratives non étayées."
),
**kwargs,
)
def run(
self,
cv_resume: str,
experience_analysis: ExperienceAnalysisOutput,
) -> SummaryValidationOutput:
"""
Validate the summary/profile section against experience analysis.
Args:
cv_resume: Text of the summary/profile section.
experience_analysis: Results from ExperienceAnalysisAgent.
Returns:
SummaryValidationOutput: Validated analysis results.
"""
logger.info(f"[{self.name}] Starting summary validation...")
exp_json = json.dumps(
experience_analysis.model_dump(),
ensure_ascii=False,
indent=2,
)
prompt = SUMMARY_VALIDATION_PROMPT.format(
cv_resume=cv_resume,
experience_analysis=exp_json[:6000],
)
result = self._call_llm_with_retry(prompt, SummaryValidationOutput)
logger.info(
f"[{self.name}] Validation complete. "
f"Resume score: {result.score_resume}/10, "
f"Claims proven: {result.taux_affirmations_prouvees}%"
)
return result