diff --git a/pyproject.toml b/pyproject.toml index 627d6e5..4fbfe1d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "lmstudio" -version = "1.3.3.dev0" +version = "1.4.0.dev0" description = "LM Studio Python SDK" authors = [ {name = "LM Studio", email = "team@lmstudio.ai"}, diff --git a/src/lmstudio/__init__.py b/src/lmstudio/__init__.py index 2c2b4a7..77b0983 100644 --- a/src/lmstudio/__init__.py +++ b/src/lmstudio/__init__.py @@ -1,6 +1,6 @@ """LM Studio Python SDK.""" -__version__ = "1.3.3.dev0" +__version__ = "1.4.0.dev0" # In addition to publishing the main SDK client API, diff --git a/src/lmstudio/sync_api.py b/src/lmstudio/sync_api.py index b338791..7ef2890 100644 --- a/src/lmstudio/sync_api.py +++ b/src/lmstudio/sync_api.py @@ -1281,6 +1281,7 @@ def act( tools: Iterable[ToolDefinition], *, max_prediction_rounds: int | None = None, + max_parallel_tool_calls: int | None = 1, config: LlmPredictionConfig | LlmPredictionConfigDict | None = None, preset: str | None = None, on_message: Callable[[AssistantResponse | ToolResultMessage], Any] @@ -1351,7 +1352,7 @@ def _wrapped_on_prompt_processing_progress(progress: float) -> None: on_prompt_processing_for_endpoint = _wrapped_on_prompt_processing_progress # Request predictions until no more tool call requests are received in response # (or the maximum number of prediction rounds is reached) - with ThreadPoolExecutor() as pool: + with ThreadPoolExecutor(max_parallel_tool_calls) as pool: for round_index in round_counter: self._logger.debug( "Starting .act() prediction round", round_index=round_index