avartha-python-sdk 0.0.4__tar.gz → 0.0.5__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.5}/MANIFEST.in +1 -1
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/PKG-INFO +6 -5
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/README.md +20 -13
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/docs/compatibility.md +16 -14
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/docs/migration.md +39 -14
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/docs/platform.md +3 -37
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/docs/pypi.md +5 -4
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/_config.py +25 -10
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/client.py +12 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/elevenlabs.py +1 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/openai.py +1 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_reasoning_effort.py +3 -1
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha_python_sdk.egg-info/PKG-INFO +6 -5
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/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.5}/LICENSE +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/THIRD_PARTY_NOTICES +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/examples/realtime.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/examples/realtime_asr.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/examples/tts.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/examples/tts_multi_context.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/pyproject.toml +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/setup.cfg +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/setup.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/__init__.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/_exceptions.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/_http_errors.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/_models.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/_openai_http.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/_openai_http_errors.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/_pacing.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/_realtime_asr.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/_realtime_openai.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/_realtime_resources.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/_realtime_tts.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/_sentinels.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/_speech_config.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/_speech_http.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/_speech_resources.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/_unsupported.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/_websocket.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/_ws_state.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/control.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/conversational_ai/__init__.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/errors.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/pagination.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/py.typed +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/realtime/__init__.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/realtime/speech.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/resources/__init__.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/resources/models.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/resources/realtime/__init__.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/resources/realtime/realtime.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/__init__.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/audio/__init__.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/audio/transcription_language.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/model.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/__init__.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/audio_transcription.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/audio_transcription_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/conversation_created_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/conversation_item.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/conversation_item_added.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/conversation_item_create_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/conversation_item_create_event_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/conversation_item_created_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/conversation_item_delete_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/conversation_item_delete_event_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/conversation_item_deleted_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/conversation_item_done.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/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.5}/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.5}/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.5}/src/avartha/types/realtime/conversation_item_input_audio_transcription_segment.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/conversation_item_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/conversation_item_retrieve_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/conversation_item_retrieve_event_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/conversation_item_truncate_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/conversation_item_truncate_event_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/conversation_item_truncated_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/input_audio_buffer_append_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/input_audio_buffer_append_event_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/input_audio_buffer_clear_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/input_audio_buffer_clear_event_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/input_audio_buffer_cleared_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/input_audio_buffer_commit_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/input_audio_buffer_commit_event_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/input_audio_buffer_committed_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/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.5}/src/avartha/types/realtime/input_audio_buffer_speech_started_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/input_audio_buffer_speech_stopped_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/input_audio_buffer_timeout_triggered.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/log_prob_properties.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/mcp_list_tools_completed.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/mcp_list_tools_failed.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/mcp_list_tools_in_progress.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/noise_reduction_type.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/output_audio_buffer_clear_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/output_audio_buffer_clear_event_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/rate_limits_updated_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_audio_config.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_audio_config_input.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_audio_config_input_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_audio_config_output.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_audio_config_output_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_audio_config_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_audio_formats.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_audio_formats_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_audio_input_turn_detection.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_audio_input_turn_detection_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_client_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_client_event_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_conversation_item_assistant_message.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_conversation_item_assistant_message_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_conversation_item_function_call.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_conversation_item_function_call_output.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/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.5}/src/avartha/types/realtime/realtime_conversation_item_function_call_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_conversation_item_system_message.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_conversation_item_system_message_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_conversation_item_user_message.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_conversation_item_user_message_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_error.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_error_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_function_tool.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_function_tool_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_mcp_approval_request.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_mcp_approval_request_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_mcp_approval_response.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_mcp_approval_response_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_mcp_list_tools.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_mcp_list_tools_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_mcp_protocol_error.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_mcp_protocol_error_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_mcp_tool_call.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_mcp_tool_call_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_mcp_tool_execution_error.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_mcp_tool_execution_error_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_mcphttp_error.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_mcphttp_error_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_reasoning.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_reasoning_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_response.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_response_create_audio_output.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_response_create_audio_output_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_response_create_mcp_tool.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_response_create_mcp_tool_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_response_create_params.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_response_create_params_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_response_status.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_response_usage.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_response_usage_input_token_details.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_response_usage_output_token_details.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_server_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_session_create_request.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_session_create_request_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_tool_choice_config.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_tool_choice_config_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_tools_config.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_tools_config_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_tools_config_union.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_tracing_config.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_tracing_config_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_transcription_session_audio.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_transcription_session_audio_input.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_transcription_session_audio_input_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/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.5}/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.5}/src/avartha/types/realtime/realtime_transcription_session_audio_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_transcription_session_create_request.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_transcription_session_create_request_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_truncation.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_truncation_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_truncation_retention_ratio.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/realtime_truncation_retention_ratio_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/response_audio_delta_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/response_audio_done_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/response_audio_transcript_delta_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/response_audio_transcript_done_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/response_cancel_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/response_cancel_event_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/response_content_part_added_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/response_content_part_done_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/response_create_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/response_create_event_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/response_created_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/response_done_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/response_function_call_arguments_delta_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/response_function_call_arguments_done_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/response_mcp_call_arguments_delta.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/response_mcp_call_arguments_done.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/response_mcp_call_completed.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/response_mcp_call_failed.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/response_mcp_call_in_progress.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/response_output_item_added_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/response_output_item_done_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/response_text_delta_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/response_text_done_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/session_created_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/session_update_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/session_update_event_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/realtime/session_updated_event.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/responses/__init__.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/responses/image_detail.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/responses/response_input_file.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/responses/response_input_file_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/responses/response_input_image.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/responses/response_input_image_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/responses/response_input_text.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/responses/response_input_text_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/responses/response_prompt.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/responses/response_prompt_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/responses/tool_choice_function.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/responses/tool_choice_function_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/responses/tool_choice_mcp.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/responses/tool_choice_mcp_param.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/responses/tool_choice_options.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/shared/__init__.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/shared/metadata.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/shared_params/__init__.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/shared_params/metadata.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/__init__.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/alignment.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/audio_output_multi.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/close_context.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/close_socket.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/final_output_multi.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/fine_tuning_response.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/fine_tuning_response_state_value.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/flush_context.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/generation_config.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/get_voices_response.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/get_voices_v_2_response.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/initialize_connection_multi.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/language_response.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/manual_verification_file_response.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/manual_verification_response.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/model.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/model_rates_response_model.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/normalized_alignment.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/output_format.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/pronunciation_dictionary_locator.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/reader_resource_response_model.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/reader_resource_response_model_resource_type.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/realtime_voice_settings.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/recording_response.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/review_status.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/send_text_multi.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/speaker_response_model.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/speaker_separation_response_model.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/speaker_separation_response_model_status.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/utterance_response_model.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/verification_attempt_response.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/verified_voice_language_response_model.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/voice.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/voice_category.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/voice_labelling_status.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/voice_recording_quality.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/voice_safety_control.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/voice_sample.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/voice_settings.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/voice_sharing_moderation_check_response_model.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/voice_sharing_response.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/voice_sharing_response_category.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/voice_sharing_state.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/speech/voice_verification_response.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/speech_language.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/websocket_connection_options.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha/types/websocket_reconnection.py +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha_python_sdk.egg-info/dependency_links.txt +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha_python_sdk.egg-info/requires.txt +0 -0
- {avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/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.5
|
|
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,18 @@ 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
|
+
Send mono PCM16 audio and await a committed transcript.
|
|
215
225
|
[The complete example](examples/realtime_asr.py) reads a WAV file, registers
|
|
216
226
|
transcript/error callbacks, streams chunks, commits, and closes the connection:
|
|
217
227
|
|
|
@@ -354,10 +364,12 @@ automatically. See [timeouts and cleanup](docs/migration.md#timeouts-retries-and
|
|
|
354
364
|
|
|
355
365
|
Without an explicit URL, protocol clients derive their URL from
|
|
356
366
|
`AVARTHA_BASE_URL`, defaulting to `https://platform.preview.avartha.ai` and the
|
|
357
|
-
`serverless` tier.
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
root, and an explicit
|
|
367
|
+
`serverless` tier. Only serverless inference is supported. Unsupported `tier`
|
|
368
|
+
values and dedicated inference URLs raise `ConfigurationError` locally before
|
|
369
|
+
any request; the SDK does not silently change the selected tier.
|
|
370
|
+
`AVARTHA_ELEVENLABS_BASE_URL` overrides the derived speech root, and an explicit
|
|
371
|
+
protocol `base_url` overrides its derived URL. URL overrides do not bypass tier
|
|
372
|
+
validation.
|
|
361
373
|
|
|
362
374
|
Keys are read at construction from `AVARTHA_API_KEY` or `api_key`.
|
|
363
375
|
Vendor default keys and base URL variables are not substituted.
|
|
@@ -379,7 +391,6 @@ with Avartha() as client:
|
|
|
379
391
|
print(client.control.catalog.skus(provider="modal"))
|
|
380
392
|
print(client.control.organizations.list())
|
|
381
393
|
print(client.control.organizations.limits("your-workspace-id"))
|
|
382
|
-
print(client.control.endpoints.list(workspace_id="your-workspace-id"))
|
|
383
394
|
```
|
|
384
395
|
|
|
385
396
|
`client.openai` and `client.elevenlabs` are the protocol clients;
|
|
@@ -392,15 +403,11 @@ creation, revocation, and acceptance. For example,
|
|
|
392
403
|
See [workspace administration](docs/platform.md#workspace-administration) for
|
|
393
404
|
sync/async usage and server permissions.
|
|
394
405
|
|
|
395
|
-
Endpoint creation, readiness waiting,
|
|
396
|
-
scaling, routing, stopping, and deletion are described in the
|
|
397
|
-
[management guide](docs/platform.md).
|
|
398
|
-
|
|
399
406
|
## Examples
|
|
400
407
|
|
|
401
408
|
Runnable examples cover [Realtime text](examples/realtime.py),
|
|
402
409
|
[TTS](examples/tts.py), [multi-context TTS](examples/tts_multi_context.py),
|
|
403
|
-
[ASR](examples/realtime_asr.py)
|
|
410
|
+
[ASR](examples/realtime_asr.py).
|
|
404
411
|
Microphone capture and speaker playback are handled by your application.
|
|
405
412
|
|
|
406
413
|
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,11 +115,11 @@ 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 |
|
|
@@ -261,12 +261,14 @@ option in the SDK does not make it available on the server. Runnable examples:
|
|
|
261
261
|
## URLs and authentication
|
|
262
262
|
|
|
263
263
|
- `Avartha` and `Control` accept a platform root, including a proxy prefix.
|
|
264
|
-
- OpenAI defaults to `ROOT/inference/
|
|
265
|
-
- ElevenLabs defaults to `ROOT/inference/
|
|
264
|
+
- OpenAI defaults to `ROOT/inference/serverless/openai/v1`, using bearer auth.
|
|
265
|
+
- ElevenLabs defaults to `ROOT/inference/serverless/elevenlabs` and appends its
|
|
266
266
|
original `/v1/...` paths, using `xi-api-key`.
|
|
267
267
|
- An explicit protocol `base_url` is a full dialect/service base. Speech also
|
|
268
268
|
supports `AVARTHA_ELEVENLABS_BASE_URL` as an override.
|
|
269
|
-
- Both protocol clients
|
|
269
|
+
- Both protocol clients support only `tier="serverless"`. Other tier values and
|
|
270
|
+
dedicated inference URLs raise `ConfigurationError` before any request,
|
|
271
|
+
including with explicit or environment URL overrides.
|
|
270
272
|
- HTTP/HTTPS maps to WS/WSS. No implicit hosted-vendor credential fallback exists.
|
|
271
273
|
- Clients never read vendor environment variables. `OPENAI_ADMIN_KEY`,
|
|
272
274
|
`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
|
|
@@ -229,6 +229,25 @@ 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
|
+
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
|
+
|
|
232
251
|
`previous_text` supplies optional text context for transcription. When omitted,
|
|
233
252
|
Avartha sends `null`, meaning no context. Audio-send code can omit the field:
|
|
234
253
|
|
|
@@ -237,14 +256,18 @@ async def send_audio(connection, encoded_chunk):
|
|
|
237
256
|
await connection.send({"audio_base_64": encoded_chunk})
|
|
238
257
|
```
|
|
239
258
|
|
|
240
|
-
|
|
259
|
+
The [complete ASR example](../examples/realtime_asr.py) uses `AsyncElevenLabs`,
|
|
260
|
+
waits for a committed transcript, and awaits `connection.close()` in `finally`.
|
|
261
|
+
For a combined inference and management client, adapt that example to use
|
|
262
|
+
`async with AsyncAvartha() as client` and connect through
|
|
263
|
+
`await client.elevenlabs.speech_to_text.realtime.connect(options)`.
|
|
241
264
|
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
265
|
+
In a standalone script, put the complete session workflow in an async function
|
|
266
|
+
and call it once with `asyncio.run(main())`. Keep connection creation, audio
|
|
267
|
+
sending, transcript handling, and session cleanup on that same event loop.
|
|
268
|
+
In an application or notebook with a running event loop, await the workflow
|
|
269
|
+
directly instead of calling `asyncio.run()`. Close the live session before
|
|
270
|
+
leaving the client context; closing the client only closes its HTTP transports.
|
|
248
271
|
|
|
249
272
|
## Configuration
|
|
250
273
|
|
|
@@ -252,8 +275,8 @@ including the deprecated `UNACCEPTED_TERMS_ERROR` callback alias.
|
|
|
252
275
|
| --- | --- |
|
|
253
276
|
| Default API key | `AVARTHA_API_KEY`, read at construction |
|
|
254
277
|
| Default platform root | `AVARTHA_BASE_URL`, or `https://platform.preview.avartha.ai` |
|
|
255
|
-
|
|
|
256
|
-
| Explicit `OpenAI(base_url=...)` | Full base including `/inference/
|
|
278
|
+
| Inference tier | `serverless` only; other values raise `ConfigurationError` locally |
|
|
279
|
+
| Explicit `OpenAI(base_url=...)` | Full base including `/inference/serverless/openai/v1` |
|
|
257
280
|
| Explicit OpenAI `websocket_base_url` | Optional `wss://` service base before `/realtime`; other schemes are rejected |
|
|
258
281
|
| Explicit `ElevenLabs(base_url=...)` | Speech service root before `/v1` |
|
|
259
282
|
| Speech URL override | Explicit `base_url`, then `AVARTHA_ELEVENLABS_BASE_URL`, then the derived platform URL |
|
|
@@ -261,10 +284,12 @@ including the deprecated `UNACCEPTED_TERMS_ERROR` callback alias.
|
|
|
261
284
|
| Existing vendor key/URL variables | Update to Avartha variables or explicit arguments |
|
|
262
285
|
| Model and voice names | Use IDs supported by the configured service; no automatic mapping |
|
|
263
286
|
|
|
264
|
-
Explicit protocol URLs
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
287
|
+
Explicit protocol URLs override the derived service URL. Only serverless
|
|
288
|
+
inference is supported: unsupported `tier` values are rejected even with a URL
|
|
289
|
+
override, and dedicated inference URLs are rejected before any request. Proxy
|
|
290
|
+
path prefixes are preserved. Without a WebSocket override, the SDK derives a
|
|
291
|
+
WS/WSS address from the HTTP/HTTPS service base. Avartha keys are never routed
|
|
292
|
+
to an implicit hosted OpenAI or ElevenLabs endpoint.
|
|
268
293
|
|
|
269
294
|
Speech clients also accept `environment` as a service URL or URL-valued enum
|
|
270
295
|
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,
|
|
@@ -8,12 +8,28 @@ from urllib.parse import urlsplit, urlunsplit
|
|
|
8
8
|
|
|
9
9
|
import httpx
|
|
10
10
|
|
|
11
|
-
Tier = Literal["serverless"
|
|
11
|
+
Tier = Literal["serverless"]
|
|
12
12
|
DEFAULT_BASE_URL = "https://platform.preview.avartha.ai"
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
class ConfigurationError(ValueError):
|
|
16
|
-
"""Missing credentials or an invalid service URL."""
|
|
16
|
+
"""Missing credentials, an unsupported tier, or an invalid service URL."""
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def validate_tier(tier: Tier) -> None:
|
|
20
|
+
if tier != "serverless":
|
|
21
|
+
raise ConfigurationError(
|
|
22
|
+
"Only tier='serverless' is supported. Dedicated capacity is unavailable."
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def reject_dedicated_url(value: str) -> str:
|
|
27
|
+
"""Reject the dedicated inference route, including behind a proxy prefix."""
|
|
28
|
+
if re.search(r"(?:^|/)inference/dedicated(?:/|$)", httpx.URL(value).path):
|
|
29
|
+
raise ConfigurationError(
|
|
30
|
+
"Dedicated capacity is unavailable. Use a serverless inference URL."
|
|
31
|
+
)
|
|
32
|
+
return value
|
|
17
33
|
|
|
18
34
|
|
|
19
35
|
def api_key(value: str | None) -> str:
|
|
@@ -41,12 +57,13 @@ def http_url(value: str) -> str:
|
|
|
41
57
|
or (parts.port is not None and not 1 <= parts.port <= 65535)
|
|
42
58
|
):
|
|
43
59
|
raise ValueError("Invalid URL authority")
|
|
44
|
-
|
|
60
|
+
normalized = str(httpx.URL(value)).rstrip("/")
|
|
45
61
|
except (ValueError, httpx.InvalidURL):
|
|
46
62
|
raise ConfigurationError(
|
|
47
63
|
"Use an absolute http(s) base URL without credentials, query, fragment, "
|
|
48
64
|
"whitespace, or backslashes."
|
|
49
65
|
) from None
|
|
66
|
+
return reject_dedicated_url(normalized)
|
|
50
67
|
|
|
51
68
|
|
|
52
69
|
def platform_url(value: str | None = None) -> str:
|
|
@@ -60,20 +77,18 @@ def platform_url(value: str | None = None) -> str:
|
|
|
60
77
|
|
|
61
78
|
|
|
62
79
|
def openai_url(root: str | None = None, tier: Tier = "serverless") -> str:
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
return f"{platform_url(root)}/inference/{tier}/openai/v1"
|
|
80
|
+
validate_tier(tier)
|
|
81
|
+
return f"{platform_url(root)}/inference/serverless/openai/v1"
|
|
66
82
|
|
|
67
83
|
|
|
68
84
|
def elevenlabs_url(
|
|
69
85
|
value: str | None = None, *, root: str | None = None, tier: Tier = "serverless"
|
|
70
86
|
) -> str:
|
|
87
|
+
validate_tier(tier)
|
|
71
88
|
override = value if value is not None else os.getenv("AVARTHA_ELEVENLABS_BASE_URL")
|
|
72
89
|
if override is not None:
|
|
73
90
|
return http_url(override)
|
|
74
|
-
|
|
75
|
-
raise ConfigurationError("tier must be 'serverless' or 'dedicated'.")
|
|
76
|
-
return f"{platform_url(root)}/inference/{tier}/elevenlabs"
|
|
91
|
+
return f"{platform_url(root)}/inference/serverless/elevenlabs"
|
|
77
92
|
|
|
78
93
|
|
|
79
94
|
def websocket_url(value: str) -> str:
|
|
@@ -147,4 +162,4 @@ def websocket_override(value: str) -> str:
|
|
|
147
162
|
"websocket_base_url must be the service base before /realtime; "
|
|
148
163
|
"the SDK appends /realtime when connecting."
|
|
149
164
|
)
|
|
150
|
-
return not_vendor_host(normalized, field="websocket_base_url")
|
|
165
|
+
return not_vendor_host(reject_dedicated_url(normalized), field="websocket_base_url")
|
|
@@ -16,6 +16,12 @@ class Avartha:
|
|
|
16
16
|
|
|
17
17
|
openai_options, elevenlabs_options and control_options are forwarded to
|
|
18
18
|
their respective constructors (for timeouts, transports, retry settings).
|
|
19
|
+
|
|
20
|
+
Live STT through elevenlabs.speech_to_text.realtime remains asynchronous.
|
|
21
|
+
Await connect(), send(), commit(), and the transcription connection's close().
|
|
22
|
+
Register callbacks with on() without awaiting. Use AsyncAvartha for an async
|
|
23
|
+
application.
|
|
24
|
+
Close live sessions separately before closing this client.
|
|
19
25
|
"""
|
|
20
26
|
|
|
21
27
|
def __init__(
|
|
@@ -30,6 +36,9 @@ class Avartha:
|
|
|
30
36
|
elevenlabs_options: dict[str, Any] | None = None,
|
|
31
37
|
control_options: dict[str, Any] | None = None,
|
|
32
38
|
) -> None:
|
|
39
|
+
_config.validate_tier(tier)
|
|
40
|
+
for options in (openai_options, elevenlabs_options):
|
|
41
|
+
_config.validate_tier((options or {}).get("tier", "serverless"))
|
|
33
42
|
key, root = _config.api_key(api_key), _config.platform_url(base_url)
|
|
34
43
|
self._elevenlabs_base_url = _config.elevenlabs_url(
|
|
35
44
|
elevenlabs_base_url, root=root, tier=tier
|
|
@@ -99,6 +108,9 @@ class AsyncAvartha:
|
|
|
99
108
|
elevenlabs_options: dict[str, Any] | None = None,
|
|
100
109
|
control_options: dict[str, Any] | None = None,
|
|
101
110
|
) -> None:
|
|
111
|
+
_config.validate_tier(tier)
|
|
112
|
+
for options in (openai_options, elevenlabs_options):
|
|
113
|
+
_config.validate_tier((options or {}).get("tier", "serverless"))
|
|
102
114
|
key, root = _config.api_key(api_key), _config.platform_url(base_url)
|
|
103
115
|
self._elevenlabs_base_url = _config.elevenlabs_url(
|
|
104
116
|
elevenlabs_base_url, root=root, tier=tier
|
|
@@ -45,6 +45,7 @@ class _Client:
|
|
|
45
45
|
environment: str | Enum | None = None,
|
|
46
46
|
websocket_limits: WebSocketLimits | None = None,
|
|
47
47
|
) -> None:
|
|
48
|
+
_config.validate_tier(tier)
|
|
48
49
|
self.api_key = _config.api_key(api_key)
|
|
49
50
|
if base_url is None and environment is not None:
|
|
50
51
|
base_url = str(environment.value) if isinstance(environment, Enum) else environment
|
|
@@ -121,6 +121,7 @@ class _Client:
|
|
|
121
121
|
_enforce_credentials: bool = True,
|
|
122
122
|
tier: Tier = "serverless",
|
|
123
123
|
) -> None:
|
|
124
|
+
_config.validate_tier(tier)
|
|
124
125
|
if data_residency is not None:
|
|
125
126
|
raise ConfigurationError(
|
|
126
127
|
"data_residency selects a vendor host; use an Avartha base_url."
|
|
@@ -3,4 +3,6 @@
|
|
|
3
3
|
from typing import Literal, TypeAlias
|
|
4
4
|
|
|
5
5
|
__all__ = ["RealtimeReasoningEffort"]
|
|
6
|
-
RealtimeReasoningEffort: TypeAlias = Literal[
|
|
6
|
+
RealtimeReasoningEffort: TypeAlias = Literal[
|
|
7
|
+
"none", "minimal", "low", "medium", "high", "xhigh", "max"
|
|
8
|
+
]
|
{avartha_python_sdk-0.0.4 → avartha_python_sdk-0.0.5}/src/avartha_python_sdk.egg-info/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: avartha-python-sdk
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.5
|
|
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,
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
"""Provision a dedicated endpoint. This requests GPU capacity and may incur costs.
|
|
2
|
-
|
|
3
|
-
Set AVARTHA_API_KEY and optionally AVARTHA_BASE_URL.
|
|
4
|
-
Run: python examples/endpoints.py WORKSPACE_ID MODEL_SLUG NAME sku.json
|
|
5
|
-
The SKU JSON contains provider, cpu (cores, memory_gb), and gpu (kind, count).
|
|
6
|
-
Use client.control.catalog.skus(provider=...) for provider-specific options.
|
|
7
|
-
The endpoint remains running after this example exits.
|
|
8
|
-
"""
|
|
9
|
-
|
|
10
|
-
import argparse
|
|
11
|
-
import json
|
|
12
|
-
from pathlib import Path
|
|
13
|
-
|
|
14
|
-
from avartha import Avartha
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
def main():
|
|
18
|
-
parser = argparse.ArgumentParser(description=__doc__)
|
|
19
|
-
parser.add_argument("workspace")
|
|
20
|
-
parser.add_argument("model")
|
|
21
|
-
parser.add_argument("name")
|
|
22
|
-
parser.add_argument("sku_file", type=Path)
|
|
23
|
-
args = parser.parse_args()
|
|
24
|
-
with Avartha() as client:
|
|
25
|
-
endpoints = client.control.endpoints
|
|
26
|
-
endpoint = endpoints.create(
|
|
27
|
-
workspace_id=args.workspace,
|
|
28
|
-
model_slug=args.model,
|
|
29
|
-
name=args.name,
|
|
30
|
-
sku=json.loads(args.sku_file.read_text()),
|
|
31
|
-
)
|
|
32
|
-
print("Created:", endpoint["id"])
|
|
33
|
-
ready = endpoints.wait_until_ready(endpoint["id"], timeout=600)
|
|
34
|
-
print("Ready:", ready)
|
|
35
|
-
print("To stop: client.control.endpoints.stop(endpoint_id)")
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
if __name__ == "__main__":
|
|
39
|
-
main()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|