vapi_server_sdk 0.0.0.pre.alpha7
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.
- checksums.yaml +7 -0
- data/lib/core/file_utilities.rb +26 -0
- data/lib/environment.rb +7 -0
- data/lib/gemconfig.rb +14 -0
- data/lib/requests.rb +174 -0
- data/lib/types_export.rb +526 -0
- data/lib/vapi_server_sdk/analytics/client.rb +115 -0
- data/lib/vapi_server_sdk/assistants/client.rb +949 -0
- data/lib/vapi_server_sdk/assistants/types/update_assistant_dto_background_sound.rb +12 -0
- data/lib/vapi_server_sdk/assistants/types/update_assistant_dto_client_messages_item.rb +22 -0
- data/lib/vapi_server_sdk/assistants/types/update_assistant_dto_first_message_mode.rb +21 -0
- data/lib/vapi_server_sdk/assistants/types/update_assistant_dto_model.rb +201 -0
- data/lib/vapi_server_sdk/assistants/types/update_assistant_dto_server_messages_item.rb +23 -0
- data/lib/vapi_server_sdk/assistants/types/update_assistant_dto_transcriber.rb +110 -0
- data/lib/vapi_server_sdk/assistants/types/update_assistant_dto_voice.rb +188 -0
- data/lib/vapi_server_sdk/blocks/client.rb +552 -0
- data/lib/vapi_server_sdk/blocks/types/blocks_create_request.rb +109 -0
- data/lib/vapi_server_sdk/blocks/types/blocks_create_response.rb +109 -0
- data/lib/vapi_server_sdk/blocks/types/blocks_delete_response.rb +109 -0
- data/lib/vapi_server_sdk/blocks/types/blocks_get_response.rb +109 -0
- data/lib/vapi_server_sdk/blocks/types/blocks_list_response_item.rb +109 -0
- data/lib/vapi_server_sdk/blocks/types/blocks_update_response.rb +109 -0
- data/lib/vapi_server_sdk/blocks/types/update_block_dto_messages_item.rb +96 -0
- data/lib/vapi_server_sdk/blocks/types/update_block_dto_steps_item.rb +96 -0
- data/lib/vapi_server_sdk/blocks/types/update_block_dto_tool.rb +163 -0
- data/lib/vapi_server_sdk/calls/client.rb +966 -0
- data/lib/vapi_server_sdk/files/client.rb +347 -0
- data/lib/vapi_server_sdk/logs/client.rb +174 -0
- data/lib/vapi_server_sdk/logs/types/logs_get_request_sort_order.rb +10 -0
- data/lib/vapi_server_sdk/logs/types/logs_get_request_type.rb +12 -0
- data/lib/vapi_server_sdk/phone_numbers/client.rb +455 -0
- data/lib/vapi_server_sdk/phone_numbers/types/phone_numbers_create_request.rb +122 -0
- data/lib/vapi_server_sdk/phone_numbers/types/phone_numbers_create_response.rb +122 -0
- data/lib/vapi_server_sdk/phone_numbers/types/phone_numbers_delete_response.rb +122 -0
- data/lib/vapi_server_sdk/phone_numbers/types/phone_numbers_get_response.rb +122 -0
- data/lib/vapi_server_sdk/phone_numbers/types/phone_numbers_list_response_item.rb +122 -0
- data/lib/vapi_server_sdk/phone_numbers/types/phone_numbers_update_response.rb +122 -0
- data/lib/vapi_server_sdk/phone_numbers/types/update_phone_number_dto_fallback_destination.rb +103 -0
- data/lib/vapi_server_sdk/squads/client.rb +1050 -0
- data/lib/vapi_server_sdk/tools/client.rb +473 -0
- data/lib/vapi_server_sdk/tools/types/tools_create_request.rb +161 -0
- data/lib/vapi_server_sdk/tools/types/tools_create_response.rb +161 -0
- data/lib/vapi_server_sdk/tools/types/tools_delete_response.rb +161 -0
- data/lib/vapi_server_sdk/tools/types/tools_get_response.rb +161 -0
- data/lib/vapi_server_sdk/tools/types/tools_list_response_item.rb +161 -0
- data/lib/vapi_server_sdk/tools/types/tools_update_response.rb +161 -0
- data/lib/vapi_server_sdk/tools/types/update_tool_dto_messages_item.rb +122 -0
- data/lib/vapi_server_sdk/types/add_voice_to_provider_dto.rb +78 -0
- data/lib/vapi_server_sdk/types/analysis.rb +88 -0
- data/lib/vapi_server_sdk/types/analysis_cost.rb +93 -0
- data/lib/vapi_server_sdk/types/analysis_cost_analysis_type.rb +10 -0
- data/lib/vapi_server_sdk/types/analysis_cost_breakdown.rb +137 -0
- data/lib/vapi_server_sdk/types/analysis_plan.rb +103 -0
- data/lib/vapi_server_sdk/types/analytics_operation.rb +76 -0
- data/lib/vapi_server_sdk/types/analytics_operation_column.rb +17 -0
- data/lib/vapi_server_sdk/types/analytics_operation_operation.rb +12 -0
- data/lib/vapi_server_sdk/types/analytics_query.rb +107 -0
- data/lib/vapi_server_sdk/types/analytics_query_group_by_item.rb +11 -0
- data/lib/vapi_server_sdk/types/analytics_query_result.rb +96 -0
- data/lib/vapi_server_sdk/types/anthropic_credential.rb +101 -0
- data/lib/vapi_server_sdk/types/anthropic_model.rb +170 -0
- data/lib/vapi_server_sdk/types/anthropic_model_model.rb +11 -0
- data/lib/vapi_server_sdk/types/anthropic_model_tools_item.rb +159 -0
- data/lib/vapi_server_sdk/types/anyscale_credential.rb +101 -0
- data/lib/vapi_server_sdk/types/anyscale_model.rb +169 -0
- data/lib/vapi_server_sdk/types/anyscale_model_tools_item.rb +159 -0
- data/lib/vapi_server_sdk/types/artifact.rb +133 -0
- data/lib/vapi_server_sdk/types/artifact_messages_item.rb +96 -0
- data/lib/vapi_server_sdk/types/artifact_plan.rb +139 -0
- data/lib/vapi_server_sdk/types/assignment_mutation.rb +189 -0
- data/lib/vapi_server_sdk/types/assignment_mutation_conditions_item.rb +94 -0
- data/lib/vapi_server_sdk/types/assistant.rb +562 -0
- data/lib/vapi_server_sdk/types/assistant_background_sound.rb +10 -0
- data/lib/vapi_server_sdk/types/assistant_client_messages_item.rb +20 -0
- data/lib/vapi_server_sdk/types/assistant_first_message_mode.rb +19 -0
- data/lib/vapi_server_sdk/types/assistant_model.rb +199 -0
- data/lib/vapi_server_sdk/types/assistant_overrides.rb +539 -0
- data/lib/vapi_server_sdk/types/assistant_overrides_background_sound.rb +10 -0
- data/lib/vapi_server_sdk/types/assistant_overrides_client_messages_item.rb +20 -0
- data/lib/vapi_server_sdk/types/assistant_overrides_first_message_mode.rb +19 -0
- data/lib/vapi_server_sdk/types/assistant_overrides_model.rb +199 -0
- data/lib/vapi_server_sdk/types/assistant_overrides_server_messages_item.rb +21 -0
- data/lib/vapi_server_sdk/types/assistant_overrides_transcriber.rb +108 -0
- data/lib/vapi_server_sdk/types/assistant_overrides_voice.rb +186 -0
- data/lib/vapi_server_sdk/types/assistant_server_messages_item.rb +21 -0
- data/lib/vapi_server_sdk/types/assistant_transcriber.rb +108 -0
- data/lib/vapi_server_sdk/types/assistant_voice.rb +186 -0
- data/lib/vapi_server_sdk/types/azure_open_ai_credential.rb +128 -0
- data/lib/vapi_server_sdk/types/azure_open_ai_credential_models_item.rb +14 -0
- data/lib/vapi_server_sdk/types/azure_open_ai_credential_region.rb +21 -0
- data/lib/vapi_server_sdk/types/azure_voice.rb +104 -0
- data/lib/vapi_server_sdk/types/azure_voice_id.rb +53 -0
- data/lib/vapi_server_sdk/types/azure_voice_id_enum.rb +9 -0
- data/lib/vapi_server_sdk/types/block_complete_message.rb +73 -0
- data/lib/vapi_server_sdk/types/block_complete_message_conditions_item.rb +94 -0
- data/lib/vapi_server_sdk/types/block_start_message.rb +73 -0
- data/lib/vapi_server_sdk/types/block_start_message_conditions_item.rb +94 -0
- data/lib/vapi_server_sdk/types/bot_message.rb +111 -0
- data/lib/vapi_server_sdk/types/bucket_plan.rb +139 -0
- data/lib/vapi_server_sdk/types/buy_phone_number_dto.rb +151 -0
- data/lib/vapi_server_sdk/types/buy_phone_number_dto_fallback_destination.rb +100 -0
- data/lib/vapi_server_sdk/types/byo_phone_number.rb +224 -0
- data/lib/vapi_server_sdk/types/byo_phone_number_fallback_destination.rb +100 -0
- data/lib/vapi_server_sdk/types/byo_sip_trunk_credential.rb +166 -0
- data/lib/vapi_server_sdk/types/call.rb +425 -0
- data/lib/vapi_server_sdk/types/call_costs_item.rb +146 -0
- data/lib/vapi_server_sdk/types/call_destination.rb +96 -0
- data/lib/vapi_server_sdk/types/call_ended_reason.rb +175 -0
- data/lib/vapi_server_sdk/types/call_messages_item.rb +96 -0
- data/lib/vapi_server_sdk/types/call_paginated_response.rb +75 -0
- data/lib/vapi_server_sdk/types/call_phone_call_provider.rb +11 -0
- data/lib/vapi_server_sdk/types/call_phone_call_transport.rb +10 -0
- data/lib/vapi_server_sdk/types/call_status.rb +12 -0
- data/lib/vapi_server_sdk/types/call_type.rb +10 -0
- data/lib/vapi_server_sdk/types/callback_step.rb +204 -0
- data/lib/vapi_server_sdk/types/callback_step_block.rb +108 -0
- data/lib/vapi_server_sdk/types/cartesia_credential.rb +101 -0
- data/lib/vapi_server_sdk/types/cartesia_voice.rb +113 -0
- data/lib/vapi_server_sdk/types/cartesia_voice_language.rb +15 -0
- data/lib/vapi_server_sdk/types/cartesia_voice_model.rb +10 -0
- data/lib/vapi_server_sdk/types/chunk_plan.rb +128 -0
- data/lib/vapi_server_sdk/types/client_inbound_message.rb +63 -0
- data/lib/vapi_server_sdk/types/client_inbound_message_add_message.rb +61 -0
- data/lib/vapi_server_sdk/types/client_inbound_message_control.rb +56 -0
- data/lib/vapi_server_sdk/types/client_inbound_message_control_control.rb +10 -0
- data/lib/vapi_server_sdk/types/client_inbound_message_message.rb +109 -0
- data/lib/vapi_server_sdk/types/client_inbound_message_say.rb +67 -0
- data/lib/vapi_server_sdk/types/client_message.rb +65 -0
- data/lib/vapi_server_sdk/types/client_message_conversation_update.rb +79 -0
- data/lib/vapi_server_sdk/types/client_message_conversation_update_messages_item.rb +97 -0
- data/lib/vapi_server_sdk/types/client_message_hang.rb +47 -0
- data/lib/vapi_server_sdk/types/client_message_language_changed.rb +55 -0
- data/lib/vapi_server_sdk/types/client_message_message.rb +214 -0
- data/lib/vapi_server_sdk/types/client_message_metadata.rb +55 -0
- data/lib/vapi_server_sdk/types/client_message_model_output.rb +55 -0
- data/lib/vapi_server_sdk/types/client_message_speech_update.rb +67 -0
- data/lib/vapi_server_sdk/types/client_message_speech_update_role.rb +9 -0
- data/lib/vapi_server_sdk/types/client_message_speech_update_status.rb +9 -0
- data/lib/vapi_server_sdk/types/client_message_tool_calls.rb +75 -0
- data/lib/vapi_server_sdk/types/client_message_tool_calls_result.rb +55 -0
- data/lib/vapi_server_sdk/types/client_message_tool_calls_tool_with_tool_call_list_item.rb +108 -0
- data/lib/vapi_server_sdk/types/client_message_transcript.rb +74 -0
- data/lib/vapi_server_sdk/types/client_message_transcript_role.rb +9 -0
- data/lib/vapi_server_sdk/types/client_message_transcript_transcript_type.rb +9 -0
- data/lib/vapi_server_sdk/types/client_message_user_interrupted.rb +47 -0
- data/lib/vapi_server_sdk/types/client_message_voice_input.rb +55 -0
- data/lib/vapi_server_sdk/types/clone_voice_dto.rb +83 -0
- data/lib/vapi_server_sdk/types/condition.rb +73 -0
- data/lib/vapi_server_sdk/types/condition_operator.rb +13 -0
- data/lib/vapi_server_sdk/types/conversation_block.rb +239 -0
- data/lib/vapi_server_sdk/types/conversation_block_messages_item.rb +94 -0
- data/lib/vapi_server_sdk/types/cost_breakdown.rb +141 -0
- data/lib/vapi_server_sdk/types/create_anthropic_credential_dto.rb +65 -0
- data/lib/vapi_server_sdk/types/create_anyscale_credential_dto.rb +65 -0
- data/lib/vapi_server_sdk/types/create_assistant_dto.rb +529 -0
- data/lib/vapi_server_sdk/types/create_assistant_dto_background_sound.rb +10 -0
- data/lib/vapi_server_sdk/types/create_assistant_dto_client_messages_item.rb +20 -0
- data/lib/vapi_server_sdk/types/create_assistant_dto_first_message_mode.rb +19 -0
- data/lib/vapi_server_sdk/types/create_assistant_dto_model.rb +199 -0
- data/lib/vapi_server_sdk/types/create_assistant_dto_server_messages_item.rb +21 -0
- data/lib/vapi_server_sdk/types/create_assistant_dto_transcriber.rb +108 -0
- data/lib/vapi_server_sdk/types/create_assistant_dto_voice.rb +186 -0
- data/lib/vapi_server_sdk/types/create_azure_open_ai_credential_dto.rb +94 -0
- data/lib/vapi_server_sdk/types/create_azure_open_ai_credential_dto_models_item.rb +14 -0
- data/lib/vapi_server_sdk/types/create_azure_open_ai_credential_dto_region.rb +21 -0
- data/lib/vapi_server_sdk/types/create_byo_phone_number_dto.rb +191 -0
- data/lib/vapi_server_sdk/types/create_byo_phone_number_dto_fallback_destination.rb +101 -0
- data/lib/vapi_server_sdk/types/create_byo_sip_trunk_credential_dto.rb +133 -0
- data/lib/vapi_server_sdk/types/create_cartesia_credential_dto.rb +65 -0
- data/lib/vapi_server_sdk/types/create_conversation_block_dto.rb +206 -0
- data/lib/vapi_server_sdk/types/create_conversation_block_dto_messages_item.rb +95 -0
- data/lib/vapi_server_sdk/types/create_custom_llm_credential_dto.rb +65 -0
- data/lib/vapi_server_sdk/types/create_customer_dto.rb +117 -0
- data/lib/vapi_server_sdk/types/create_deep_infra_credential_dto.rb +65 -0
- data/lib/vapi_server_sdk/types/create_deepgram_credential_dto.rb +76 -0
- data/lib/vapi_server_sdk/types/create_dtmf_tool_dto.rb +139 -0
- data/lib/vapi_server_sdk/types/create_dtmf_tool_dto_messages_item.rb +120 -0
- data/lib/vapi_server_sdk/types/create_eleven_labs_credential_dto.rb +65 -0
- data/lib/vapi_server_sdk/types/create_end_call_tool_dto.rb +139 -0
- data/lib/vapi_server_sdk/types/create_end_call_tool_dto_messages_item.rb +120 -0
- data/lib/vapi_server_sdk/types/create_function_tool_dto.rb +139 -0
- data/lib/vapi_server_sdk/types/create_function_tool_dto_messages_item.rb +120 -0
- data/lib/vapi_server_sdk/types/create_gcp_credential_dto.rb +104 -0
- data/lib/vapi_server_sdk/types/create_ghl_tool_dto.rb +158 -0
- data/lib/vapi_server_sdk/types/create_ghl_tool_dto_messages_item.rb +120 -0
- data/lib/vapi_server_sdk/types/create_gladia_credential_dto.rb +65 -0
- data/lib/vapi_server_sdk/types/create_go_high_level_credential_dto.rb +65 -0
- data/lib/vapi_server_sdk/types/create_groq_credential_dto.rb +65 -0
- data/lib/vapi_server_sdk/types/create_lmnt_credential_dto.rb +65 -0
- data/lib/vapi_server_sdk/types/create_make_credential_dto.rb +79 -0
- data/lib/vapi_server_sdk/types/create_make_tool_dto.rb +158 -0
- data/lib/vapi_server_sdk/types/create_make_tool_dto_messages_item.rb +120 -0
- data/lib/vapi_server_sdk/types/create_open_ai_credential_dto.rb +65 -0
- data/lib/vapi_server_sdk/types/create_open_router_credential_dto.rb +65 -0
- data/lib/vapi_server_sdk/types/create_org_dto.rb +129 -0
- data/lib/vapi_server_sdk/types/create_outbound_call_dto.rb +191 -0
- data/lib/vapi_server_sdk/types/create_output_tool_dto.rb +139 -0
- data/lib/vapi_server_sdk/types/create_output_tool_dto_messages_item.rb +120 -0
- data/lib/vapi_server_sdk/types/create_perplexity_ai_credential_dto.rb +65 -0
- data/lib/vapi_server_sdk/types/create_play_ht_credential_dto.rb +72 -0
- data/lib/vapi_server_sdk/types/create_rime_ai_credential_dto.rb +65 -0
- data/lib/vapi_server_sdk/types/create_runpod_credential_dto.rb +65 -0
- data/lib/vapi_server_sdk/types/create_s_3_credential_dto.rb +101 -0
- data/lib/vapi_server_sdk/types/create_squad_dto.rb +94 -0
- data/lib/vapi_server_sdk/types/create_together_ai_credential_dto.rb +65 -0
- data/lib/vapi_server_sdk/types/create_token_dto.rb +81 -0
- data/lib/vapi_server_sdk/types/create_token_dto_tag.rb +9 -0
- data/lib/vapi_server_sdk/types/create_tool_call_block_dto.rb +168 -0
- data/lib/vapi_server_sdk/types/create_tool_call_block_dto_messages_item.rb +94 -0
- data/lib/vapi_server_sdk/types/create_tool_call_block_dto_tool.rb +161 -0
- data/lib/vapi_server_sdk/types/create_tool_template_dto.rb +131 -0
- data/lib/vapi_server_sdk/types/create_tool_template_dto_details.rb +159 -0
- data/lib/vapi_server_sdk/types/create_tool_template_dto_provider.rb +9 -0
- data/lib/vapi_server_sdk/types/create_tool_template_dto_provider_details.rb +107 -0
- data/lib/vapi_server_sdk/types/create_tool_template_dto_visibility.rb +8 -0
- data/lib/vapi_server_sdk/types/create_transfer_call_tool_dto.rb +161 -0
- data/lib/vapi_server_sdk/types/create_transfer_call_tool_dto_destinations_item.rb +121 -0
- data/lib/vapi_server_sdk/types/create_transfer_call_tool_dto_messages_item.rb +121 -0
- data/lib/vapi_server_sdk/types/create_twilio_credential_dto.rb +72 -0
- data/lib/vapi_server_sdk/types/create_twilio_phone_number_dto.rb +167 -0
- data/lib/vapi_server_sdk/types/create_twilio_phone_number_dto_fallback_destination.rb +101 -0
- data/lib/vapi_server_sdk/types/create_vapi_phone_number_dto.rb +155 -0
- data/lib/vapi_server_sdk/types/create_vapi_phone_number_dto_fallback_destination.rb +101 -0
- data/lib/vapi_server_sdk/types/create_voicemail_tool_dto.rb +139 -0
- data/lib/vapi_server_sdk/types/create_voicemail_tool_dto_messages_item.rb +120 -0
- data/lib/vapi_server_sdk/types/create_vonage_credential_dto.rb +72 -0
- data/lib/vapi_server_sdk/types/create_vonage_phone_number_dto.rb +161 -0
- data/lib/vapi_server_sdk/types/create_vonage_phone_number_dto_fallback_destination.rb +101 -0
- data/lib/vapi_server_sdk/types/create_web_call_dto.rb +123 -0
- data/lib/vapi_server_sdk/types/create_workflow_block_dto.rb +154 -0
- data/lib/vapi_server_sdk/types/create_workflow_block_dto_messages_item.rb +94 -0
- data/lib/vapi_server_sdk/types/create_workflow_block_dto_steps_item.rb +94 -0
- data/lib/vapi_server_sdk/types/custom_llm_credential.rb +101 -0
- data/lib/vapi_server_sdk/types/custom_llm_model.rb +204 -0
- data/lib/vapi_server_sdk/types/custom_llm_model_metadata_send_mode.rb +18 -0
- data/lib/vapi_server_sdk/types/custom_llm_model_tools_item.rb +159 -0
- data/lib/vapi_server_sdk/types/deep_infra_credential.rb +101 -0
- data/lib/vapi_server_sdk/types/deep_infra_model.rb +169 -0
- data/lib/vapi_server_sdk/types/deep_infra_model_tools_item.rb +159 -0
- data/lib/vapi_server_sdk/types/deepgram_credential.rb +114 -0
- data/lib/vapi_server_sdk/types/deepgram_transcriber.rb +143 -0
- data/lib/vapi_server_sdk/types/deepgram_transcriber_language.rb +62 -0
- data/lib/vapi_server_sdk/types/deepgram_transcriber_model.rb +34 -0
- data/lib/vapi_server_sdk/types/deepgram_voice.rb +96 -0
- data/lib/vapi_server_sdk/types/deepgram_voice_id.rb +53 -0
- data/lib/vapi_server_sdk/types/deepgram_voice_id_enum.rb +18 -0
- data/lib/vapi_server_sdk/types/dtmf_tool.rb +178 -0
- data/lib/vapi_server_sdk/types/dtmf_tool_messages_item.rb +120 -0
- data/lib/vapi_server_sdk/types/eleven_labs_credential.rb +101 -0
- data/lib/vapi_server_sdk/types/eleven_labs_voice.rb +176 -0
- data/lib/vapi_server_sdk/types/eleven_labs_voice_id.rb +54 -0
- data/lib/vapi_server_sdk/types/eleven_labs_voice_id_enum.rb +21 -0
- data/lib/vapi_server_sdk/types/eleven_labs_voice_model.rb +12 -0
- data/lib/vapi_server_sdk/types/end_call_tool.rb +178 -0
- data/lib/vapi_server_sdk/types/end_call_tool_messages_item.rb +120 -0
- data/lib/vapi_server_sdk/types/error.rb +55 -0
- data/lib/vapi_server_sdk/types/exact_replacement.rb +65 -0
- data/lib/vapi_server_sdk/types/file.rb +185 -0
- data/lib/vapi_server_sdk/types/file_status.rb +8 -0
- data/lib/vapi_server_sdk/types/format_plan.rb +130 -0
- data/lib/vapi_server_sdk/types/format_plan_replacements_item.rb +94 -0
- data/lib/vapi_server_sdk/types/function_tool.rb +178 -0
- data/lib/vapi_server_sdk/types/function_tool_messages_item.rb +120 -0
- data/lib/vapi_server_sdk/types/function_tool_provider_details.rb +71 -0
- data/lib/vapi_server_sdk/types/function_tool_with_tool_call.rb +158 -0
- data/lib/vapi_server_sdk/types/function_tool_with_tool_call_messages_item.rb +120 -0
- data/lib/vapi_server_sdk/types/gcp_credential.rb +138 -0
- data/lib/vapi_server_sdk/types/gcp_key.rb +143 -0
- data/lib/vapi_server_sdk/types/ghl_tool.rb +192 -0
- data/lib/vapi_server_sdk/types/ghl_tool_messages_item.rb +120 -0
- data/lib/vapi_server_sdk/types/ghl_tool_metadata.rb +67 -0
- data/lib/vapi_server_sdk/types/ghl_tool_provider_details.rb +115 -0
- data/lib/vapi_server_sdk/types/ghl_tool_with_tool_call.rb +173 -0
- data/lib/vapi_server_sdk/types/ghl_tool_with_tool_call_messages_item.rb +120 -0
- data/lib/vapi_server_sdk/types/gladia_credential.rb +101 -0
- data/lib/vapi_server_sdk/types/gladia_transcriber.rb +122 -0
- data/lib/vapi_server_sdk/types/gladia_transcriber_language.rb +108 -0
- data/lib/vapi_server_sdk/types/gladia_transcriber_language_behaviour.rb +9 -0
- data/lib/vapi_server_sdk/types/gladia_transcriber_model.rb +8 -0
- data/lib/vapi_server_sdk/types/go_high_level_credential.rb +101 -0
- data/lib/vapi_server_sdk/types/groq_credential.rb +101 -0
- data/lib/vapi_server_sdk/types/groq_model.rb +170 -0
- data/lib/vapi_server_sdk/types/groq_model_model.rb +17 -0
- data/lib/vapi_server_sdk/types/groq_model_tools_item.rb +159 -0
- data/lib/vapi_server_sdk/types/handoff_step.rb +204 -0
- data/lib/vapi_server_sdk/types/handoff_step_block.rb +108 -0
- data/lib/vapi_server_sdk/types/import_twilio_phone_number_dto.rb +167 -0
- data/lib/vapi_server_sdk/types/import_twilio_phone_number_dto_fallback_destination.rb +101 -0
- data/lib/vapi_server_sdk/types/import_vonage_phone_number_dto.rb +165 -0
- data/lib/vapi_server_sdk/types/import_vonage_phone_number_dto_fallback_destination.rb +101 -0
- data/lib/vapi_server_sdk/types/invite_user_dto.rb +66 -0
- data/lib/vapi_server_sdk/types/invite_user_dto_role.rb +9 -0
- data/lib/vapi_server_sdk/types/json_schema.rb +125 -0
- data/lib/vapi_server_sdk/types/json_schema_type.rb +21 -0
- data/lib/vapi_server_sdk/types/knowledge_base.rb +74 -0
- data/lib/vapi_server_sdk/types/lmnt_credential.rb +101 -0
- data/lib/vapi_server_sdk/types/lmnt_voice.rb +104 -0
- data/lib/vapi_server_sdk/types/lmnt_voice_id.rb +53 -0
- data/lib/vapi_server_sdk/types/lmnt_voice_id_enum.rb +8 -0
- data/lib/vapi_server_sdk/types/log.rb +248 -0
- data/lib/vapi_server_sdk/types/log_request_http_method.rb +12 -0
- data/lib/vapi_server_sdk/types/log_resource.rb +15 -0
- data/lib/vapi_server_sdk/types/log_type.rb +11 -0
- data/lib/vapi_server_sdk/types/logs_paginated_response.rb +75 -0
- data/lib/vapi_server_sdk/types/make_credential.rb +118 -0
- data/lib/vapi_server_sdk/types/make_tool.rb +192 -0
- data/lib/vapi_server_sdk/types/make_tool_messages_item.rb +120 -0
- data/lib/vapi_server_sdk/types/make_tool_metadata.rb +67 -0
- data/lib/vapi_server_sdk/types/make_tool_provider_details.rb +107 -0
- data/lib/vapi_server_sdk/types/make_tool_with_tool_call.rb +173 -0
- data/lib/vapi_server_sdk/types/make_tool_with_tool_call_messages_item.rb +120 -0
- data/lib/vapi_server_sdk/types/message_plan.rb +107 -0
- data/lib/vapi_server_sdk/types/metrics.rb +165 -0
- data/lib/vapi_server_sdk/types/model_based_condition.rb +117 -0
- data/lib/vapi_server_sdk/types/model_cost.rb +106 -0
- data/lib/vapi_server_sdk/types/monitor.rb +71 -0
- data/lib/vapi_server_sdk/types/monitor_plan.rb +85 -0
- data/lib/vapi_server_sdk/types/neets_voice.rb +96 -0
- data/lib/vapi_server_sdk/types/neets_voice_id.rb +53 -0
- data/lib/vapi_server_sdk/types/neets_voice_id_enum.rb +7 -0
- data/lib/vapi_server_sdk/types/open_ai_credential.rb +101 -0
- data/lib/vapi_server_sdk/types/open_ai_function.rb +96 -0
- data/lib/vapi_server_sdk/types/open_ai_function_parameters.rb +85 -0
- data/lib/vapi_server_sdk/types/open_ai_message.rb +68 -0
- data/lib/vapi_server_sdk/types/open_ai_message_role.rb +11 -0
- data/lib/vapi_server_sdk/types/open_ai_model.rb +191 -0
- data/lib/vapi_server_sdk/types/open_ai_model_fallback_models_item.rb +23 -0
- data/lib/vapi_server_sdk/types/open_ai_model_model.rb +24 -0
- data/lib/vapi_server_sdk/types/open_ai_model_tools_item.rb +159 -0
- data/lib/vapi_server_sdk/types/open_ai_voice.rb +99 -0
- data/lib/vapi_server_sdk/types/open_ai_voice_id.rb +13 -0
- data/lib/vapi_server_sdk/types/open_router_credential.rb +101 -0
- data/lib/vapi_server_sdk/types/open_router_model.rb +169 -0
- data/lib/vapi_server_sdk/types/open_router_model_tools_item.rb +159 -0
- data/lib/vapi_server_sdk/types/org.rb +212 -0
- data/lib/vapi_server_sdk/types/org_plan.rb +79 -0
- data/lib/vapi_server_sdk/types/output_tool.rb +178 -0
- data/lib/vapi_server_sdk/types/output_tool_messages_item.rb +120 -0
- data/lib/vapi_server_sdk/types/pagination_meta.rb +72 -0
- data/lib/vapi_server_sdk/types/perplexity_ai_credential.rb +101 -0
- data/lib/vapi_server_sdk/types/perplexity_ai_model.rb +169 -0
- data/lib/vapi_server_sdk/types/perplexity_ai_model_tools_item.rb +159 -0
- data/lib/vapi_server_sdk/types/play_ht_credential.rb +109 -0
- data/lib/vapi_server_sdk/types/play_ht_voice.rb +166 -0
- data/lib/vapi_server_sdk/types/play_ht_voice_emotion.rb +19 -0
- data/lib/vapi_server_sdk/types/play_ht_voice_id.rb +53 -0
- data/lib/vapi_server_sdk/types/play_ht_voice_id_enum.rb +16 -0
- data/lib/vapi_server_sdk/types/punctuation_boundary.rb +21 -0
- data/lib/vapi_server_sdk/types/regex_option.rb +74 -0
- data/lib/vapi_server_sdk/types/regex_option_type.rb +13 -0
- data/lib/vapi_server_sdk/types/regex_replacement.rb +82 -0
- data/lib/vapi_server_sdk/types/rime_ai_credential.rb +101 -0
- data/lib/vapi_server_sdk/types/rime_ai_voice.rb +114 -0
- data/lib/vapi_server_sdk/types/rime_ai_voice_id.rb +53 -0
- data/lib/vapi_server_sdk/types/rime_ai_voice_id_enum.rb +87 -0
- data/lib/vapi_server_sdk/types/rime_ai_voice_model.rb +9 -0
- data/lib/vapi_server_sdk/types/rule_based_condition.rb +195 -0
- data/lib/vapi_server_sdk/types/rule_based_condition_operator.rb +14 -0
- data/lib/vapi_server_sdk/types/runpod_credential.rb +101 -0
- data/lib/vapi_server_sdk/types/s_3_credential.rb +134 -0
- data/lib/vapi_server_sdk/types/sbc_configuration.rb +47 -0
- data/lib/vapi_server_sdk/types/server.rb +82 -0
- data/lib/vapi_server_sdk/types/server_message.rb +77 -0
- data/lib/vapi_server_sdk/types/server_message_assistant_request.rb +169 -0
- data/lib/vapi_server_sdk/types/server_message_assistant_request_phone_number.rb +125 -0
- data/lib/vapi_server_sdk/types/server_message_conversation_update.rb +197 -0
- data/lib/vapi_server_sdk/types/server_message_conversation_update_messages_item.rb +97 -0
- data/lib/vapi_server_sdk/types/server_message_conversation_update_phone_number.rb +125 -0
- data/lib/vapi_server_sdk/types/server_message_end_of_call_report.rb +241 -0
- data/lib/vapi_server_sdk/types/server_message_end_of_call_report_costs_item.rb +147 -0
- data/lib/vapi_server_sdk/types/server_message_end_of_call_report_ended_reason.rb +176 -0
- data/lib/vapi_server_sdk/types/server_message_end_of_call_report_phone_number.rb +125 -0
- data/lib/vapi_server_sdk/types/server_message_hang.rb +169 -0
- data/lib/vapi_server_sdk/types/server_message_hang_phone_number.rb +124 -0
- data/lib/vapi_server_sdk/types/server_message_language_changed.rb +177 -0
- data/lib/vapi_server_sdk/types/server_message_language_changed_phone_number.rb +125 -0
- data/lib/vapi_server_sdk/types/server_message_message.rb +285 -0
- data/lib/vapi_server_sdk/types/server_message_model_output.rb +177 -0
- data/lib/vapi_server_sdk/types/server_message_model_output_phone_number.rb +124 -0
- data/lib/vapi_server_sdk/types/server_message_phone_call_control.rb +192 -0
- data/lib/vapi_server_sdk/types/server_message_phone_call_control_destination.rb +96 -0
- data/lib/vapi_server_sdk/types/server_message_phone_call_control_phone_number.rb +125 -0
- data/lib/vapi_server_sdk/types/server_message_phone_call_control_request.rb +9 -0
- data/lib/vapi_server_sdk/types/server_message_response.rb +65 -0
- data/lib/vapi_server_sdk/types/server_message_response_assistant_request.rb +162 -0
- data/lib/vapi_server_sdk/types/server_message_response_assistant_request_destination.rb +98 -0
- data/lib/vapi_server_sdk/types/server_message_response_message_response.rb +85 -0
- data/lib/vapi_server_sdk/types/server_message_response_tool_calls.rb +71 -0
- data/lib/vapi_server_sdk/types/server_message_response_transfer_destination_request.rb +75 -0
- data/lib/vapi_server_sdk/types/server_message_response_transfer_destination_request_destination.rb +122 -0
- data/lib/vapi_server_sdk/types/server_message_response_voice_request.rb +97 -0
- data/lib/vapi_server_sdk/types/server_message_speech_update.rb +187 -0
- data/lib/vapi_server_sdk/types/server_message_speech_update_phone_number.rb +124 -0
- data/lib/vapi_server_sdk/types/server_message_speech_update_role.rb +9 -0
- data/lib/vapi_server_sdk/types/server_message_speech_update_status.rb +9 -0
- data/lib/vapi_server_sdk/types/server_message_status_update.rb +255 -0
- data/lib/vapi_server_sdk/types/server_message_status_update_destination.rb +96 -0
- data/lib/vapi_server_sdk/types/server_message_status_update_ended_reason.rb +175 -0
- data/lib/vapi_server_sdk/types/server_message_status_update_messages_item.rb +97 -0
- data/lib/vapi_server_sdk/types/server_message_status_update_phone_number.rb +124 -0
- data/lib/vapi_server_sdk/types/server_message_status_update_status.rb +12 -0
- data/lib/vapi_server_sdk/types/server_message_tool_calls.rb +195 -0
- data/lib/vapi_server_sdk/types/server_message_tool_calls_phone_number.rb +124 -0
- data/lib/vapi_server_sdk/types/server_message_tool_calls_tool_with_tool_call_list_item.rb +108 -0
- data/lib/vapi_server_sdk/types/server_message_transcript.rb +195 -0
- data/lib/vapi_server_sdk/types/server_message_transcript_phone_number.rb +124 -0
- data/lib/vapi_server_sdk/types/server_message_transcript_role.rb +9 -0
- data/lib/vapi_server_sdk/types/server_message_transcript_transcript_type.rb +9 -0
- data/lib/vapi_server_sdk/types/server_message_transfer_destination_request.rb +171 -0
- data/lib/vapi_server_sdk/types/server_message_transfer_destination_request_phone_number.rb +125 -0
- data/lib/vapi_server_sdk/types/server_message_transfer_update.rb +213 -0
- data/lib/vapi_server_sdk/types/server_message_transfer_update_destination.rb +122 -0
- data/lib/vapi_server_sdk/types/server_message_transfer_update_phone_number.rb +125 -0
- data/lib/vapi_server_sdk/types/server_message_user_interrupted.rb +169 -0
- data/lib/vapi_server_sdk/types/server_message_user_interrupted_phone_number.rb +125 -0
- data/lib/vapi_server_sdk/types/server_message_voice_input.rb +177 -0
- data/lib/vapi_server_sdk/types/server_message_voice_input_phone_number.rb +124 -0
- data/lib/vapi_server_sdk/types/server_message_voice_request.rb +185 -0
- data/lib/vapi_server_sdk/types/server_message_voice_request_phone_number.rb +124 -0
- data/lib/vapi_server_sdk/types/sip_trunk_gateway.rb +138 -0
- data/lib/vapi_server_sdk/types/sip_trunk_gateway_outbound_protocol.rb +12 -0
- data/lib/vapi_server_sdk/types/sip_trunk_outbound_authentication_plan.rb +86 -0
- data/lib/vapi_server_sdk/types/sip_trunk_outbound_sip_register_plan.rb +74 -0
- data/lib/vapi_server_sdk/types/squad.rb +132 -0
- data/lib/vapi_server_sdk/types/squad_member_dto.rb +113 -0
- data/lib/vapi_server_sdk/types/start_speaking_plan.rb +119 -0
- data/lib/vapi_server_sdk/types/step_destination.rb +82 -0
- data/lib/vapi_server_sdk/types/step_destination_conditions_item.rb +94 -0
- data/lib/vapi_server_sdk/types/stop_speaking_plan.rb +120 -0
- data/lib/vapi_server_sdk/types/structured_data_plan.rb +140 -0
- data/lib/vapi_server_sdk/types/success_evaluation_plan.rb +161 -0
- data/lib/vapi_server_sdk/types/success_evaluation_plan_rubric.rb +29 -0
- data/lib/vapi_server_sdk/types/summary_plan.rb +110 -0
- data/lib/vapi_server_sdk/types/sync_voice_library_dto.rb +58 -0
- data/lib/vapi_server_sdk/types/sync_voice_library_dto_providers_item.rb +16 -0
- data/lib/vapi_server_sdk/types/system_message.rb +79 -0
- data/lib/vapi_server_sdk/types/talkscriber_transcriber.rb +72 -0
- data/lib/vapi_server_sdk/types/talkscriber_transcriber_language.rb +109 -0
- data/lib/vapi_server_sdk/types/template.rb +164 -0
- data/lib/vapi_server_sdk/types/template_details.rb +159 -0
- data/lib/vapi_server_sdk/types/template_provider.rb +9 -0
- data/lib/vapi_server_sdk/types/template_provider_details.rb +107 -0
- data/lib/vapi_server_sdk/types/template_visibility.rb +8 -0
- data/lib/vapi_server_sdk/types/time_range.rb +91 -0
- data/lib/vapi_server_sdk/types/time_range_step.rb +18 -0
- data/lib/vapi_server_sdk/types/together_ai_credential.rb +101 -0
- data/lib/vapi_server_sdk/types/together_ai_model.rb +169 -0
- data/lib/vapi_server_sdk/types/together_ai_model_tools_item.rb +159 -0
- data/lib/vapi_server_sdk/types/token.rb +127 -0
- data/lib/vapi_server_sdk/types/token_restrictions.rb +103 -0
- data/lib/vapi_server_sdk/types/token_tag.rb +9 -0
- data/lib/vapi_server_sdk/types/tool_call.rb +78 -0
- data/lib/vapi_server_sdk/types/tool_call_block.rb +201 -0
- data/lib/vapi_server_sdk/types/tool_call_block_messages_item.rb +94 -0
- data/lib/vapi_server_sdk/types/tool_call_block_tool.rb +161 -0
- data/lib/vapi_server_sdk/types/tool_call_function.rb +65 -0
- data/lib/vapi_server_sdk/types/tool_call_message.rb +92 -0
- data/lib/vapi_server_sdk/types/tool_call_result.rb +126 -0
- data/lib/vapi_server_sdk/types/tool_call_result_message.rb +100 -0
- data/lib/vapi_server_sdk/types/tool_call_result_message_item.rb +94 -0
- data/lib/vapi_server_sdk/types/tool_message_complete.rb +130 -0
- data/lib/vapi_server_sdk/types/tool_message_complete_role.rb +24 -0
- data/lib/vapi_server_sdk/types/tool_message_delayed.rb +86 -0
- data/lib/vapi_server_sdk/types/tool_message_failed.rb +88 -0
- data/lib/vapi_server_sdk/types/tool_message_start.rb +73 -0
- data/lib/vapi_server_sdk/types/tool_template_metadata.rb +78 -0
- data/lib/vapi_server_sdk/types/tool_template_setup.rb +86 -0
- data/lib/vapi_server_sdk/types/transcriber_cost.rb +90 -0
- data/lib/vapi_server_sdk/types/transcript_plan.rb +122 -0
- data/lib/vapi_server_sdk/types/transcription_endpointing_plan.rb +109 -0
- data/lib/vapi_server_sdk/types/transfer_call_tool.rb +194 -0
- data/lib/vapi_server_sdk/types/transfer_call_tool_destinations_item.rb +120 -0
- data/lib/vapi_server_sdk/types/transfer_call_tool_messages_item.rb +120 -0
- data/lib/vapi_server_sdk/types/transfer_destination_assistant.rb +181 -0
- data/lib/vapi_server_sdk/types/transfer_destination_number.rb +163 -0
- data/lib/vapi_server_sdk/types/transfer_destination_sip.rb +90 -0
- data/lib/vapi_server_sdk/types/transfer_destination_step.rb +90 -0
- data/lib/vapi_server_sdk/types/transfer_mode.rb +8 -0
- data/lib/vapi_server_sdk/types/transport_configuration_twilio.rb +125 -0
- data/lib/vapi_server_sdk/types/transport_configuration_twilio_recording_channels.rb +16 -0
- data/lib/vapi_server_sdk/types/transport_cost.rb +67 -0
- data/lib/vapi_server_sdk/types/twilio_credential.rb +110 -0
- data/lib/vapi_server_sdk/types/twilio_phone_number.rb +200 -0
- data/lib/vapi_server_sdk/types/twilio_phone_number_fallback_destination.rb +100 -0
- data/lib/vapi_server_sdk/types/twilio_voicemail_detection.rb +248 -0
- data/lib/vapi_server_sdk/types/twilio_voicemail_detection_voicemail_detection_types_item.rb +13 -0
- data/lib/vapi_server_sdk/types/update_anthropic_credential_dto.rb +65 -0
- data/lib/vapi_server_sdk/types/update_anyscale_credential_dto.rb +65 -0
- data/lib/vapi_server_sdk/types/update_azure_open_ai_credential_dto.rb +94 -0
- data/lib/vapi_server_sdk/types/update_azure_open_ai_credential_dto_models_item.rb +14 -0
- data/lib/vapi_server_sdk/types/update_azure_open_ai_credential_dto_region.rb +21 -0
- data/lib/vapi_server_sdk/types/update_byo_sip_trunk_credential_dto.rb +133 -0
- data/lib/vapi_server_sdk/types/update_cartesia_credential_dto.rb +65 -0
- data/lib/vapi_server_sdk/types/update_custom_llm_credential_dto.rb +65 -0
- data/lib/vapi_server_sdk/types/update_deep_infra_credential_dto.rb +65 -0
- data/lib/vapi_server_sdk/types/update_deepgram_credential_dto.rb +76 -0
- data/lib/vapi_server_sdk/types/update_eleven_labs_credential_dto.rb +65 -0
- data/lib/vapi_server_sdk/types/update_gcp_credential_dto.rb +104 -0
- data/lib/vapi_server_sdk/types/update_gladia_credential_dto.rb +65 -0
- data/lib/vapi_server_sdk/types/update_go_high_level_credential_dto.rb +65 -0
- data/lib/vapi_server_sdk/types/update_groq_credential_dto.rb +65 -0
- data/lib/vapi_server_sdk/types/update_lmnt_credential_dto.rb +65 -0
- data/lib/vapi_server_sdk/types/update_make_credential_dto.rb +79 -0
- data/lib/vapi_server_sdk/types/update_open_ai_credential_dto.rb +65 -0
- data/lib/vapi_server_sdk/types/update_open_router_credential_dto.rb +65 -0
- data/lib/vapi_server_sdk/types/update_org_dto.rb +129 -0
- data/lib/vapi_server_sdk/types/update_perplexity_ai_credential_dto.rb +65 -0
- data/lib/vapi_server_sdk/types/update_play_ht_credential_dto.rb +72 -0
- data/lib/vapi_server_sdk/types/update_rime_ai_credential_dto.rb +65 -0
- data/lib/vapi_server_sdk/types/update_runpod_credential_dto.rb +65 -0
- data/lib/vapi_server_sdk/types/update_s_3_credential_dto.rb +101 -0
- data/lib/vapi_server_sdk/types/update_together_ai_credential_dto.rb +65 -0
- data/lib/vapi_server_sdk/types/update_tool_template_dto.rb +131 -0
- data/lib/vapi_server_sdk/types/update_tool_template_dto_details.rb +159 -0
- data/lib/vapi_server_sdk/types/update_tool_template_dto_provider.rb +9 -0
- data/lib/vapi_server_sdk/types/update_tool_template_dto_provider_details.rb +107 -0
- data/lib/vapi_server_sdk/types/update_tool_template_dto_visibility.rb +8 -0
- data/lib/vapi_server_sdk/types/update_twilio_credential_dto.rb +72 -0
- data/lib/vapi_server_sdk/types/update_user_role_dto.rb +66 -0
- data/lib/vapi_server_sdk/types/update_user_role_dto_role.rb +9 -0
- data/lib/vapi_server_sdk/types/update_vonage_credential_dto.rb +72 -0
- data/lib/vapi_server_sdk/types/user.rb +95 -0
- data/lib/vapi_server_sdk/types/user_message.rb +102 -0
- data/lib/vapi_server_sdk/types/vapi_cost.rb +67 -0
- data/lib/vapi_server_sdk/types/vapi_model.rb +181 -0
- data/lib/vapi_server_sdk/types/vapi_model_steps_item.rb +94 -0
- data/lib/vapi_server_sdk/types/vapi_model_tools_item.rb +159 -0
- data/lib/vapi_server_sdk/types/vapi_phone_number.rb +188 -0
- data/lib/vapi_server_sdk/types/vapi_phone_number_fallback_destination.rb +100 -0
- data/lib/vapi_server_sdk/types/voice_cost.rb +90 -0
- data/lib/vapi_server_sdk/types/voice_library.rb +209 -0
- data/lib/vapi_server_sdk/types/voice_library_gender.rb +9 -0
- data/lib/vapi_server_sdk/types/voice_library_voice_response.rb +111 -0
- data/lib/vapi_server_sdk/types/vonage_credential.rb +128 -0
- data/lib/vapi_server_sdk/types/vonage_phone_number.rb +194 -0
- data/lib/vapi_server_sdk/types/vonage_phone_number_fallback_destination.rb +100 -0
- data/lib/vapi_server_sdk/types/workflow_block.rb +187 -0
- data/lib/vapi_server_sdk/types/workflow_block_messages_item.rb +94 -0
- data/lib/vapi_server_sdk/types/workflow_block_steps_item.rb +94 -0
- data/lib/vapi_server_sdk.rb +110 -0
- metadata +697 -0
@@ -0,0 +1,82 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "step_destination_conditions_item"
|
4
|
+
require "ostruct"
|
5
|
+
require "json"
|
6
|
+
|
7
|
+
module Vapi
|
8
|
+
class StepDestination
|
9
|
+
# @return [String]
|
10
|
+
attr_reader :type
|
11
|
+
# @return [Array<Vapi::StepDestinationConditionsItem>] This is an optional array of conditions that must be met for this destination to
|
12
|
+
# be triggered. If empty, this is the default destination that the step transfers
|
13
|
+
# to.
|
14
|
+
attr_reader :conditions
|
15
|
+
# @return [String]
|
16
|
+
attr_reader :step_name
|
17
|
+
# @return [OpenStruct] Additional properties unmapped to the current class definition
|
18
|
+
attr_reader :additional_properties
|
19
|
+
# @return [Object]
|
20
|
+
attr_reader :_field_set
|
21
|
+
protected :_field_set
|
22
|
+
|
23
|
+
OMIT = Object.new
|
24
|
+
|
25
|
+
# @param type [String]
|
26
|
+
# @param conditions [Array<Vapi::StepDestinationConditionsItem>] This is an optional array of conditions that must be met for this destination to
|
27
|
+
# be triggered. If empty, this is the default destination that the step transfers
|
28
|
+
# to.
|
29
|
+
# @param step_name [String]
|
30
|
+
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
31
|
+
# @return [Vapi::StepDestination]
|
32
|
+
def initialize(type:, step_name:, conditions: OMIT, additional_properties: nil)
|
33
|
+
@type = type
|
34
|
+
@conditions = conditions if conditions != OMIT
|
35
|
+
@step_name = step_name
|
36
|
+
@additional_properties = additional_properties
|
37
|
+
@_field_set = { "type": type, "conditions": conditions, "stepName": step_name }.reject do |_k, v|
|
38
|
+
v == OMIT
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
# Deserialize a JSON object to an instance of StepDestination
|
43
|
+
#
|
44
|
+
# @param json_object [String]
|
45
|
+
# @return [Vapi::StepDestination]
|
46
|
+
def self.from_json(json_object:)
|
47
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
48
|
+
parsed_json = JSON.parse(json_object)
|
49
|
+
type = parsed_json["type"]
|
50
|
+
conditions = parsed_json["conditions"]&.map do |item|
|
51
|
+
item = item.to_json
|
52
|
+
Vapi::StepDestinationConditionsItem.from_json(json_object: item)
|
53
|
+
end
|
54
|
+
step_name = parsed_json["stepName"]
|
55
|
+
new(
|
56
|
+
type: type,
|
57
|
+
conditions: conditions,
|
58
|
+
step_name: step_name,
|
59
|
+
additional_properties: struct
|
60
|
+
)
|
61
|
+
end
|
62
|
+
|
63
|
+
# Serialize an instance of StepDestination to a JSON object
|
64
|
+
#
|
65
|
+
# @return [String]
|
66
|
+
def to_json(*_args)
|
67
|
+
@_field_set&.to_json
|
68
|
+
end
|
69
|
+
|
70
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
71
|
+
# hash and check each fields type against the current object's property
|
72
|
+
# definitions.
|
73
|
+
#
|
74
|
+
# @param obj [Object]
|
75
|
+
# @return [Void]
|
76
|
+
def self.validate_raw(obj:)
|
77
|
+
obj.type.is_a?(String) != false || raise("Passed value for field obj.type is not the expected type, validation failed.")
|
78
|
+
obj.conditions&.is_a?(Array) != false || raise("Passed value for field obj.conditions is not the expected type, validation failed.")
|
79
|
+
obj.step_name.is_a?(String) != false || raise("Passed value for field obj.step_name is not the expected type, validation failed.")
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
@@ -0,0 +1,94 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "json"
|
4
|
+
require_relative "model_based_condition"
|
5
|
+
require_relative "rule_based_condition"
|
6
|
+
|
7
|
+
module Vapi
|
8
|
+
class StepDestinationConditionsItem
|
9
|
+
# @return [Object]
|
10
|
+
attr_reader :member
|
11
|
+
# @return [String]
|
12
|
+
attr_reader :discriminant
|
13
|
+
|
14
|
+
private_class_method :new
|
15
|
+
alias kind_of? is_a?
|
16
|
+
|
17
|
+
# @param member [Object]
|
18
|
+
# @param discriminant [String]
|
19
|
+
# @return [Vapi::StepDestinationConditionsItem]
|
20
|
+
def initialize(member:, discriminant:)
|
21
|
+
@member = member
|
22
|
+
@discriminant = discriminant
|
23
|
+
end
|
24
|
+
|
25
|
+
# Deserialize a JSON object to an instance of StepDestinationConditionsItem
|
26
|
+
#
|
27
|
+
# @param json_object [String]
|
28
|
+
# @return [Vapi::StepDestinationConditionsItem]
|
29
|
+
def self.from_json(json_object:)
|
30
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
31
|
+
member = case struct.type
|
32
|
+
when "model-based"
|
33
|
+
Vapi::ModelBasedCondition.from_json(json_object: json_object)
|
34
|
+
when "rule-based"
|
35
|
+
Vapi::RuleBasedCondition.from_json(json_object: json_object)
|
36
|
+
else
|
37
|
+
Vapi::ModelBasedCondition.from_json(json_object: json_object)
|
38
|
+
end
|
39
|
+
new(member: member, discriminant: struct.type)
|
40
|
+
end
|
41
|
+
|
42
|
+
# For Union Types, to_json functionality is delegated to the wrapped member.
|
43
|
+
#
|
44
|
+
# @return [String]
|
45
|
+
def to_json(*_args)
|
46
|
+
case @discriminant
|
47
|
+
when "model-based"
|
48
|
+
{ **@member.to_json, type: @discriminant }.to_json
|
49
|
+
when "rule-based"
|
50
|
+
{ **@member.to_json, type: @discriminant }.to_json
|
51
|
+
else
|
52
|
+
{ "type": @discriminant, value: @member }.to_json
|
53
|
+
end
|
54
|
+
@member.to_json
|
55
|
+
end
|
56
|
+
|
57
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
58
|
+
# hash and check each fields type against the current object's property
|
59
|
+
# definitions.
|
60
|
+
#
|
61
|
+
# @param obj [Object]
|
62
|
+
# @return [Void]
|
63
|
+
def self.validate_raw(obj:)
|
64
|
+
case obj.type
|
65
|
+
when "model-based"
|
66
|
+
Vapi::ModelBasedCondition.validate_raw(obj: obj)
|
67
|
+
when "rule-based"
|
68
|
+
Vapi::RuleBasedCondition.validate_raw(obj: obj)
|
69
|
+
else
|
70
|
+
raise("Passed value matched no type within the union, validation failed.")
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
# For Union Types, is_a? functionality is delegated to the wrapped member.
|
75
|
+
#
|
76
|
+
# @param obj [Object]
|
77
|
+
# @return [Boolean]
|
78
|
+
def is_a?(obj)
|
79
|
+
@member.is_a?(obj)
|
80
|
+
end
|
81
|
+
|
82
|
+
# @param member [Vapi::ModelBasedCondition]
|
83
|
+
# @return [Vapi::StepDestinationConditionsItem]
|
84
|
+
def self.model_based(member:)
|
85
|
+
new(member: member, discriminant: "model-based")
|
86
|
+
end
|
87
|
+
|
88
|
+
# @param member [Vapi::RuleBasedCondition]
|
89
|
+
# @return [Vapi::StepDestinationConditionsItem]
|
90
|
+
def self.rule_based(member:)
|
91
|
+
new(member: member, discriminant: "rule-based")
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
@@ -0,0 +1,120 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "ostruct"
|
4
|
+
require "json"
|
5
|
+
|
6
|
+
module Vapi
|
7
|
+
class StopSpeakingPlan
|
8
|
+
# @return [Float] This is the number of words that the customer has to say before the assistant
|
9
|
+
# will stop talking.
|
10
|
+
# Words like "stop", "actually", "no", etc. will always interrupt immediately
|
11
|
+
# regardless of this value.
|
12
|
+
# Words like "okay", "yeah", "right" will never interrupt.
|
13
|
+
# When set to 0, `voiceSeconds` is used in addition to the transcriptions to
|
14
|
+
# determine the customer has started speaking.
|
15
|
+
# Defaults to 0.
|
16
|
+
# @default 0
|
17
|
+
attr_reader :num_words
|
18
|
+
# @return [Float] This is the seconds customer has to speak before the assistant stops talking.
|
19
|
+
# This uses the VAD (Voice Activity Detection) spike to determine if the customer
|
20
|
+
# has started speaking.
|
21
|
+
# Considerations:
|
22
|
+
# - A lower value might be more responsive but could potentially pick up
|
23
|
+
# non-speech sounds.
|
24
|
+
# - A higher value reduces false positives but might slightly delay the detection
|
25
|
+
# of speech onset.
|
26
|
+
# This is only used if `numWords` is set to 0.
|
27
|
+
# Defaults to 0.2
|
28
|
+
# @default 0.2
|
29
|
+
attr_reader :voice_seconds
|
30
|
+
# @return [Float] This is the seconds to wait before the assistant will start talking again after
|
31
|
+
# being interrupted.
|
32
|
+
# Defaults to 1.
|
33
|
+
# @default 1
|
34
|
+
attr_reader :backoff_seconds
|
35
|
+
# @return [OpenStruct] Additional properties unmapped to the current class definition
|
36
|
+
attr_reader :additional_properties
|
37
|
+
# @return [Object]
|
38
|
+
attr_reader :_field_set
|
39
|
+
protected :_field_set
|
40
|
+
|
41
|
+
OMIT = Object.new
|
42
|
+
|
43
|
+
# @param num_words [Float] This is the number of words that the customer has to say before the assistant
|
44
|
+
# will stop talking.
|
45
|
+
# Words like "stop", "actually", "no", etc. will always interrupt immediately
|
46
|
+
# regardless of this value.
|
47
|
+
# Words like "okay", "yeah", "right" will never interrupt.
|
48
|
+
# When set to 0, `voiceSeconds` is used in addition to the transcriptions to
|
49
|
+
# determine the customer has started speaking.
|
50
|
+
# Defaults to 0.
|
51
|
+
# @default 0
|
52
|
+
# @param voice_seconds [Float] This is the seconds customer has to speak before the assistant stops talking.
|
53
|
+
# This uses the VAD (Voice Activity Detection) spike to determine if the customer
|
54
|
+
# has started speaking.
|
55
|
+
# Considerations:
|
56
|
+
# - A lower value might be more responsive but could potentially pick up
|
57
|
+
# non-speech sounds.
|
58
|
+
# - A higher value reduces false positives but might slightly delay the detection
|
59
|
+
# of speech onset.
|
60
|
+
# This is only used if `numWords` is set to 0.
|
61
|
+
# Defaults to 0.2
|
62
|
+
# @default 0.2
|
63
|
+
# @param backoff_seconds [Float] This is the seconds to wait before the assistant will start talking again after
|
64
|
+
# being interrupted.
|
65
|
+
# Defaults to 1.
|
66
|
+
# @default 1
|
67
|
+
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
68
|
+
# @return [Vapi::StopSpeakingPlan]
|
69
|
+
def initialize(num_words: OMIT, voice_seconds: OMIT, backoff_seconds: OMIT, additional_properties: nil)
|
70
|
+
@num_words = num_words if num_words != OMIT
|
71
|
+
@voice_seconds = voice_seconds if voice_seconds != OMIT
|
72
|
+
@backoff_seconds = backoff_seconds if backoff_seconds != OMIT
|
73
|
+
@additional_properties = additional_properties
|
74
|
+
@_field_set = {
|
75
|
+
"numWords": num_words,
|
76
|
+
"voiceSeconds": voice_seconds,
|
77
|
+
"backoffSeconds": backoff_seconds
|
78
|
+
}.reject do |_k, v|
|
79
|
+
v == OMIT
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
# Deserialize a JSON object to an instance of StopSpeakingPlan
|
84
|
+
#
|
85
|
+
# @param json_object [String]
|
86
|
+
# @return [Vapi::StopSpeakingPlan]
|
87
|
+
def self.from_json(json_object:)
|
88
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
89
|
+
parsed_json = JSON.parse(json_object)
|
90
|
+
num_words = parsed_json["numWords"]
|
91
|
+
voice_seconds = parsed_json["voiceSeconds"]
|
92
|
+
backoff_seconds = parsed_json["backoffSeconds"]
|
93
|
+
new(
|
94
|
+
num_words: num_words,
|
95
|
+
voice_seconds: voice_seconds,
|
96
|
+
backoff_seconds: backoff_seconds,
|
97
|
+
additional_properties: struct
|
98
|
+
)
|
99
|
+
end
|
100
|
+
|
101
|
+
# Serialize an instance of StopSpeakingPlan to a JSON object
|
102
|
+
#
|
103
|
+
# @return [String]
|
104
|
+
def to_json(*_args)
|
105
|
+
@_field_set&.to_json
|
106
|
+
end
|
107
|
+
|
108
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
109
|
+
# hash and check each fields type against the current object's property
|
110
|
+
# definitions.
|
111
|
+
#
|
112
|
+
# @param obj [Object]
|
113
|
+
# @return [Void]
|
114
|
+
def self.validate_raw(obj:)
|
115
|
+
obj.num_words&.is_a?(Float) != false || raise("Passed value for field obj.num_words is not the expected type, validation failed.")
|
116
|
+
obj.voice_seconds&.is_a?(Float) != false || raise("Passed value for field obj.voice_seconds is not the expected type, validation failed.")
|
117
|
+
obj.backoff_seconds&.is_a?(Float) != false || raise("Passed value for field obj.backoff_seconds is not the expected type, validation failed.")
|
118
|
+
end
|
119
|
+
end
|
120
|
+
end
|
@@ -0,0 +1,140 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "json_schema"
|
4
|
+
require "ostruct"
|
5
|
+
require "json"
|
6
|
+
|
7
|
+
module Vapi
|
8
|
+
class StructuredDataPlan
|
9
|
+
# @return [Array<Hash{String => Object}>] These are the messages used to generate the structured data.
|
10
|
+
# @default: ` [ { "role": "system", "content": "You are an expert data extractor.
|
11
|
+
# You will be given a transcript of a call. Extract structured data per the JSON
|
12
|
+
# Schema. DO NOT return anything except the structured data.\n\nJson
|
13
|
+
# Schema:\\n{{schema}}\n\nOnly respond with the JSON." }, { "role": "user",
|
14
|
+
# "content": "Here is the transcript:\n\n{{transcript}}\n\n" } ]`
|
15
|
+
# You can customize by providing any messages you want.
|
16
|
+
# Here are the template variables available:
|
17
|
+
# - {{transcript}}: the transcript of the call from `call.artifact.transcript`-
|
18
|
+
# {{systemPrompt}}: the system prompt of the call from
|
19
|
+
# `assistant.model.messages[type=system].content`- {{schema}}: the schema of the
|
20
|
+
# structured data from `structuredDataPlan.schema`
|
21
|
+
attr_reader :messages
|
22
|
+
# @return [Boolean] This determines whether structured data is generated and stored in
|
23
|
+
# `call.analysis.structuredData`. Defaults to false.
|
24
|
+
# Usage:
|
25
|
+
# - If you want to extract structured data, set this to true and provide a
|
26
|
+
# `schema`.
|
27
|
+
# @default false
|
28
|
+
attr_reader :enabled
|
29
|
+
# @return [Vapi::JsonSchema] This is the schema of the structured data. The output is stored in
|
30
|
+
# `call.analysis.structuredData`.
|
31
|
+
# Complete guide on JSON Schema can be found
|
32
|
+
# [here](https://ajv.js.org/json-schema.html#json-data-type).
|
33
|
+
attr_reader :schema
|
34
|
+
# @return [Float] This is how long the request is tried before giving up. When request times out,
|
35
|
+
# `call.analysis.structuredData` will be empty.
|
36
|
+
# Usage:
|
37
|
+
# - To guarantee the structured data is generated, set this value high. Note, this
|
38
|
+
# will delay the end of call report in cases where model is slow to respond.
|
39
|
+
# @default 5 seconds
|
40
|
+
attr_reader :timeout_seconds
|
41
|
+
# @return [OpenStruct] Additional properties unmapped to the current class definition
|
42
|
+
attr_reader :additional_properties
|
43
|
+
# @return [Object]
|
44
|
+
attr_reader :_field_set
|
45
|
+
protected :_field_set
|
46
|
+
|
47
|
+
OMIT = Object.new
|
48
|
+
|
49
|
+
# @param messages [Array<Hash{String => Object}>] These are the messages used to generate the structured data.
|
50
|
+
# @default: ` [ { "role": "system", "content": "You are an expert data extractor.
|
51
|
+
# You will be given a transcript of a call. Extract structured data per the JSON
|
52
|
+
# Schema. DO NOT return anything except the structured data.\n\nJson
|
53
|
+
# Schema:\\n{{schema}}\n\nOnly respond with the JSON." }, { "role": "user",
|
54
|
+
# "content": "Here is the transcript:\n\n{{transcript}}\n\n" } ]`
|
55
|
+
# You can customize by providing any messages you want.
|
56
|
+
# Here are the template variables available:
|
57
|
+
# - {{transcript}}: the transcript of the call from `call.artifact.transcript`-
|
58
|
+
# {{systemPrompt}}: the system prompt of the call from
|
59
|
+
# `assistant.model.messages[type=system].content`- {{schema}}: the schema of the
|
60
|
+
# structured data from `structuredDataPlan.schema`
|
61
|
+
# @param enabled [Boolean] This determines whether structured data is generated and stored in
|
62
|
+
# `call.analysis.structuredData`. Defaults to false.
|
63
|
+
# Usage:
|
64
|
+
# - If you want to extract structured data, set this to true and provide a
|
65
|
+
# `schema`.
|
66
|
+
# @default false
|
67
|
+
# @param schema [Vapi::JsonSchema] This is the schema of the structured data. The output is stored in
|
68
|
+
# `call.analysis.structuredData`.
|
69
|
+
# Complete guide on JSON Schema can be found
|
70
|
+
# [here](https://ajv.js.org/json-schema.html#json-data-type).
|
71
|
+
# @param timeout_seconds [Float] This is how long the request is tried before giving up. When request times out,
|
72
|
+
# `call.analysis.structuredData` will be empty.
|
73
|
+
# Usage:
|
74
|
+
# - To guarantee the structured data is generated, set this value high. Note, this
|
75
|
+
# will delay the end of call report in cases where model is slow to respond.
|
76
|
+
# @default 5 seconds
|
77
|
+
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
78
|
+
# @return [Vapi::StructuredDataPlan]
|
79
|
+
def initialize(messages: OMIT, enabled: OMIT, schema: OMIT, timeout_seconds: OMIT, additional_properties: nil)
|
80
|
+
@messages = messages if messages != OMIT
|
81
|
+
@enabled = enabled if enabled != OMIT
|
82
|
+
@schema = schema if schema != OMIT
|
83
|
+
@timeout_seconds = timeout_seconds if timeout_seconds != OMIT
|
84
|
+
@additional_properties = additional_properties
|
85
|
+
@_field_set = {
|
86
|
+
"messages": messages,
|
87
|
+
"enabled": enabled,
|
88
|
+
"schema": schema,
|
89
|
+
"timeoutSeconds": timeout_seconds
|
90
|
+
}.reject do |_k, v|
|
91
|
+
v == OMIT
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
# Deserialize a JSON object to an instance of StructuredDataPlan
|
96
|
+
#
|
97
|
+
# @param json_object [String]
|
98
|
+
# @return [Vapi::StructuredDataPlan]
|
99
|
+
def self.from_json(json_object:)
|
100
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
101
|
+
parsed_json = JSON.parse(json_object)
|
102
|
+
messages = parsed_json["messages"]
|
103
|
+
enabled = parsed_json["enabled"]
|
104
|
+
if parsed_json["schema"].nil?
|
105
|
+
schema = nil
|
106
|
+
else
|
107
|
+
schema = parsed_json["schema"].to_json
|
108
|
+
schema = Vapi::JsonSchema.from_json(json_object: schema)
|
109
|
+
end
|
110
|
+
timeout_seconds = parsed_json["timeoutSeconds"]
|
111
|
+
new(
|
112
|
+
messages: messages,
|
113
|
+
enabled: enabled,
|
114
|
+
schema: schema,
|
115
|
+
timeout_seconds: timeout_seconds,
|
116
|
+
additional_properties: struct
|
117
|
+
)
|
118
|
+
end
|
119
|
+
|
120
|
+
# Serialize an instance of StructuredDataPlan to a JSON object
|
121
|
+
#
|
122
|
+
# @return [String]
|
123
|
+
def to_json(*_args)
|
124
|
+
@_field_set&.to_json
|
125
|
+
end
|
126
|
+
|
127
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
128
|
+
# hash and check each fields type against the current object's property
|
129
|
+
# definitions.
|
130
|
+
#
|
131
|
+
# @param obj [Object]
|
132
|
+
# @return [Void]
|
133
|
+
def self.validate_raw(obj:)
|
134
|
+
obj.messages&.is_a?(Array) != false || raise("Passed value for field obj.messages is not the expected type, validation failed.")
|
135
|
+
obj.enabled&.is_a?(Boolean) != false || raise("Passed value for field obj.enabled is not the expected type, validation failed.")
|
136
|
+
obj.schema.nil? || Vapi::JsonSchema.validate_raw(obj: obj.schema)
|
137
|
+
obj.timeout_seconds&.is_a?(Float) != false || raise("Passed value for field obj.timeout_seconds is not the expected type, validation failed.")
|
138
|
+
end
|
139
|
+
end
|
140
|
+
end
|
@@ -0,0 +1,161 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "success_evaluation_plan_rubric"
|
4
|
+
require "ostruct"
|
5
|
+
require "json"
|
6
|
+
|
7
|
+
module Vapi
|
8
|
+
class SuccessEvaluationPlan
|
9
|
+
# @return [Vapi::SuccessEvaluationPlanRubric] This enforces the rubric of the evaluation. The output is stored in
|
10
|
+
# `call.analysis.successEvaluation`.
|
11
|
+
# Options include:
|
12
|
+
# - 'NumericScale': A scale of 1 to 10.
|
13
|
+
# - 'DescriptiveScale': A scale of Excellent, Good, Fair, Poor.
|
14
|
+
# - 'Checklist': A checklist of criteria and their status.
|
15
|
+
# - 'Matrix': A grid that evaluates multiple criteria across different performance
|
16
|
+
# levels.
|
17
|
+
# - 'PercentageScale': A scale of 0% to 100%.
|
18
|
+
# - 'LikertScale': A scale of Strongly Agree, Agree, Neutral, Disagree, Strongly
|
19
|
+
# Disagree.
|
20
|
+
# - 'AutomaticRubric': Automatically break down evaluation into several criteria,
|
21
|
+
# each with its own score.
|
22
|
+
# - 'PassFail': A simple 'true' if call passed, 'false' if not.
|
23
|
+
# Default is 'PassFail'.
|
24
|
+
attr_reader :rubric
|
25
|
+
# @return [Array<Hash{String => Object}>] These are the messages used to generate the success evaluation.
|
26
|
+
# @default: ` [ { "role": "system", "content": "You are an expert call evaluator.
|
27
|
+
# You will be given a transcript of a call and the system prompt of the AI
|
28
|
+
# participant. Determine if the call was successful based on the objectives
|
29
|
+
# inferred from the system prompt. DO NOT return anything except the
|
30
|
+
# result.\n\nRubric:\\n{{rubric}}\n\nOnly respond with the result." }, { "role":
|
31
|
+
# "user", "content": "Here is the transcript:\n\n{{transcript}}\n\n" }, { "role":
|
32
|
+
# "user", "content": "Here was the system prompt of the
|
33
|
+
# call:\n\n{{systemPrompt}}\n\n" } ]`
|
34
|
+
# You can customize by providing any messages you want.
|
35
|
+
# Here are the template variables available:
|
36
|
+
# - {{transcript}}: the transcript of the call from `call.artifact.transcript`-
|
37
|
+
# {{systemPrompt}}: the system prompt of the call from
|
38
|
+
# `assistant.model.messages[type=system].content`- {{rubric}}: the rubric of the
|
39
|
+
# success evaluation from `successEvaluationPlan.rubric`
|
40
|
+
attr_reader :messages
|
41
|
+
# @return [Boolean] This determines whether a success evaluation is generated and stored in
|
42
|
+
# `call.analysis.successEvaluation`. Defaults to true.
|
43
|
+
# Usage:
|
44
|
+
# - If you want to disable the success evaluation, set this to false.
|
45
|
+
# @default true
|
46
|
+
attr_reader :enabled
|
47
|
+
# @return [Float] This is how long the request is tried before giving up. When request times out,
|
48
|
+
# `call.analysis.successEvaluation` will be empty.
|
49
|
+
# Usage:
|
50
|
+
# - To guarantee the success evaluation is generated, set this value high. Note,
|
51
|
+
# this will delay the end of call report in cases where model is slow to respond.
|
52
|
+
# @default 5 seconds
|
53
|
+
attr_reader :timeout_seconds
|
54
|
+
# @return [OpenStruct] Additional properties unmapped to the current class definition
|
55
|
+
attr_reader :additional_properties
|
56
|
+
# @return [Object]
|
57
|
+
attr_reader :_field_set
|
58
|
+
protected :_field_set
|
59
|
+
|
60
|
+
OMIT = Object.new
|
61
|
+
|
62
|
+
# @param rubric [Vapi::SuccessEvaluationPlanRubric] This enforces the rubric of the evaluation. The output is stored in
|
63
|
+
# `call.analysis.successEvaluation`.
|
64
|
+
# Options include:
|
65
|
+
# - 'NumericScale': A scale of 1 to 10.
|
66
|
+
# - 'DescriptiveScale': A scale of Excellent, Good, Fair, Poor.
|
67
|
+
# - 'Checklist': A checklist of criteria and their status.
|
68
|
+
# - 'Matrix': A grid that evaluates multiple criteria across different performance
|
69
|
+
# levels.
|
70
|
+
# - 'PercentageScale': A scale of 0% to 100%.
|
71
|
+
# - 'LikertScale': A scale of Strongly Agree, Agree, Neutral, Disagree, Strongly
|
72
|
+
# Disagree.
|
73
|
+
# - 'AutomaticRubric': Automatically break down evaluation into several criteria,
|
74
|
+
# each with its own score.
|
75
|
+
# - 'PassFail': A simple 'true' if call passed, 'false' if not.
|
76
|
+
# Default is 'PassFail'.
|
77
|
+
# @param messages [Array<Hash{String => Object}>] These are the messages used to generate the success evaluation.
|
78
|
+
# @default: ` [ { "role": "system", "content": "You are an expert call evaluator.
|
79
|
+
# You will be given a transcript of a call and the system prompt of the AI
|
80
|
+
# participant. Determine if the call was successful based on the objectives
|
81
|
+
# inferred from the system prompt. DO NOT return anything except the
|
82
|
+
# result.\n\nRubric:\\n{{rubric}}\n\nOnly respond with the result." }, { "role":
|
83
|
+
# "user", "content": "Here is the transcript:\n\n{{transcript}}\n\n" }, { "role":
|
84
|
+
# "user", "content": "Here was the system prompt of the
|
85
|
+
# call:\n\n{{systemPrompt}}\n\n" } ]`
|
86
|
+
# You can customize by providing any messages you want.
|
87
|
+
# Here are the template variables available:
|
88
|
+
# - {{transcript}}: the transcript of the call from `call.artifact.transcript`-
|
89
|
+
# {{systemPrompt}}: the system prompt of the call from
|
90
|
+
# `assistant.model.messages[type=system].content`- {{rubric}}: the rubric of the
|
91
|
+
# success evaluation from `successEvaluationPlan.rubric`
|
92
|
+
# @param enabled [Boolean] This determines whether a success evaluation is generated and stored in
|
93
|
+
# `call.analysis.successEvaluation`. Defaults to true.
|
94
|
+
# Usage:
|
95
|
+
# - If you want to disable the success evaluation, set this to false.
|
96
|
+
# @default true
|
97
|
+
# @param timeout_seconds [Float] This is how long the request is tried before giving up. When request times out,
|
98
|
+
# `call.analysis.successEvaluation` will be empty.
|
99
|
+
# Usage:
|
100
|
+
# - To guarantee the success evaluation is generated, set this value high. Note,
|
101
|
+
# this will delay the end of call report in cases where model is slow to respond.
|
102
|
+
# @default 5 seconds
|
103
|
+
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
104
|
+
# @return [Vapi::SuccessEvaluationPlan]
|
105
|
+
def initialize(rubric: OMIT, messages: OMIT, enabled: OMIT, timeout_seconds: OMIT, additional_properties: nil)
|
106
|
+
@rubric = rubric if rubric != OMIT
|
107
|
+
@messages = messages if messages != OMIT
|
108
|
+
@enabled = enabled if enabled != OMIT
|
109
|
+
@timeout_seconds = timeout_seconds if timeout_seconds != OMIT
|
110
|
+
@additional_properties = additional_properties
|
111
|
+
@_field_set = {
|
112
|
+
"rubric": rubric,
|
113
|
+
"messages": messages,
|
114
|
+
"enabled": enabled,
|
115
|
+
"timeoutSeconds": timeout_seconds
|
116
|
+
}.reject do |_k, v|
|
117
|
+
v == OMIT
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
# Deserialize a JSON object to an instance of SuccessEvaluationPlan
|
122
|
+
#
|
123
|
+
# @param json_object [String]
|
124
|
+
# @return [Vapi::SuccessEvaluationPlan]
|
125
|
+
def self.from_json(json_object:)
|
126
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
127
|
+
parsed_json = JSON.parse(json_object)
|
128
|
+
rubric = parsed_json["rubric"]
|
129
|
+
messages = parsed_json["messages"]
|
130
|
+
enabled = parsed_json["enabled"]
|
131
|
+
timeout_seconds = parsed_json["timeoutSeconds"]
|
132
|
+
new(
|
133
|
+
rubric: rubric,
|
134
|
+
messages: messages,
|
135
|
+
enabled: enabled,
|
136
|
+
timeout_seconds: timeout_seconds,
|
137
|
+
additional_properties: struct
|
138
|
+
)
|
139
|
+
end
|
140
|
+
|
141
|
+
# Serialize an instance of SuccessEvaluationPlan to a JSON object
|
142
|
+
#
|
143
|
+
# @return [String]
|
144
|
+
def to_json(*_args)
|
145
|
+
@_field_set&.to_json
|
146
|
+
end
|
147
|
+
|
148
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
149
|
+
# hash and check each fields type against the current object's property
|
150
|
+
# definitions.
|
151
|
+
#
|
152
|
+
# @param obj [Object]
|
153
|
+
# @return [Void]
|
154
|
+
def self.validate_raw(obj:)
|
155
|
+
obj.rubric&.is_a?(Vapi::SuccessEvaluationPlanRubric) != false || raise("Passed value for field obj.rubric is not the expected type, validation failed.")
|
156
|
+
obj.messages&.is_a?(Array) != false || raise("Passed value for field obj.messages is not the expected type, validation failed.")
|
157
|
+
obj.enabled&.is_a?(Boolean) != false || raise("Passed value for field obj.enabled is not the expected type, validation failed.")
|
158
|
+
obj.timeout_seconds&.is_a?(Float) != false || raise("Passed value for field obj.timeout_seconds is not the expected type, validation failed.")
|
159
|
+
end
|
160
|
+
end
|
161
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Vapi
|
4
|
+
# This enforces the rubric of the evaluation. The output is stored in
|
5
|
+
# `call.analysis.successEvaluation`.
|
6
|
+
# Options include:
|
7
|
+
# - 'NumericScale': A scale of 1 to 10.
|
8
|
+
# - 'DescriptiveScale': A scale of Excellent, Good, Fair, Poor.
|
9
|
+
# - 'Checklist': A checklist of criteria and their status.
|
10
|
+
# - 'Matrix': A grid that evaluates multiple criteria across different performance
|
11
|
+
# levels.
|
12
|
+
# - 'PercentageScale': A scale of 0% to 100%.
|
13
|
+
# - 'LikertScale': A scale of Strongly Agree, Agree, Neutral, Disagree, Strongly
|
14
|
+
# Disagree.
|
15
|
+
# - 'AutomaticRubric': Automatically break down evaluation into several criteria,
|
16
|
+
# each with its own score.
|
17
|
+
# - 'PassFail': A simple 'true' if call passed, 'false' if not.
|
18
|
+
# Default is 'PassFail'.
|
19
|
+
class SuccessEvaluationPlanRubric
|
20
|
+
NUMERIC_SCALE = "NumericScale"
|
21
|
+
DESCRIPTIVE_SCALE = "DescriptiveScale"
|
22
|
+
CHECKLIST = "Checklist"
|
23
|
+
MATRIX = "Matrix"
|
24
|
+
PERCENTAGE_SCALE = "PercentageScale"
|
25
|
+
LIKERT_SCALE = "LikertScale"
|
26
|
+
AUTOMATIC_RUBRIC = "AutomaticRubric"
|
27
|
+
PASS_FAIL = "PassFail"
|
28
|
+
end
|
29
|
+
end
|