Skip to content

Commit 1c266ae

Browse files
chore: add pydantic model for VisualValidationMetadata
1 parent 6d961f8 commit 1c266ae

3 files changed

Lines changed: 17 additions & 16 deletions

File tree

src/askui/models/shared/settings.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,12 @@ class CacheFailure(BaseModel):
179179
failure_count_at_step: int
180180

181181

182+
class VisualValidationMetadata(BaseModel):
183+
enabled: bool
184+
method: CACHING_VISUAL_VERIFICATION_METHOD
185+
region_size: int
186+
187+
182188
class CacheMetadata(BaseModel):
183189
"""Metadata for a cache file including execution history and validation state.
184190
@@ -204,7 +210,7 @@ class CacheMetadata(BaseModel):
204210
failures: list[CacheFailure] = Field(default_factory=list)
205211
is_valid: bool = True
206212
invalidation_reason: str | None = None
207-
visual_validation: dict[str, Any] | None = None
213+
visual_validation: VisualValidationMetadata | None = None
208214

209215

210216
class CacheFile(BaseModel):

src/askui/speaker/cache_executor.py

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -431,14 +431,10 @@ def _activate_from_context(
431431
if self._skip_visual_validation:
432432
self._visual_validation_enabled = False
433433
logger.info("Visual validation disabled by execution settings")
434-
elif visual_validation_config and visual_validation_config.get("enabled"):
434+
elif visual_validation_config and visual_validation_config.enabled:
435435
self._visual_validation_enabled = True
436-
self._visual_validation_method = visual_validation_config.get(
437-
"method", "phash"
438-
)
439-
self._visual_validation_region_size = visual_validation_config.get(
440-
"region_size", 100
441-
)
436+
self._visual_validation_method = visual_validation_config.method
437+
self._visual_validation_region_size = visual_validation_config.region_size
442438
logger.info(
443439
"Visual validation enabled (method=%s, threshold=%d)",
444440
self._visual_validation_method,

src/askui/utils/caching/cache_manager.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
CacheFile,
1919
CacheMetadata,
2020
CacheWritingSettings,
21+
VisualValidationMetadata,
2122
)
2223
from askui.models.shared.tools import ToolCollection
2324
from askui.utils.caching.cache_parameter_handler import CacheParameterHandler
@@ -634,15 +635,13 @@ def _generate_cache_file(
634635
cache_file_path: Path to write cache file
635636
"""
636637
# Prepare visual validation metadata
637-
visual_validation_metadata: dict[str, Any] | None = None
638+
visual_validation_metadata: VisualValidationMetadata | None = None
638639
if self._cache_writer_settings.visual_verification_method != "none":
639-
visual_validation_metadata = {
640-
"enabled": True,
641-
"method": self._cache_writer_settings.visual_verification_method,
642-
"region_size": (
643-
self._cache_writer_settings.visual_validation_region_size
644-
),
645-
}
640+
visual_validation_metadata = VisualValidationMetadata(
641+
enabled=True,
642+
method=self._cache_writer_settings.visual_verification_method,
643+
region_size=self._cache_writer_settings.visual_validation_region_size,
644+
)
646645

647646
cache_file = CacheFile(
648647
metadata=CacheMetadata(

0 commit comments

Comments
 (0)