VoiceConversation Class
A persisted voice conversation. The Foundry envelope that owns a voice agent's stored transcript, responses, per-turn metrics, and audio. It is the parent, retention, and delete boundary: deleting it cascades to its responses, items, metrics, and audio. When finalization fails, any partial persisted responses, items, and item audio remain readable.
Constructor
VoiceConversation(*args: Any, **kwargs: Any)
Variables
| Name | Description |
|---|---|
|
id
|
The unique id of the conversation. Required. |
|
object
|
The object type. Always |
|
status
|
The lifecycle status of the conversation. Required. Known values are: "in_progress", "completed", and "failed". |
|
created_at
|
The Unix timestamp (in seconds) for when the conversation was created. Required. |
|
completed_at
|
The Unix timestamp (in seconds) for when session and persistence
finalization reached the terminal |
|
metadata
|
A set of key-value pairs attached to the conversation. |
|
usage
|
Final aggregate token usage across all responses in this conversation. Absent
while |
|
last_error
|
The terminal error that prevented persistence finalization. Present only when
|
Methods
| as_dict |
Return a dict that can be turned into json using json.dump. |
| clear |
Remove all items from the dictionary. |
| copy | |
| get |
Get the value for key if key is in the dictionary, else default. :param str key: The key to look up. :param any default: The value to return if key is not in the dictionary. Defaults to None :returns: The value for key if key is in the dictionary, else default. :rtype: any |
| items | |
| keys | |
| pop |
Removes specified key and return the corresponding value. :param str key: The key to pop. :param any default: The value to return if key is not in the dictionary :returns: The value corresponding to the key. :rtype: any :raises KeyError: If key is not found and default is not given. |
| popitem |
Removes and returns some (key, value) pair :returns: The (key, value) pair. :rtype: tuple :raises KeyError: if the dictionary is empty. |
| setdefault |
Return the value for key if key is in the dictionary; otherwise set the key to default and return default. :param str key: The key to look up. :param any default: The value to set if key is not in the dictionary :returns: The value for key if key is in the dictionary, else default. :rtype: any |
| update |
Update the dictionary from a mapping or an iterable of key-value pairs. :param any args: Either a mapping object or an iterable of key-value pairs. |
| values |
as_dict
Return a dict that can be turned into json using json.dump.
as_dict(*, exclude_readonly: bool = False) -> dict[str, Any]
Keyword-Only Parameters
| Name | Description |
|---|---|
|
exclude_readonly
|
Whether to remove the readonly properties. Default value: False
|
Returns
| Type | Description |
|---|---|
|
A dict JSON compatible object |
clear
Remove all items from the dictionary.
clear() -> None
copy
copy() -> Model
get
Get the value for key if key is in the dictionary, else default. :param str key: The key to look up. :param any default: The value to return if key is not in the dictionary. Defaults to None :returns: The value for key if key is in the dictionary, else default. :rtype: any
get(key: str, default: Any = None) -> Any
Parameters
| Name | Description |
|---|---|
|
key
Required
|
|
|
default
|
Default value: None
|
items
items() -> ItemsView[str, Any]
Returns
| Type | Description |
|---|---|
|
a set-like object providing a view on the mapping's items |
keys
keys() -> KeysView[str]
Returns
| Type | Description |
|---|---|
|
a set-like object providing a view on the mapping's keys |
pop
Removes specified key and return the corresponding value. :param str key: The key to pop. :param any default: The value to return if key is not in the dictionary :returns: The value corresponding to the key. :rtype: any :raises KeyError: If key is not found and default is not given.
pop(key: str, default: ~typing.Any = <object object>) -> Any
Parameters
| Name | Description |
|---|---|
|
key
Required
|
|
|
default
|
|
popitem
Removes and returns some (key, value) pair :returns: The (key, value) pair. :rtype: tuple :raises KeyError: if the dictionary is empty.
popitem() -> tuple[str, Any]
setdefault
Return the value for key if key is in the dictionary; otherwise set the key to default and return default. :param str key: The key to look up. :param any default: The value to set if key is not in the dictionary :returns: The value for key if key is in the dictionary, else default. :rtype: any
setdefault(key: str, default: ~typing.Any = <object object>) -> Any
Parameters
| Name | Description |
|---|---|
|
key
Required
|
|
|
default
|
|
update
Update the dictionary from a mapping or an iterable of key-value pairs. :param any args: Either a mapping object or an iterable of key-value pairs.
update(*args: Any, **kwargs: Any) -> None
values
values() -> ValuesView[Any]
Returns
| Type | Description |
|---|---|
|
an object providing a view on the mapping's values |
Attributes
completed_at
The Unix timestamp (in seconds) for when session and persistence finalization reached the
terminal completed or failed status. Absent while status is in_progress.
completed_at: datetime | None
created_at
The Unix timestamp (in seconds) for when the conversation was created. Required.
created_at: datetime
id
The unique id of the conversation. Required.
id: str
last_error
The terminal error that prevented persistence finalization. Present only when status is
failed.
last_error: _models.ApiError | None
metadata
A set of key-value pairs attached to the conversation.
metadata: dict[str, str] | None
object
The object type. Always voice.conversation. Required. Default value is
"voice.conversation".
object: Literal['voice.conversation']
status
"in_progress", "completed", and "failed".
status: str | _models.VoiceConversationStatus
usage
Final aggregate token usage across all responses in this conversation. Absent while status
is in_progress and populated after successful completed finalization; it may be absent
when status is failed, and values are not guaranteed to be reported incrementally.
usage: _models.RealtimeResponseUsage | None