diff options
| author | Oscar Wan <oscarwan@stanford.edu> | 2026-07-24 20:45:42 -0700 |
|---|---|---|
| committer | Oscar Wan <oscarwan@stanford.edu> | 2026-07-24 20:45:42 -0700 |
| commit | 15efc30e9e7179accd30375d3edb2e34a3b4dc5f (patch) | |
| tree | ba1c49eb128e7906ba451141723d763e1dcda53a /src/gap_pipeline/models.py | |
| parent | 708f2af9c6985e9cb5cd53e434a7d3b8dfa2b4ac (diff) | |
updated generation process
Diffstat (limited to 'src/gap_pipeline/models.py')
| -rw-r--r-- | src/gap_pipeline/models.py | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/gap_pipeline/models.py b/src/gap_pipeline/models.py index 6fab32f..9b0f214 100644 --- a/src/gap_pipeline/models.py +++ b/src/gap_pipeline/models.py @@ -2,11 +2,12 @@ from __future__ import annotations +import json import re from datetime import datetime, timezone from typing import Any, Literal -from pydantic import BaseModel, ConfigDict, Field, model_validator +from pydantic import BaseModel, ConfigDict, Field, field_validator, model_validator SCHEMA_VERSION = "gap-prompt-faithful-v1" @@ -194,6 +195,20 @@ class JudgeVerdict(StrictModel): blocking_issues: str = "" patch_suggestion: str = "" + @field_validator( + "step_by_step_check", + "blocking_issues", + "patch_suggestion", + mode="before", + ) + @classmethod + def normalize_text_fields(cls, value: Any) -> str: + if value is None: + return "" + if isinstance(value, str): + return value + return json.dumps(value, ensure_ascii=False, sort_keys=True) + @model_validator(mode="after") def validate_verdict(self) -> "JudgeVerdict": if self.verdict == "accept" and self.blocking_issues.strip(): |
