Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
20cc201
[VoiceLive] Add async function-calling agent sample
Sep 11, 2025
cd80871
add phrase list
Sep 12, 2025
ab12080
fix typo
Sep 12, 2025
ccbe48c
Update sdk/ai/azure-ai-voicelive/samples/async_function_calling_sampl…
xitzhang Sep 12, 2025
7e17d7f
Update sdk/ai/azure-ai-voicelive/samples/async_function_calling_sampl…
xitzhang Sep 12, 2025
e8c1dc5
update
Sep 12, 2025
9119f57
Merge branch 'main' of https://github.com/rhurey/azure-sdk-for-python
Sep 12, 2025
353e7d2
fix typo
Sep 12, 2025
52ca461
update changelog
Sep 12, 2025
78f88f7
update
Sep 12, 2025
6aa0ebb
remove breaking change section
Sep 12, 2025
adf3104
update changelog
Sep 12, 2025
c3f278a
fix change log
Sep 12, 2025
c40e7dc
revert changelog I lost
Sep 12, 2025
f37806f
update version and change log
Sep 12, 2025
4b4c063
enable type verification
Sep 12, 2025
c6e6f0b
update
Sep 12, 2025
a254ba6
Merge remote-tracking branch 'upstream/main'
Sep 13, 2025
c44767a
Merge remote-tracking branch 'upstream/main'
Sep 17, 2025
92c5df0
Merge remote-tracking branch 'upstream/main'
Sep 18, 2025
139241d
Merge remote-tracking branch 'upstream/main'
Sep 19, 2025
16540e0
[VoiceLive] Relase 1.0.0b4
Sep 19, 2025
b5f06d9
Merge remote-tracking branch 'upstream/main'
Sep 22, 2025
ac776d1
Merge remote-tracking branch 'upstream/main'
Sep 27, 2025
5baf8c5
Merge remote-tracking branch 'upstream/main'
Sep 30, 2025
9d93301
Merge remote-tracking branch 'upstream/main'
Oct 1, 2025
9925cc4
Merge remote-tracking branch 'upstream/main'
Oct 2, 2025
9ceca94
Merge remote-tracking branch 'upstream/main'
Oct 2, 2025
43e60cd
Merge remote-tracking branch 'upstream/main'
Oct 6, 2025
5063358
Merge remote-tracking branch 'upstream/main'
Oct 6, 2025
2911a94
Merge remote-tracking branch 'upstream/main'
Oct 10, 2025
5405e22
Merge remote-tracking branch 'upstream/main'
Oct 28, 2025
12c7b69
[VoiceLive] Add AgentConfig model and agent field to ResponseSession
Oct 28, 2025
d69ff65
add release date
Oct 28, 2025
0adcb2b
update change log
Oct 28, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 4 additions & 6 deletions sdk/ai/azure-ai-voicelive/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
# Release History

## 1.0.1 (Unreleased)
## 1.0.1 (2025-10-28)

### Features Added

### Breaking Changes

### Bugs Fixed

### Other Changes
- Added support for Agent configuration through the new `AgentConfig` model
- Added `agent` field to `ResponseSession` model to support agent-based conversations
- The `AgentConfig` model includes properties for agent type, name, description, agent_id, and thread_id

## 1.0.0 (2025-10-01)

Expand Down
1 change: 1 addition & 0 deletions sdk/ai/azure-ai-voicelive/apiview-properties.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"CrossLanguagePackageId": "VoiceLive",
"CrossLanguageDefinitionId": {
"azure.ai.voicelive.models.AgentConfig": "VoiceLive.AgentConfig",
"azure.ai.voicelive.models.Animation": "VoiceLive.Animation",
"azure.ai.voicelive.models.ConversationRequestItem": "VoiceLive.ConversationRequestItem",
"azure.ai.voicelive.models.MessageItem": "VoiceLive.MessageItem",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@


from ._models import ( # type: ignore
AgentConfig,
Animation,
AssistantMessageItem,
AudioEchoCancellation,
Expand Down Expand Up @@ -162,6 +163,7 @@
from ._patch import patch_sdk as _patch_sdk

__all__ = [
"AgentConfig",
"Animation",
"AssistantMessageItem",
"AudioEchoCancellation",
Expand Down
25 changes: 5 additions & 20 deletions sdk/ai/azure-ai-voicelive/azure/ai/voicelive/models/_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -1347,7 +1347,6 @@ class ClientEventInputAudioBufferAppend(ClientEvent, discriminator="input_audio_
mode, the audio buffer is used to detect speech and the server will decide
when to commit. When Server VAD is disabled, you must commit the audio buffer
manually.

The client may choose how much audio to place in each event up to a maximum
of 15 MiB, for example streaming smaller chunks from the client may allow the
VAD to be more responsive. Unlike made other client events, the server will
Expand Down Expand Up @@ -1736,7 +1735,6 @@ def __init__(self, *args: Any, **kwargs: Any) -> None:

class ClientEventSessionAvatarConnect(ClientEvent, discriminator="session.avatar.connect"):
"""Sent when the client connects and provides its SDP (Session Description Protocol)

for avatar-related media negotiation.

:ivar event_id:
Expand Down Expand Up @@ -2282,7 +2280,6 @@ def __init__(self, *args: Any, **kwargs: Any) -> None:

class OpenAIVoice(_Model):
"""OpenAI voice configuration with explicit type field.

This provides a unified interface for OpenAI voices, complementing the
existing string-based OpenAIVoiceName for backward compatibility.

Expand Down Expand Up @@ -2432,11 +2429,7 @@ class RequestSession(_Model):
:ivar instructions: Optional instructions to guide the model's behavior throughout the session.
:vartype instructions: str
:ivar input_audio_sampling_rate: Input audio sampling rate in Hz. Available values:



* For pcm16: 8000, 16000, 24000

* For g711_alaw/g711_ulaw: 8000.
:vartype input_audio_sampling_rate: int
:ivar input_audio_format: Input audio format. Default is 'pcm16'. Known values are: "pcm16",
Expand Down Expand Up @@ -2488,11 +2481,7 @@ class RequestSession(_Model):
"""Optional instructions to guide the model's behavior throughout the session."""
input_audio_sampling_rate: Optional[int] = rest_field(visibility=["read", "create", "update", "delete", "query"])
"""Input audio sampling rate in Hz. Available values:



* For pcm16: 8000, 16000, 24000

* For g711_alaw/g711_ulaw: 8000."""
input_audio_format: Optional[Union[str, "_models.InputAudioFormat"]] = rest_field(
visibility=["read", "create", "update", "delete", "query"]
Expand Down Expand Up @@ -2668,7 +2657,6 @@ class Response(_Model):
visibility=["read", "create", "update", "delete", "query"]
)
"""The final status of the response.

One of: ``completed``, ``cancelled``, ``failed``, ``incomplete``, or ``in_progress``. Known
values are: \"completed\", \"cancelled\", \"failed\", \"incomplete\", and \"in_progress\"."""
status_details: Optional["_models.ResponseStatusDetails"] = rest_field(
Expand Down Expand Up @@ -3262,11 +3250,7 @@ class ResponseSession(_Model):
:ivar instructions: Optional instructions to guide the model's behavior throughout the session.
:vartype instructions: str
:ivar input_audio_sampling_rate: Input audio sampling rate in Hz. Available values:



* For pcm16: 8000, 16000, 24000

* For g711_alaw/g711_ulaw: 8000.
:vartype input_audio_sampling_rate: int
:ivar input_audio_format: Input audio format. Default is 'pcm16'. Known values are: "pcm16",
Expand Down Expand Up @@ -3301,6 +3285,8 @@ class ResponseSession(_Model):
:ivar max_response_output_tokens: Maximum number of tokens to generate in the response. Default
is unlimited. Is either a int type or a Literal["inf"] type.
:vartype max_response_output_tokens: int or str
:ivar agent: The agent configuration for the session, if applicable.
:vartype agent: ~azure.ai.voicelive.models.AgentConfig
:ivar id: The unique identifier for the session.
:vartype id: str
"""
Expand All @@ -3320,11 +3306,7 @@ class ResponseSession(_Model):
"""Optional instructions to guide the model's behavior throughout the session."""
input_audio_sampling_rate: Optional[int] = rest_field(visibility=["read", "create", "update", "delete", "query"])
"""Input audio sampling rate in Hz. Available values:



* For pcm16: 8000, 16000, 24000

* For g711_alaw/g711_ulaw: 8000."""
input_audio_format: Optional[Union[str, "_models.InputAudioFormat"]] = rest_field(
visibility=["read", "create", "update", "delete", "query"]
Expand Down Expand Up @@ -3370,6 +3352,8 @@ class ResponseSession(_Model):
)
"""Maximum number of tokens to generate in the response. Default is unlimited. Is either a int
type or a Literal[\"inf\"] type."""
agent: Optional["_models.AgentConfig"] = rest_field(visibility=["read", "create", "update", "delete", "query"])
"""The agent configuration for the session, if applicable."""
id: Optional[str] = rest_field(visibility=["read", "create", "update", "delete", "query"])
"""The unique identifier for the session."""

Expand All @@ -3395,6 +3379,7 @@ def __init__(
tool_choice: Optional["_types.ToolChoice"] = None,
temperature: Optional[float] = None,
max_response_output_tokens: Optional[Union[int, Literal["inf"]]] = None,
agent: Optional["_models.AgentConfig"] = None,
id: Optional[str] = None, # pylint: disable=redefined-builtin
) -> None: ...

Expand Down