Skip to content

Commit 43e8d6e

Browse files
authored
Add parallel tool calls (#122)
1 parent 8331a52 commit 43e8d6e

File tree

4 files changed

+1174
-0
lines changed

4 files changed

+1174
-0
lines changed

src/yandex_cloud_ml_sdk/_models/completions/config.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,4 @@ class GPTModelConfig(BaseModelConfig):
3434
reasoning_mode: ReasoningModeType | None = None
3535
response_format: ResponseType | None = None
3636
tools: Sequence[CompletionTool] | CompletionTool | None = None
37+
parallel_tool_calls: bool | None = None

src/yandex_cloud_ml_sdk/_models/completions/model.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from collections.abc import Sequence
66
from typing import TYPE_CHECKING, Any, AsyncIterator, Generic, Iterator, Literal, cast
77

8+
from google.protobuf.wrappers_pb2 import BoolValue
89
from typing_extensions import Self, override
910
from yandex.cloud.ai.foundation_models.v1.text_common_pb2 import CompletionOptions, ReasoningOptions
1011
from yandex.cloud.ai.foundation_models.v1.text_common_pb2 import Tool as ProtoCompletionsTool
@@ -83,13 +84,15 @@ def configure( # type: ignore[override]
8384
reasoning_mode: UndefinedOr[ReasoningModeType] = UNDEFINED,
8485
response_format: UndefinedOr[ResponseType] = UNDEFINED,
8586
tools: UndefinedOr[Sequence[CompletionTool] | CompletionTool] = UNDEFINED,
87+
parallel_tool_calls: UndefinedOr[bool] = UNDEFINED,
8688
) -> Self:
8789
return super().configure(
8890
temperature=temperature,
8991
max_tokens=max_tokens,
9092
reasoning_mode=reasoning_mode,
9193
response_format=response_format,
9294
tools=tools,
95+
parallel_tool_calls=parallel_tool_calls,
9396
)
9497

9598
def _make_completion_options(self, *, stream: bool | None) -> CompletionOptions:
@@ -125,11 +128,16 @@ def _make_request(
125128
if c.tools is not None:
126129
tools = coerce_tuple(c.tools, BaseTool) # type: ignore[type-abstract]
127130

131+
parallel_tool_calls: None | BoolValue = None
132+
if c.parallel_tool_calls is not None:
133+
parallel_tool_calls = BoolValue(value=c.parallel_tool_calls)
134+
128135
return CompletionRequest(
129136
model_uri=self._uri,
130137
completion_options=self._make_completion_options(stream=stream),
131138
messages=messages_to_proto(messages),
132139
tools=[tool._to_proto(ProtoCompletionsTool) for tool in tools],
140+
parallel_tool_calls=parallel_tool_calls,
133141
**response_format_kwargs,
134142
)
135143

0 commit comments

Comments
 (0)