From 7d9397b35f1a2443844382204bed50418d2de24d Mon Sep 17 00:00:00 2001 From: danyalxahid-askui Date: Fri, 5 Sep 2025 07:35:36 +0200 Subject: [PATCH 1/2] feat(runner, inference_api): integrate `ModelName` for dynamic model selection - Updated `Runner` to use `ModelName.ASKUI` for the custom agent. - Modified `AskUiInferenceApi` to conditionally set the model based on `ModelName.ASKUI`, defaulting to `ModelName.CLAUDE__SONNET__4__20250514` when applicable. --- src/askui/chat/api/runs/runner/runner.py | 2 ++ src/askui/models/askui/inference_api.py | 12 ++++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/askui/chat/api/runs/runner/runner.py b/src/askui/chat/api/runs/runner/runner.py index f21b9d2c..099eed4f 100644 --- a/src/askui/chat/api/runs/runner/runner.py +++ b/src/askui/chat/api/runs/runner/runner.py @@ -35,6 +35,7 @@ from askui.chat.api.runs.runner.events.message_events import MessageEvent from askui.chat.api.runs.runner.events.run_events import RunEvent from askui.custom_agent import CustomAgent +from askui.models.models import ModelName from askui.models.shared.agent_message_param import ( Base64ImageSourceParam, ImageBlockParam, @@ -327,6 +328,7 @@ def _run_agent_inner() -> None: custom_agent = CustomAgent() custom_agent.act( messages, + model=ModelName.ASKUI, on_message=on_message, tools=_tools, settings=ActSettings( diff --git a/src/askui/models/askui/inference_api.py b/src/askui/models/askui/inference_api.py index cd3b1cc7..89feaf0f 100644 --- a/src/askui/models/askui/inference_api.py +++ b/src/askui/models/askui/inference_api.py @@ -20,7 +20,13 @@ from askui.locators.serializers import AskUiLocatorSerializer, AskUiSerializedLocator from askui.logger import logger from askui.models.exceptions import ElementNotFoundError -from askui.models.models import GetModel, LocateModel, ModelComposition, PointList +from askui.models.models import ( + GetModel, + LocateModel, + ModelComposition, + ModelName, + PointList, +) from askui.models.shared.agent_message_param import MessageParam from askui.models.shared.messages_api import MessagesApi from askui.models.shared.settings import MessageSettings @@ -245,7 +251,9 @@ def create_message( ], "tools": tools.to_params() if tools else NOT_GIVEN, "max_tokens": max_tokens or self._settings.messages.max_tokens, - "model": model, + "model": ModelName.CLAUDE__SONNET__4__20250514 + if model == ModelName.ASKUI + else model, "betas": betas if not isinstance(betas, NotGiven) else self._settings.messages.betas, From 1dad1509f508293d3764ceabc9748c8078675327 Mon Sep 17 00:00:00 2001 From: danyalxahid-askui Date: Fri, 5 Sep 2025 08:54:34 +0200 Subject: [PATCH 2/2] feat(runner, inference_api): update model handling in `Runner` and `AskUiInferenceApi` - Set `model` in `Runner` to `ModelName.CLAUDE__SONNET__4__20250514` for improved default behavior. - Simplified model assignment in `AskUiInferenceApi` to directly use the provided `model` parameter, enhancing flexibility for dynamic model selection. --- src/askui/chat/api/runs/runner/runner.py | 1 + src/askui/models/askui/inference_api.py | 12 ++---------- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/src/askui/chat/api/runs/runner/runner.py b/src/askui/chat/api/runs/runner/runner.py index 099eed4f..944b173c 100644 --- a/src/askui/chat/api/runs/runner/runner.py +++ b/src/askui/chat/api/runs/runner/runner.py @@ -333,6 +333,7 @@ def _run_agent_inner() -> None: tools=_tools, settings=ActSettings( messages=MessageSettings( + model=ModelName.CLAUDE__SONNET__4__20250514, system=self._assistant.system or anthropic.NOT_GIVEN, thinking={"type": "enabled", "budget_tokens": 2048}, ), diff --git a/src/askui/models/askui/inference_api.py b/src/askui/models/askui/inference_api.py index 89feaf0f..cd3b1cc7 100644 --- a/src/askui/models/askui/inference_api.py +++ b/src/askui/models/askui/inference_api.py @@ -20,13 +20,7 @@ from askui.locators.serializers import AskUiLocatorSerializer, AskUiSerializedLocator from askui.logger import logger from askui.models.exceptions import ElementNotFoundError -from askui.models.models import ( - GetModel, - LocateModel, - ModelComposition, - ModelName, - PointList, -) +from askui.models.models import GetModel, LocateModel, ModelComposition, PointList from askui.models.shared.agent_message_param import MessageParam from askui.models.shared.messages_api import MessagesApi from askui.models.shared.settings import MessageSettings @@ -251,9 +245,7 @@ def create_message( ], "tools": tools.to_params() if tools else NOT_GIVEN, "max_tokens": max_tokens or self._settings.messages.max_tokens, - "model": ModelName.CLAUDE__SONNET__4__20250514 - if model == ModelName.ASKUI - else model, + "model": model, "betas": betas if not isinstance(betas, NotGiven) else self._settings.messages.betas,