avartha-python-sdk 0.0.4__tar.gz → 0.0.6__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/MANIFEST.in +1 -1
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/PKG-INFO +6 -5
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/README.md +33 -16
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/docs/compatibility.md +54 -15
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/docs/migration.md +143 -21
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/docs/platform.md +3 -37
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/docs/pypi.md +5 -4
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/examples/realtime_asr.py +4 -2
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/_config.py +25 -10
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/_realtime_asr.py +9 -1
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/_speech_http.py +7 -1
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/_speech_resources.py +47 -9
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/client.py +12 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/elevenlabs.py +1 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/openai.py +1 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_reasoning_effort.py +3 -1
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha_python_sdk.egg-info/PKG-INFO +6 -5
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha_python_sdk.egg-info/SOURCES.txt +0 -1
- avartha_python_sdk-0.0.4/examples/endpoints.py +0 -39
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/LICENSE +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/THIRD_PARTY_NOTICES +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/examples/realtime.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/examples/tts.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/examples/tts_multi_context.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/pyproject.toml +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/setup.cfg +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/setup.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/__init__.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/_exceptions.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/_http_errors.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/_models.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/_openai_http.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/_openai_http_errors.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/_pacing.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/_realtime_openai.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/_realtime_resources.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/_realtime_tts.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/_sentinels.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/_speech_config.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/_unsupported.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/_websocket.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/_ws_state.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/control.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/conversational_ai/__init__.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/errors.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/pagination.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/py.typed +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/realtime/__init__.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/realtime/speech.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/resources/__init__.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/resources/models.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/resources/realtime/__init__.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/resources/realtime/realtime.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/__init__.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/audio/__init__.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/audio/transcription_language.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/model.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/__init__.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/audio_transcription.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/audio_transcription_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/conversation_created_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/conversation_item.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/conversation_item_added.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/conversation_item_create_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/conversation_item_create_event_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/conversation_item_created_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/conversation_item_delete_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/conversation_item_delete_event_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/conversation_item_deleted_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/conversation_item_done.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/conversation_item_input_audio_transcription_completed_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/conversation_item_input_audio_transcription_delta_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/conversation_item_input_audio_transcription_failed_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/conversation_item_input_audio_transcription_segment.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/conversation_item_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/conversation_item_retrieve_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/conversation_item_retrieve_event_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/conversation_item_truncate_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/conversation_item_truncate_event_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/conversation_item_truncated_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/input_audio_buffer_append_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/input_audio_buffer_append_event_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/input_audio_buffer_clear_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/input_audio_buffer_clear_event_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/input_audio_buffer_cleared_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/input_audio_buffer_commit_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/input_audio_buffer_commit_event_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/input_audio_buffer_committed_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/input_audio_buffer_dtmf_event_received_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/input_audio_buffer_speech_started_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/input_audio_buffer_speech_stopped_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/input_audio_buffer_timeout_triggered.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/log_prob_properties.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/mcp_list_tools_completed.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/mcp_list_tools_failed.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/mcp_list_tools_in_progress.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/noise_reduction_type.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/output_audio_buffer_clear_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/output_audio_buffer_clear_event_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/rate_limits_updated_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_audio_config.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_audio_config_input.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_audio_config_input_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_audio_config_output.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_audio_config_output_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_audio_config_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_audio_formats.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_audio_formats_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_audio_input_turn_detection.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_audio_input_turn_detection_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_client_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_client_event_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_conversation_item_assistant_message.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_conversation_item_assistant_message_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_conversation_item_function_call.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_conversation_item_function_call_output.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_conversation_item_function_call_output_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_conversation_item_function_call_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_conversation_item_system_message.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_conversation_item_system_message_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_conversation_item_user_message.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_conversation_item_user_message_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_error.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_error_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_function_tool.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_function_tool_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_mcp_approval_request.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_mcp_approval_request_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_mcp_approval_response.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_mcp_approval_response_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_mcp_list_tools.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_mcp_list_tools_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_mcp_protocol_error.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_mcp_protocol_error_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_mcp_tool_call.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_mcp_tool_call_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_mcp_tool_execution_error.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_mcp_tool_execution_error_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_mcphttp_error.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_mcphttp_error_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_reasoning.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_reasoning_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_response.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_response_create_audio_output.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_response_create_audio_output_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_response_create_mcp_tool.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_response_create_mcp_tool_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_response_create_params.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_response_create_params_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_response_status.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_response_usage.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_response_usage_input_token_details.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_response_usage_output_token_details.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_server_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_session_create_request.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_session_create_request_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_tool_choice_config.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_tool_choice_config_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_tools_config.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_tools_config_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_tools_config_union.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_tracing_config.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_tracing_config_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_transcription_session_audio.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_transcription_session_audio_input.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_transcription_session_audio_input_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_transcription_session_audio_input_turn_detection.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_transcription_session_audio_input_turn_detection_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_transcription_session_audio_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_transcription_session_create_request.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_transcription_session_create_request_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_truncation.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_truncation_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_truncation_retention_ratio.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/realtime_truncation_retention_ratio_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/response_audio_delta_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/response_audio_done_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/response_audio_transcript_delta_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/response_audio_transcript_done_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/response_cancel_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/response_cancel_event_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/response_content_part_added_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/response_content_part_done_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/response_create_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/response_create_event_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/response_created_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/response_done_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/response_function_call_arguments_delta_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/response_function_call_arguments_done_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/response_mcp_call_arguments_delta.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/response_mcp_call_arguments_done.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/response_mcp_call_completed.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/response_mcp_call_failed.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/response_mcp_call_in_progress.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/response_output_item_added_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/response_output_item_done_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/response_text_delta_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/response_text_done_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/session_created_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/session_update_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/session_update_event_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/realtime/session_updated_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/responses/__init__.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/responses/image_detail.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/responses/response_input_file.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/responses/response_input_file_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/responses/response_input_image.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/responses/response_input_image_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/responses/response_input_text.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/responses/response_input_text_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/responses/response_prompt.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/responses/response_prompt_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/responses/tool_choice_function.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/responses/tool_choice_function_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/responses/tool_choice_mcp.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/responses/tool_choice_mcp_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/responses/tool_choice_options.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/shared/__init__.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/shared/metadata.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/shared_params/__init__.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/shared_params/metadata.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/__init__.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/alignment.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/audio_output_multi.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/close_context.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/close_socket.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/final_output_multi.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/fine_tuning_response.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/fine_tuning_response_state_value.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/flush_context.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/generation_config.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/get_voices_response.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/get_voices_v_2_response.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/initialize_connection_multi.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/language_response.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/manual_verification_file_response.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/manual_verification_response.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/model.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/model_rates_response_model.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/normalized_alignment.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/output_format.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/pronunciation_dictionary_locator.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/reader_resource_response_model.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/reader_resource_response_model_resource_type.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/realtime_voice_settings.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/recording_response.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/review_status.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/send_text_multi.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/speaker_response_model.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/speaker_separation_response_model.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/speaker_separation_response_model_status.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/utterance_response_model.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/verification_attempt_response.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/verified_voice_language_response_model.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/voice.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/voice_category.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/voice_labelling_status.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/voice_recording_quality.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/voice_safety_control.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/voice_sample.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/voice_settings.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/voice_sharing_moderation_check_response_model.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/voice_sharing_response.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/voice_sharing_response_category.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/voice_sharing_state.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech/voice_verification_response.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/speech_language.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/websocket_connection_options.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha/types/websocket_reconnection.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha_python_sdk.egg-info/dependency_links.txt +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha_python_sdk.egg-info/requires.txt +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.6}/src/avartha_python_sdk.egg-info/top_level.txt +0 -0
|
@@ -6,4 +6,4 @@ exclude src/avartha/_version.py
|
|
|
6
6
|
recursive-include src/avartha_python_sdk.egg-info PKG-INFO SOURCES.txt dependency_links.txt requires.txt top_level.txt
|
|
7
7
|
include docs/pypi.md docs/compatibility.md docs/migration.md docs/platform.md
|
|
8
8
|
include examples/realtime.py examples/tts.py examples/tts_multi_context.py
|
|
9
|
-
include examples/realtime_asr.py
|
|
9
|
+
include examples/realtime_asr.py
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: avartha-python-sdk
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.6
|
|
4
4
|
Summary: Python clients for Avartha Realtime text, streaming speech, and platform management
|
|
5
5
|
Author-email: "Avartha Inc." <team@avartha.ai>
|
|
6
6
|
License-Expression: LicenseRef-Avartha-Proprietary
|
|
@@ -47,9 +47,10 @@ export AVARTHA_API_KEY='avk_...'
|
|
|
47
47
|
export AVARTHA_BASE_URL='https://platform.preview.avartha.ai'
|
|
48
48
|
```
|
|
49
49
|
|
|
50
|
-
Clients default to the preview platform and
|
|
51
|
-
`AVARTHA_BASE_URL` for another environment
|
|
52
|
-
|
|
50
|
+
Clients default to the preview platform and support only serverless inference.
|
|
51
|
+
Set `AVARTHA_BASE_URL` for another environment. Use model and voice IDs available
|
|
52
|
+
to your workspace. Unsupported tier values and dedicated inference URLs raise
|
|
53
|
+
`ConfigurationError` locally before any request.
|
|
53
54
|
|
|
54
55
|
## Discover models
|
|
55
56
|
|
|
@@ -107,7 +108,7 @@ Inference consumes credits.
|
|
|
107
108
|
| Multi-context TTS | `ElevenLabs` / `AsyncElevenLabs`: `text_to_speech.connect_multi_context` |
|
|
108
109
|
| Realtime ASR | `await client.speech_to_text.realtime.connect(...)` on either speech client |
|
|
109
110
|
| Speech discovery | Speech clients: models, voices, voice settings, ASR languages |
|
|
110
|
-
| Workspaces, members, invitations
|
|
111
|
+
| Workspaces, members, invitations | `Control` / `AsyncControl` |
|
|
111
112
|
| Combined inference and management | `Avartha` / `AsyncAvartha` |
|
|
112
113
|
|
|
113
114
|
Managed inference uses WebSockets; Chat Completions, Responses, HTTP TTS,
|
|
@@ -95,7 +95,7 @@ with OpenAI() as client:
|
|
|
95
95
|
print(model.id, model.to_dict().get("protocols", []))
|
|
96
96
|
```
|
|
97
97
|
|
|
98
|
-
Model availability depends on your workspace
|
|
98
|
+
Model availability depends on your workspace and environment. Replace
|
|
99
99
|
the example IDs with models returned for your key and the protocol you need:
|
|
100
100
|
`openai_realtime`, `elevenlabs_tts`, or `elevenlabs_asr`.
|
|
101
101
|
|
|
@@ -210,8 +210,20 @@ managed inference uses the realtime methods above.
|
|
|
210
210
|
|
|
211
211
|
### Speech to text
|
|
212
212
|
|
|
213
|
-
|
|
214
|
-
|
|
213
|
+
Live speech-to-text (realtime ASR) is asynchronous on both `ElevenLabs` and
|
|
214
|
+
`AsyncElevenLabs`. This also applies through `Avartha` and `AsyncAvartha` at
|
|
215
|
+
`client.elevenlabs.speech_to_text.realtime`; the synchronous `Avartha` client
|
|
216
|
+
does not provide a blocking live STT interface.
|
|
217
|
+
|
|
218
|
+
Await `realtime.connect()`, `connection.send()`, `connection.commit()`, and
|
|
219
|
+
`connection.close()`. Register callbacks with `connection.on()` without `await`.
|
|
220
|
+
Use `AsyncAvartha` or `AsyncElevenLabs` for an async application. See the
|
|
221
|
+
[live STT execution guidance](docs/migration.md#live-speech-to-text) for scripts
|
|
222
|
+
and applications with an existing event loop.
|
|
223
|
+
|
|
224
|
+
Current ASR models require 16 kHz mono PCM16 audio. Convert other formats or
|
|
225
|
+
sample rates before sending audio chunks; the SDK does not resample them.
|
|
226
|
+
Await a committed transcript before closing the session.
|
|
215
227
|
[The complete example](examples/realtime_asr.py) reads a WAV file, registers
|
|
216
228
|
transcript/error callbacks, streams chunks, commits, and closes the connection:
|
|
217
229
|
|
|
@@ -219,12 +231,20 @@ transcript/error callbacks, streams chunks, commits, and closes the connection:
|
|
|
219
231
|
python examples/realtime_asr.py mistralai/voxtral-mini-4b-realtime-2602 speech-16k.wav
|
|
220
232
|
```
|
|
221
233
|
|
|
222
|
-
|
|
223
|
-
`connection.send
|
|
224
|
-
|
|
234
|
+
Current ASR models reject nonempty `previous_text`. Omit it from
|
|
235
|
+
`connection.send`; the SDK sends `null`. An empty string is also accepted.
|
|
236
|
+
For vocabulary hints on supported models, pass `keyterms` in the connection
|
|
237
|
+
options instead.
|
|
225
238
|
|
|
226
239
|
File-based HTTP `speech_to_text.convert` is retired on managed inference.
|
|
227
240
|
|
|
241
|
+
Connection options cover background speech filtering, vocabulary hints,
|
|
242
|
+
manual/VAD commits, Smart Turn, word log probabilities, timestamps, and speaker
|
|
243
|
+
labels on supported models. Register `RealtimeEvents.WARNING` for nonfatal
|
|
244
|
+
warnings, including unavailable timing metadata. See
|
|
245
|
+
[ASR options and callbacks](docs/migration.md#recognition-and-context-hints)
|
|
246
|
+
for configuration and server requirements.
|
|
247
|
+
|
|
228
248
|
## Agents
|
|
229
249
|
|
|
230
250
|
Agent management, tools, knowledge bases, and conversation sessions/history are
|
|
@@ -354,10 +374,12 @@ automatically. See [timeouts and cleanup](docs/migration.md#timeouts-retries-and
|
|
|
354
374
|
|
|
355
375
|
Without an explicit URL, protocol clients derive their URL from
|
|
356
376
|
`AVARTHA_BASE_URL`, defaulting to `https://platform.preview.avartha.ai` and the
|
|
357
|
-
`serverless` tier.
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
root, and an explicit
|
|
377
|
+
`serverless` tier. Only serverless inference is supported. Unsupported `tier`
|
|
378
|
+
values and dedicated inference URLs raise `ConfigurationError` locally before
|
|
379
|
+
any request; the SDK does not silently change the selected tier.
|
|
380
|
+
`AVARTHA_ELEVENLABS_BASE_URL` overrides the derived speech root, and an explicit
|
|
381
|
+
protocol `base_url` overrides its derived URL. URL overrides do not bypass tier
|
|
382
|
+
validation.
|
|
361
383
|
|
|
362
384
|
Keys are read at construction from `AVARTHA_API_KEY` or `api_key`.
|
|
363
385
|
Vendor default keys and base URL variables are not substituted.
|
|
@@ -379,7 +401,6 @@ with Avartha() as client:
|
|
|
379
401
|
print(client.control.catalog.skus(provider="modal"))
|
|
380
402
|
print(client.control.organizations.list())
|
|
381
403
|
print(client.control.organizations.limits("your-workspace-id"))
|
|
382
|
-
print(client.control.endpoints.list(workspace_id="your-workspace-id"))
|
|
383
404
|
```
|
|
384
405
|
|
|
385
406
|
`client.openai` and `client.elevenlabs` are the protocol clients;
|
|
@@ -392,15 +413,11 @@ creation, revocation, and acceptance. For example,
|
|
|
392
413
|
See [workspace administration](docs/platform.md#workspace-administration) for
|
|
393
414
|
sync/async usage and server permissions.
|
|
394
415
|
|
|
395
|
-
Endpoint creation, readiness waiting,
|
|
396
|
-
scaling, routing, stopping, and deletion are described in the
|
|
397
|
-
[management guide](docs/platform.md).
|
|
398
|
-
|
|
399
416
|
## Examples
|
|
400
417
|
|
|
401
418
|
Runnable examples cover [Realtime text](examples/realtime.py),
|
|
402
419
|
[TTS](examples/tts.py), [multi-context TTS](examples/tts_multi_context.py),
|
|
403
|
-
[ASR](examples/realtime_asr.py)
|
|
420
|
+
[ASR](examples/realtime_asr.py).
|
|
404
421
|
Microphone capture and speaker playback are handled by your application.
|
|
405
422
|
|
|
406
423
|
Running inference examples consumes credits.
|
|
@@ -8,14 +8,14 @@ Avartha; see the [migration guide](migration.md).
|
|
|
8
8
|
## Supported APIs
|
|
9
9
|
|
|
10
10
|
SDK support and server availability are separate. Select a model available to
|
|
11
|
-
your workspace
|
|
11
|
+
your workspace on serverless inference, and use only the features that model supports.
|
|
12
12
|
Avartha managed inference uses WebSockets. Discovery and platform management
|
|
13
13
|
use HTTP.
|
|
14
14
|
|
|
15
15
|
| Surface | SDK support | Server prerequisites |
|
|
16
16
|
| --- | --- | --- |
|
|
17
17
|
| OpenAI Realtime text | Sync/async `realtime.connect()` | A model supporting `openai_realtime` and the requested session options |
|
|
18
|
-
| OpenAI model discovery | Sync/async `models.list()` and `models.retrieve(model)` | A valid Avartha key; results depend on workspace
|
|
18
|
+
| OpenAI model discovery | Sync/async `models.list()` and `models.retrieve(model)` | A valid Avartha key; results depend on workspace |
|
|
19
19
|
| OpenAI Realtime audio, transcription, images, and beta API | Unavailable | Use speech clients for supported audio workflows |
|
|
20
20
|
| Chat Completions, Responses, SSE, and OpenAI HTTP speech | Unavailable | Managed inference requires a Realtime connection |
|
|
21
21
|
| Speech models and voices | Typed sync/async HTTP discovery | A visible speech model; voice discovery requires a routable TTS model |
|
|
@@ -25,11 +25,11 @@ use HTTP.
|
|
|
25
25
|
| Realtime ASR | Async connections on both speech clients | An ASR model supporting the supplied audio format and sample rate |
|
|
26
26
|
| HTTP TTS and file transcription | Unavailable | Use realtime speech methods |
|
|
27
27
|
| Agents, tools, knowledge bases, conversation sessions/history | Planned; currently unavailable | Accessing `conversational_ai` raises `NotImplementedError` |
|
|
28
|
-
| Catalog, workspaces, members,
|
|
28
|
+
| Catalog, workspaces, members, and invitations | Sync/async `Control` | An Avartha API key with the required workspace role and allocation |
|
|
29
29
|
| API-key administration | Unavailable through `Control` | Use the platform portal; these operations require a browser session |
|
|
30
30
|
|
|
31
31
|
See [platform management](platform.md) for workspace roles, invitation
|
|
32
|
-
requirements,
|
|
32
|
+
requirements, and permissions.
|
|
33
33
|
|
|
34
34
|
## OpenAI Realtime text
|
|
35
35
|
|
|
@@ -56,8 +56,8 @@ schema compatibility. Unsupported HTTP resources, including Chat Completions,
|
|
|
56
56
|
Responses, and Realtime calls/client secrets, raise the same exception.
|
|
57
57
|
The older `client.beta.realtime` wire schema is outside this contract.
|
|
58
58
|
|
|
59
|
-
The constructor
|
|
60
|
-
|
|
59
|
+
The constructor accepts only `tier="serverless"`. Client copies apply the same
|
|
60
|
+
configuration validation. Custom `http_client` arguments are unsupported.
|
|
61
61
|
HTTP settings such as `timeout` and `max_retries` do not control the WebSocket. Use
|
|
62
62
|
`websocket_connection_options` and the arguments to `realtime.connect()` for
|
|
63
63
|
socket timeouts and retries. Closing a client closes its internally created HTTP
|
|
@@ -81,12 +81,12 @@ with OpenAI() as client:
|
|
|
81
81
|
```
|
|
82
82
|
|
|
83
83
|
The client uses these HTTP routes under
|
|
84
|
-
`/inference/
|
|
84
|
+
`/inference/serverless/openai/v1`:
|
|
85
85
|
|
|
86
86
|
| SDK method | GET path | Server prerequisites |
|
|
87
87
|
| --- | --- | --- |
|
|
88
|
-
| `models.list()` | `/models` | Returns models visible to the caller
|
|
89
|
-
| `models.retrieve(model)` | `/models/{model}` | Model ID must be visible on
|
|
88
|
+
| `models.list()` | `/models` | Returns serverless models visible to the caller; an empty list is valid |
|
|
89
|
+
| `models.retrieve(model)` | `/models/{model}` | Model ID must be visible on serverless inference; slashes in IDs are URL-encoded |
|
|
90
90
|
|
|
91
91
|
Both clients return typed `avartha.types.Model` objects and preserve additional
|
|
92
92
|
platform fields such as `protocols`, `model_type`, and `websocket_limits`.
|
|
@@ -115,18 +115,22 @@ raise `APITimeoutError`. The OpenAI HTTP 422 class is
|
|
|
115
115
|
## Speech HTTP discovery
|
|
116
116
|
|
|
117
117
|
Speech discovery uses these HTTP routes under
|
|
118
|
-
`/inference/
|
|
118
|
+
`/inference/serverless/elevenlabs`:
|
|
119
119
|
|
|
120
120
|
| SDK method | GET path | Server prerequisites |
|
|
121
121
|
| --- | --- | --- |
|
|
122
|
-
| `models.list()` | `/v1/models` | A speech model visible to the caller
|
|
122
|
+
| `models.list()` | `/v1/models` | A serverless speech model visible to the caller |
|
|
123
123
|
| `voices.get_all()` | `/v1/voices` | A routable TTS model with runtime voice discovery |
|
|
124
124
|
| `voices.search(...)` | `/v2/voices` | Same; supported filters are `search`, `page_size` (1–100), `next_page_token`, and `include_total_count` |
|
|
125
125
|
| `voices.get(voice_id)` | `/v1/voices/{voice_id}` | Voice exists for the selected model |
|
|
126
126
|
| `voices.settings.get(voice_id)` | `/v1/voices/{voice_id}/settings` | Same; server reports supported `speed=1.0` |
|
|
127
|
-
| `speech_to_text.languages.list(model_id=...)` | `/v1/
|
|
127
|
+
| `speech_to_text.languages.list(model_id=...)` | `/v1/models` | Selects the ASR model's language metadata from the speech catalog |
|
|
128
128
|
|
|
129
129
|
All methods have sync and async variants and typed raw-response access.
|
|
130
|
+
The language helper maps catalog `language_id` entries to `code`. An empty
|
|
131
|
+
language list means hints are unsupported; missing metadata or an unavailable
|
|
132
|
+
model raises `ApiError`. Its raw-response wrapper retains the catalog response's
|
|
133
|
+
HTTP status and headers while exposing the selected model's typed language list.
|
|
130
134
|
Model/voice methods retain upstream signatures; language discovery is an
|
|
131
135
|
Avartha extension. Pass the TTS `model_id` through
|
|
132
136
|
`request_options.additional_query_parameters`, especially when multiple TTS
|
|
@@ -258,15 +262,50 @@ Audio formats and `voice_settings` depend on the selected model. Specifying an
|
|
|
258
262
|
option in the SDK does not make it available on the server. Runnable examples:
|
|
259
263
|
[single-context](../examples/tts.py), [multi-context](../examples/tts_multi_context.py).
|
|
260
264
|
|
|
265
|
+
## Realtime ASR
|
|
266
|
+
|
|
267
|
+
Current ASR models require 16 kHz mono PCM16 audio. The SDK retains the other
|
|
268
|
+
`AudioFormat` enum values for protocol compatibility; their presence does not
|
|
269
|
+
imply server support. Audio-chunk mode sends samples unchanged. Convert the
|
|
270
|
+
source before sending, or use URL mode, which requires FFmpeg and converts to
|
|
271
|
+
16 kHz mono PCM16.
|
|
272
|
+
|
|
273
|
+
The SDK also preserves `previous_text` on audio chunks, but current ASR models
|
|
274
|
+
accept only omission, `null`, or an empty string. Nonempty values are rejected.
|
|
275
|
+
Vocabulary hints use `keyterms` on models that support them.
|
|
276
|
+
|
|
277
|
+
The SDK forwards background filtering (`filter_background_audio`), vocabulary
|
|
278
|
+
hints (`keyterms`), manual/VAD commit controls, and `include_timestamps`.
|
|
279
|
+
It additionally exposes Avartha's `diarize`, `include_logprobs`, `turn_model`,
|
|
280
|
+
and `turn_threshold` options on both audio-chunk and URL connections. These
|
|
281
|
+
extensions are not a claim of upstream ElevenLabs realtime feature parity.
|
|
282
|
+
Omitted extension options are not added to the query; explicit booleans are
|
|
283
|
+
sent as `true` or `false`.
|
|
284
|
+
|
|
285
|
+
The server validates feature combinations and model availability. Diarization
|
|
286
|
+
requires timestamps and a model with speaker-label support. Timestamps also
|
|
287
|
+
depend on language support. Smart Turn requires VAD mode and a server with
|
|
288
|
+
`smart_turn_v3` enabled; `turn_threshold` is only meaningful in that mode.
|
|
289
|
+
Background filtering and vocabulary hints also depend on the model.
|
|
290
|
+
|
|
291
|
+
Transcript callbacks preserve server dictionaries, including `words` with
|
|
292
|
+
timing, speaker labels, and log probabilities when supplied.
|
|
293
|
+
`RealtimeEvents.WARNING` delivers nonfatal warnings without also dispatching
|
|
294
|
+
`ERROR`. A timing warning can replace a timed result; the preceding plain
|
|
295
|
+
committed transcript remains usable. See the
|
|
296
|
+
[ASR options and event guidance](migration.md#recognition-and-context-hints).
|
|
297
|
+
|
|
261
298
|
## URLs and authentication
|
|
262
299
|
|
|
263
300
|
- `Avartha` and `Control` accept a platform root, including a proxy prefix.
|
|
264
|
-
- OpenAI defaults to `ROOT/inference/
|
|
265
|
-
- ElevenLabs defaults to `ROOT/inference/
|
|
301
|
+
- OpenAI defaults to `ROOT/inference/serverless/openai/v1`, using bearer auth.
|
|
302
|
+
- ElevenLabs defaults to `ROOT/inference/serverless/elevenlabs` and appends its
|
|
266
303
|
original `/v1/...` paths, using `xi-api-key`.
|
|
267
304
|
- An explicit protocol `base_url` is a full dialect/service base. Speech also
|
|
268
305
|
supports `AVARTHA_ELEVENLABS_BASE_URL` as an override.
|
|
269
|
-
- Both protocol clients
|
|
306
|
+
- Both protocol clients support only `tier="serverless"`. Other tier values and
|
|
307
|
+
dedicated inference URLs raise `ConfigurationError` before any request,
|
|
308
|
+
including with explicit or environment URL overrides.
|
|
270
309
|
- HTTP/HTTPS maps to WS/WSS. No implicit hosted-vendor credential fallback exists.
|
|
271
310
|
- Clients never read vendor environment variables. `OPENAI_ADMIN_KEY`,
|
|
272
311
|
`OPENAI_API_KEY`, `OPENAI_BASE_URL`, `OPENAI_CUSTOM_HEADERS`, `OPENAI_ORG_ID`,
|
|
@@ -174,7 +174,7 @@ your application uses it.
|
|
|
174
174
|
### Discover models, voices, and ASR languages
|
|
175
175
|
|
|
176
176
|
Call discovery resources on the speech client. Replace the example model IDs
|
|
177
|
-
with models available for your workspace
|
|
177
|
+
with models available for your workspace and environment:
|
|
178
178
|
|
|
179
179
|
```python
|
|
180
180
|
from avartha import ElevenLabs
|
|
@@ -191,9 +191,7 @@ with ElevenLabs() as client:
|
|
|
191
191
|
if voices:
|
|
192
192
|
voice = client.voices.get(voices[0].voice_id, request_options=options)
|
|
193
193
|
settings = client.voices.settings.get(voice.voice_id, request_options=options)
|
|
194
|
-
languages = client.speech_to_text.languages.list(
|
|
195
|
-
model_id="mistralai/voxtral-mini-4b-realtime-2602"
|
|
196
|
-
)
|
|
194
|
+
languages = client.speech_to_text.languages.list(model_id="YOUR_ASR_MODEL_ID")
|
|
197
195
|
```
|
|
198
196
|
|
|
199
197
|
Use `AsyncElevenLabs` with `async with` and `await` for each call. Each resource
|
|
@@ -213,8 +211,10 @@ available as `error.__cause__`.
|
|
|
213
211
|
`model_id` is an Avartha query extension for voice discovery. Specify it when
|
|
214
212
|
more than one TTS model is available. The platform supports `search`, `page_size`,
|
|
215
213
|
`next_page_token`, and `include_total_count` on `voices.search`; other vendor
|
|
216
|
-
filters are forwarded and may be rejected by the server.
|
|
217
|
-
|
|
214
|
+
filters are forwarded and may be rejected by the server. The language helper
|
|
215
|
+
selects the requested ASR model from `models.list()`. An empty language list
|
|
216
|
+
means hints are unsupported (`language_hints_supported=False`); a missing
|
|
217
|
+
model or missing language metadata raises `ApiError` instead.
|
|
218
218
|
See [supported HTTP endpoints and server prerequisites](compatibility.md#speech-http-discovery).
|
|
219
219
|
|
|
220
220
|
### Speech-specific configuration
|
|
@@ -229,22 +229,142 @@ Text fragments are forwarded unchanged, including whitespace. Include any
|
|
|
229
229
|
intended spaces in your text. The Avartha Platform handles buffering and
|
|
230
230
|
segmentation; when synthesis starts depends on the model.
|
|
231
231
|
|
|
232
|
-
`
|
|
233
|
-
|
|
232
|
+
TTS `convert_realtime` supports sync and async clients; the async helper also
|
|
233
|
+
accepts async text streams. Both receive audio independently of text production.
|
|
234
|
+
See [input cancellation and cleanup](compatibility.md#realtime-tts)
|
|
235
|
+
for blocking text iterators and early playback stops.
|
|
236
|
+
|
|
237
|
+
### Live speech-to-text
|
|
238
|
+
|
|
239
|
+
Realtime ASR is asynchronous on both speech clients and through
|
|
240
|
+
`Avartha.elevenlabs.speech_to_text.realtime` and
|
|
241
|
+
`AsyncAvartha.elevenlabs.speech_to_text.realtime`. Choosing `Avartha` does not
|
|
242
|
+
make live STT operations synchronous; existing awaited calls remain supported.
|
|
243
|
+
|
|
244
|
+
Await `realtime.connect()`, `connection.send()`, `connection.commit()`, and
|
|
245
|
+
`connection.close()`. Callback registration with `connection.on()` is synchronous.
|
|
246
|
+
Callbacks run on the session's event loop, which must remain running to receive
|
|
247
|
+
transcripts. Handlers can be ordinary functions or async functions.
|
|
248
|
+
ASR events retain their names and raw dictionary payloads, including the
|
|
249
|
+
deprecated `UNACCEPTED_TERMS_ERROR` callback alias.
|
|
250
|
+
|
|
251
|
+
Current ASR models require raw 16 kHz mono PCM16 samples without a file header.
|
|
252
|
+
For audio chunks, select `AudioFormat.PCM_16000` and `sample_rate=16000`, and
|
|
253
|
+
convert other formats or sample rates before sending. The SDK does not
|
|
254
|
+
resample chunks or convert their encoding. URL mode uses FFmpeg to convert the
|
|
255
|
+
source to the required format and requires FFmpeg on `PATH`.
|
|
256
|
+
|
|
257
|
+
Nonempty `previous_text` is unsupported by current ASR models. The SDK
|
|
258
|
+
preserves this protocol field, but the server rejects nonempty values rather
|
|
259
|
+
than using them as context. Omission, `None`, or an empty string supplies no
|
|
260
|
+
context. Use `keyterms` in the connection options for vocabulary hints on
|
|
261
|
+
supported models. Audio-send code can omit `previous_text`; the SDK sends `null`:
|
|
234
262
|
|
|
235
263
|
```python
|
|
236
264
|
async def send_audio(connection, encoded_chunk):
|
|
237
265
|
await connection.send({"audio_base_64": encoded_chunk})
|
|
238
266
|
```
|
|
239
267
|
|
|
240
|
-
|
|
268
|
+
The [complete ASR example](../examples/realtime_asr.py) uses `AsyncElevenLabs`,
|
|
269
|
+
waits for a committed transcript, and awaits `connection.close()` in `finally`.
|
|
270
|
+
For a combined inference and management client, adapt that example to use
|
|
271
|
+
`async with AsyncAvartha() as client` and connect through
|
|
272
|
+
`await client.elevenlabs.speech_to_text.realtime.connect(options)`.
|
|
273
|
+
|
|
274
|
+
In a standalone script, put the complete session workflow in an async function
|
|
275
|
+
and call it once with `asyncio.run(main())`. Keep connection creation, audio
|
|
276
|
+
sending, transcript handling, and session cleanup on that same event loop.
|
|
277
|
+
In an application or notebook with a running event loop, await the workflow
|
|
278
|
+
directly instead of calling `asyncio.run()`. Close the live session before
|
|
279
|
+
leaving the client context; closing the client only closes its HTTP transports.
|
|
280
|
+
|
|
281
|
+
#### Recognition and context hints
|
|
282
|
+
|
|
283
|
+
Pass options to `realtime.connect()` using `RealtimeAudioOptions` for audio
|
|
284
|
+
chunks or `RealtimeUrlOptions` for an audio URL. The SDK forwards these settings;
|
|
285
|
+
the selected model and server must support them.
|
|
286
|
+
|
|
287
|
+
`filter_background_audio=True` enables experimental background speech filtering
|
|
288
|
+
on supported models. Use it to reduce transcription of background speakers.
|
|
289
|
+
It defaults to off and is separate from microphone echo cancellation.
|
|
290
|
+
|
|
291
|
+
Use `keyterms=["Avartha", "Kubernetes"]` for vocabulary hints on models that
|
|
292
|
+
support them. The SDK sends each term as a separate query parameter and handles
|
|
293
|
+
URL encoding. Hints do not guarantee a spelling and are not a free-form prompt.
|
|
294
|
+
`language_code` can constrain recognition to a supported language; use
|
|
295
|
+
`speech_to_text.languages.list(model_id=...)` to check language support.
|
|
296
|
+
|
|
297
|
+
#### Ending an utterance
|
|
298
|
+
|
|
299
|
+
`commit_strategy=CommitStrategy.MANUAL` is the default. Send audio, then call
|
|
300
|
+
`await connection.commit()` when your application decides the utterance is
|
|
301
|
+
complete. This waits for the send, not the transcript: wait for
|
|
302
|
+
`RealtimeEvents.COMMITTED_TRANSCRIPT` before treating transcription as complete.
|
|
303
|
+
Do not commit an empty audio buffer as a completion check.
|
|
304
|
+
|
|
305
|
+
For automatic commits, use `commit_strategy=CommitStrategy.VAD`. Set
|
|
306
|
+
`turn_model="silence"` for silence-based turn detection; omitting it uses the
|
|
307
|
+
server's default. Tune `vad_silence_threshold_secs` for the silence
|
|
308
|
+
wait and `vad_threshold` for speech detection sensitivity. VAD controls require
|
|
309
|
+
VAD mode; omit them in manual mode.
|
|
310
|
+
|
|
311
|
+
On servers supporting Smart Turn, add `turn_model="smart_turn_v3"`. It uses an
|
|
312
|
+
end-of-turn model to judge whether the speaker has finished, with a silence
|
|
313
|
+
timeout as fallback. `turn_threshold` controls its decision threshold, defaults
|
|
314
|
+
to `0.5`, and must be strictly between `0` and `1`. Only pass this threshold with
|
|
315
|
+
Smart Turn. For example, inside an async client context:
|
|
241
316
|
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
317
|
+
```python
|
|
318
|
+
from avartha import AudioFormat, CommitStrategy, RealtimeAudioOptions
|
|
319
|
+
|
|
320
|
+
options = RealtimeAudioOptions(
|
|
321
|
+
model_id="YOUR_ASR_MODEL_ID",
|
|
322
|
+
audio_format=AudioFormat.PCM_16000,
|
|
323
|
+
sample_rate=16000,
|
|
324
|
+
commit_strategy=CommitStrategy.VAD,
|
|
325
|
+
turn_model="smart_turn_v3",
|
|
326
|
+
turn_threshold=0.5,
|
|
327
|
+
)
|
|
328
|
+
connection = await client.speech_to_text.realtime.connect(options)
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
#### Transcript details
|
|
332
|
+
|
|
333
|
+
`include_logprobs=True` requests word log probabilities in final transcripts.
|
|
334
|
+
These are model scores, not calibrated confidence percentages. This option does
|
|
335
|
+
not enable timestamps. `include_timestamps=True` requests a separate
|
|
336
|
+
`RealtimeEvents.COMMITTED_TRANSCRIPT_WITH_TIMESTAMPS` event after the plain
|
|
337
|
+
committed transcript. Use it to enrich the same utterance, not append a duplicate.
|
|
338
|
+
|
|
339
|
+
`diarize=True` requests speaker labels and requires `include_timestamps=True`.
|
|
340
|
+
On supported models, timed `words` entries can include `speaker_id` alongside
|
|
341
|
+
`start` and `end`. Speaker labels may be absent if diarization fails; timestamps
|
|
342
|
+
can still be returned. These three options default to off. For a model and
|
|
343
|
+
language that support the requested details:
|
|
344
|
+
|
|
345
|
+
Add `include_timestamps=True`, `diarize=True`, and `include_logprobs=True` to
|
|
346
|
+
the `RealtimeAudioOptions` above before connecting. Omit options you do not need.
|
|
347
|
+
|
|
348
|
+
Register handlers before sending audio. Callbacks receive the unmodified server
|
|
349
|
+
dictionary, including word scores, timestamps, and speaker labels:
|
|
350
|
+
|
|
351
|
+
```python
|
|
352
|
+
from avartha import RealtimeEvents
|
|
353
|
+
|
|
354
|
+
connection.on(RealtimeEvents.COMMITTED_TRANSCRIPT, lambda event: print(event["text"]))
|
|
355
|
+
connection.on(
|
|
356
|
+
RealtimeEvents.COMMITTED_TRANSCRIPT_WITH_TIMESTAMPS,
|
|
357
|
+
lambda event: print(event.get("words", [])),
|
|
358
|
+
)
|
|
359
|
+
connection.on(RealtimeEvents.WARNING, lambda event: print("Warning:", event))
|
|
360
|
+
connection.on(RealtimeEvents.ERROR, lambda event: print("Error:", event))
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
If timing cannot be produced, the server can send a `WARNING` instead of the
|
|
364
|
+
timed event. Retain the plain committed transcript. Warnings do not trigger the
|
|
365
|
+
`ERROR` callback or close the SDK connection. When waiting for optional metadata,
|
|
366
|
+
handle both the timed event and the warning, and use an application timeout.
|
|
367
|
+
Do not close immediately after the plain final if you still need its metadata.
|
|
248
368
|
|
|
249
369
|
## Configuration
|
|
250
370
|
|
|
@@ -252,8 +372,8 @@ including the deprecated `UNACCEPTED_TERMS_ERROR` callback alias.
|
|
|
252
372
|
| --- | --- |
|
|
253
373
|
| Default API key | `AVARTHA_API_KEY`, read at construction |
|
|
254
374
|
| Default platform root | `AVARTHA_BASE_URL`, or `https://platform.preview.avartha.ai` |
|
|
255
|
-
|
|
|
256
|
-
| Explicit `OpenAI(base_url=...)` | Full base including `/inference/
|
|
375
|
+
| Inference tier | `serverless` only; other values raise `ConfigurationError` locally |
|
|
376
|
+
| Explicit `OpenAI(base_url=...)` | Full base including `/inference/serverless/openai/v1` |
|
|
257
377
|
| Explicit OpenAI `websocket_base_url` | Optional `wss://` service base before `/realtime`; other schemes are rejected |
|
|
258
378
|
| Explicit `ElevenLabs(base_url=...)` | Speech service root before `/v1` |
|
|
259
379
|
| Speech URL override | Explicit `base_url`, then `AVARTHA_ELEVENLABS_BASE_URL`, then the derived platform URL |
|
|
@@ -261,10 +381,12 @@ including the deprecated `UNACCEPTED_TERMS_ERROR` callback alias.
|
|
|
261
381
|
| Existing vendor key/URL variables | Update to Avartha variables or explicit arguments |
|
|
262
382
|
| Model and voice names | Use IDs supported by the configured service; no automatic mapping |
|
|
263
383
|
|
|
264
|
-
Explicit protocol URLs
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
384
|
+
Explicit protocol URLs override the derived service URL. Only serverless
|
|
385
|
+
inference is supported: unsupported `tier` values are rejected even with a URL
|
|
386
|
+
override, and dedicated inference URLs are rejected before any request. Proxy
|
|
387
|
+
path prefixes are preserved. Without a WebSocket override, the SDK derives a
|
|
388
|
+
WS/WSS address from the HTTP/HTTPS service base. Avartha keys are never routed
|
|
389
|
+
to an implicit hosted OpenAI or ElevenLabs endpoint.
|
|
268
390
|
|
|
269
391
|
Speech clients also accept `environment` as a service URL or URL-valued enum
|
|
270
392
|
when `base_url` is omitted. Update any vendor environment value to your Avartha
|
|
@@ -21,7 +21,7 @@ and lists, preserving the server's fields.
|
|
|
21
21
|
## Workspace administration
|
|
22
22
|
|
|
23
23
|
The platform calls workspaces `organizations`. Use the same ID returned by
|
|
24
|
-
`organizations.list()` wherever
|
|
24
|
+
`organizations.list()` wherever a method takes `workspace_id`.
|
|
25
25
|
|
|
26
26
|
```python
|
|
27
27
|
from avartha import Control
|
|
@@ -87,7 +87,7 @@ asyncio.run(main())
|
|
|
87
87
|
change or remove other admins. The server refuses removing or demoting the
|
|
88
88
|
last owner, including through `leave`, with a conflict.
|
|
89
89
|
- New customer workspaces start with a serverless-only, zero-budget allocation.
|
|
90
|
-
Creation alone does not provide inference credits
|
|
90
|
+
Creation alone does not provide inference credits.
|
|
91
91
|
- Targeted customer invitations require a workspace member-allocation policy
|
|
92
92
|
and a valid member entitlement policy. Email delivery requires server email
|
|
93
93
|
configuration.
|
|
@@ -95,40 +95,6 @@ asyncio.run(main())
|
|
|
95
95
|
keys requires an interactive browser session and is not available through
|
|
96
96
|
this bearer-key client.
|
|
97
97
|
|
|
98
|
-
## Dedicated endpoints
|
|
99
|
-
|
|
100
|
-
`control.endpoints` supports `create`, `get`, `list`, `management`, `stop`,
|
|
101
|
-
`delete`, `update_scaling`, `update_routing`, and `wait_until_ready`.
|
|
102
|
-
[The provisioning example](../examples/endpoints.py) takes a workspace, model,
|
|
103
|
-
name, and SKU JSON and requests GPU capacity. The endpoint remains running
|
|
104
|
-
until explicitly stopped.
|
|
105
|
-
|
|
106
|
-
Creation persists launch intent and returns immediately. Readiness waiting is
|
|
107
|
-
explicit and requires a `running` endpoint with an accepting replica:
|
|
108
|
-
|
|
109
|
-
```python
|
|
110
|
-
from avartha import Control
|
|
111
|
-
|
|
112
|
-
with Control() as client:
|
|
113
|
-
ready = client.endpoints.wait_until_ready(
|
|
114
|
-
"your-endpoint-id",
|
|
115
|
-
timeout=600,
|
|
116
|
-
poll_interval=2,
|
|
117
|
-
)
|
|
118
|
-
print(ready)
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
The waiter raises `EndpointFailedError` if the endpoint fails, stops, or starts
|
|
122
|
-
stopping. The polling budget caps each HTTP timeout to the remaining time.
|
|
123
|
-
HTTP timeouts are per-phase inactivity timeouts, not a strict total wall-clock
|
|
124
|
-
deadline. Network errors propagate. Async waits support normal asyncio
|
|
125
|
-
cancellation.
|
|
126
|
-
|
|
127
|
-
Scaling and routing updates require `expected_generation` and `policy`.
|
|
128
|
-
Read the current policy generation through `management` before an update.
|
|
129
|
-
A stale generation returns a conflict; re-read state before deciding whether
|
|
130
|
-
to submit another update.
|
|
131
|
-
|
|
132
98
|
## Errors and other routes
|
|
133
99
|
|
|
134
100
|
`PlatformAPIError` retains `status_code`, `body`, `field_errors`, `request_id`,
|
|
@@ -151,7 +117,7 @@ The combined client accepts `openai_options`, `elevenlabs_options`, and
|
|
|
151
117
|
`control_options` dictionaries for transport and timeout settings. Use its
|
|
152
118
|
named arguments for service URLs and keys. Set `elevenlabs_api_key` when the
|
|
153
119
|
voice service uses a different credential; otherwise it receives the Avartha
|
|
154
|
-
key. The speech URL defaults to the same platform root
|
|
120
|
+
key. The speech URL defaults to serverless inference on the same platform root; use
|
|
155
121
|
`elevenlabs_base_url` to select a separate compatible service.
|
|
156
122
|
|
|
157
123
|
Use context managers or call `close()` (`await close()` for async clients).
|
|
@@ -16,9 +16,10 @@ export AVARTHA_API_KEY='avk_...'
|
|
|
16
16
|
export AVARTHA_BASE_URL='https://platform.preview.avartha.ai'
|
|
17
17
|
```
|
|
18
18
|
|
|
19
|
-
Clients default to the preview platform and
|
|
20
|
-
`AVARTHA_BASE_URL` for another environment
|
|
21
|
-
|
|
19
|
+
Clients default to the preview platform and support only serverless inference.
|
|
20
|
+
Set `AVARTHA_BASE_URL` for another environment. Use model and voice IDs available
|
|
21
|
+
to your workspace. Unsupported tier values and dedicated inference URLs raise
|
|
22
|
+
`ConfigurationError` locally before any request.
|
|
22
23
|
|
|
23
24
|
## Discover models
|
|
24
25
|
|
|
@@ -76,7 +77,7 @@ Inference consumes credits.
|
|
|
76
77
|
| Multi-context TTS | `ElevenLabs` / `AsyncElevenLabs`: `text_to_speech.connect_multi_context` |
|
|
77
78
|
| Realtime ASR | `await client.speech_to_text.realtime.connect(...)` on either speech client |
|
|
78
79
|
| Speech discovery | Speech clients: models, voices, voice settings, ASR languages |
|
|
79
|
-
| Workspaces, members, invitations
|
|
80
|
+
| Workspaces, members, invitations | `Control` / `AsyncControl` |
|
|
80
81
|
| Combined inference and management | `Avartha` / `AsyncAvartha` |
|
|
81
82
|
|
|
82
83
|
Managed inference uses WebSockets; Chat Completions, Responses, HTTP TTS,
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
"""Stream mono, signed 16-bit PCM WAV audio with the ElevenLabs ASR protocol.
|
|
1
|
+
"""Stream 16 kHz mono, signed 16-bit PCM WAV audio with the ElevenLabs ASR protocol.
|
|
2
2
|
|
|
3
3
|
Set AVARTHA_API_KEY and optionally AVARTHA_BASE_URL.
|
|
4
|
-
Run: python examples/realtime_asr.py MODEL_ID speech.wav
|
|
4
|
+
Run: python examples/realtime_asr.py MODEL_ID speech-16k.wav
|
|
5
|
+
Convert other sample rates before running; this example does not resample audio.
|
|
5
6
|
"""
|
|
6
7
|
|
|
7
8
|
import argparse
|
|
@@ -39,6 +40,7 @@ async def run(model: str, audio_path: str):
|
|
|
39
40
|
|
|
40
41
|
connection.on(RealtimeEvents.PARTIAL_TRANSCRIPT, lambda event: print(event["text"]))
|
|
41
42
|
connection.on(RealtimeEvents.COMMITTED_TRANSCRIPT, transcript)
|
|
43
|
+
connection.on(RealtimeEvents.WARNING, lambda event: print("Warning:", event))
|
|
42
44
|
connection.on(RealtimeEvents.ERROR, failed)
|
|
43
45
|
try:
|
|
44
46
|
while chunk := audio.readframes(sample_rate // 10):
|