-
Notifications
You must be signed in to change notification settings - Fork 20
feat: add support for input overrides for multimodal evals #1101
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
cd8bf89 to
9533f66
Compare
Updated the input override deep merge logic to be truly recursive, handling nested dictionaries at any depth. Previously only merged one level deep. Added 9 new tests covering edge cases including multiple nesting levels, type replacements, empty dicts, lists, None values, and immutability guarantees. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
|
LGTM, can we add some E2E testcases as well, please ? Here is an example 32cabaf |
4281ea4 to
452d38c
Compare
Fixed two mypy errors: 1. Added type parameters to deep_merge function signature - Changed from `def deep_merge(base: dict, override: dict) -> dict:` - To: `def deep_merge(base: dict[str, Any], override: dict[str, Any]) -> dict[str, Any]:` 2. Added type annotation and import to test file - Added `from typing import Any` import - Added explicit type annotation to original_inputs variable All mypy checks now pass successfully. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
| """ | ||
| self.model_settings_override = settings | ||
|
|
||
| def set_input_overrides(self, overrides: dict[str, Any]) -> None: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Chibionos let's get rid of this configurable factory, as we previously talked
| logger.error(f"Failed to create temporary entrypoint file: {e}") | ||
| return None | ||
|
|
||
| def apply_input_overrides( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
please don't add this here. it's got nothing to do with a factory. this should just override the inputs from the eval item
Summary
_ConfigurableFactoryto handle file path overrides for multimodal inputs (images, audio, video, documents)_Runtimeto resolve and validate file paths during eval executionChanges
src/uipath/_cli/_evals/_configurable_factory.py(+70 lines): Added_resolve_file_path_overridesmethod to handle multimodal input overridessrc/uipath/_cli/_evals/_runtime.py(+19 lines): Integrated file path resolution into the runtime execution flowsrc/uipath/_cli/cli_eval.py(+10 lines): Extended CLI to support input overrides parametertests/cli/eval/test_configurable_factory.py(+157 lines): Unit tests for file path override logictests/cli/eval/test_input_overrides_e2e.py(+310 lines, new): E2E tests covering various override scenariosTest plan
_ConfigurableFactoryoverride resolution🤖 Generated with Claude Code