vapi_server_sdk 0.0.0.pre.alpha7 → 0.2.0
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 +4 -4
- data/lib/requests.rb +2 -10
- data/lib/types_export.rb +184 -26
- data/lib/vapi_server_sdk/analytics/client.rb +14 -43
- data/lib/vapi_server_sdk/assistants/client.rb +57 -60
- data/lib/vapi_server_sdk/assistants/types/update_assistant_dto_client_messages_item.rb +1 -0
- data/lib/vapi_server_sdk/assistants/types/update_assistant_dto_model.rb +39 -0
- data/lib/vapi_server_sdk/assistants/types/update_assistant_dto_server_messages_item.rb +1 -0
- data/lib/vapi_server_sdk/assistants/types/update_assistant_dto_transcriber.rb +27 -1
- data/lib/vapi_server_sdk/assistants/types/update_assistant_dto_voice.rb +26 -0
- data/lib/vapi_server_sdk/calls/client.rb +58 -28
- data/lib/vapi_server_sdk/knowledge_bases/client.rb +394 -0
- data/lib/vapi_server_sdk/knowledge_bases/types/knowledge_bases_create_request.rb +96 -0
- data/lib/vapi_server_sdk/knowledge_bases/types/knowledge_bases_create_response.rb +96 -0
- data/lib/vapi_server_sdk/knowledge_bases/types/knowledge_bases_delete_response.rb +96 -0
- data/lib/vapi_server_sdk/knowledge_bases/types/knowledge_bases_get_response.rb +96 -0
- data/lib/vapi_server_sdk/knowledge_bases/types/knowledge_bases_list_response_item.rb +96 -0
- data/lib/vapi_server_sdk/knowledge_bases/types/knowledge_bases_update_response.rb +96 -0
- data/lib/vapi_server_sdk/logs/client.rb +10 -6
- data/lib/vapi_server_sdk/squads/client.rb +56 -32
- data/lib/vapi_server_sdk/tools/client.rb +4 -0
- data/lib/vapi_server_sdk/tools/types/tools_create_request.rb +39 -0
- data/lib/vapi_server_sdk/tools/types/tools_create_response.rb +39 -0
- data/lib/vapi_server_sdk/tools/types/tools_delete_response.rb +39 -0
- data/lib/vapi_server_sdk/tools/types/tools_get_response.rb +39 -0
- data/lib/vapi_server_sdk/tools/types/tools_list_response_item.rb +39 -0
- data/lib/vapi_server_sdk/tools/types/tools_update_response.rb +39 -0
- data/lib/vapi_server_sdk/types/analytics_query_dto.rb +59 -0
- data/lib/vapi_server_sdk/types/anthropic_credential.rb +13 -3
- data/lib/vapi_server_sdk/types/anthropic_model.rb +21 -13
- data/lib/vapi_server_sdk/types/anthropic_model_model.rb +2 -0
- data/lib/vapi_server_sdk/types/anyscale_credential.rb +13 -3
- data/lib/vapi_server_sdk/types/anyscale_model.rb +21 -13
- data/lib/vapi_server_sdk/types/assembly_ai_credential.rb +111 -0
- data/lib/vapi_server_sdk/types/assembly_ai_transcriber.rb +97 -0
- data/lib/vapi_server_sdk/types/assistant.rb +42 -64
- data/lib/vapi_server_sdk/types/assistant_client_messages_item.rb +1 -0
- data/lib/vapi_server_sdk/types/assistant_custom_endpointing_rule.rb +100 -0
- data/lib/vapi_server_sdk/types/assistant_model.rb +39 -0
- data/lib/vapi_server_sdk/types/assistant_overrides.rb +57 -65
- data/lib/vapi_server_sdk/types/assistant_overrides_client_messages_item.rb +1 -0
- data/lib/vapi_server_sdk/types/assistant_overrides_model.rb +39 -0
- data/lib/vapi_server_sdk/types/assistant_overrides_server_messages_item.rb +1 -0
- data/lib/vapi_server_sdk/types/assistant_overrides_transcriber.rb +27 -1
- data/lib/vapi_server_sdk/types/assistant_overrides_voice.rb +26 -0
- data/lib/vapi_server_sdk/types/assistant_server_messages_item.rb +1 -0
- data/lib/vapi_server_sdk/types/assistant_transcriber.rb +27 -1
- data/lib/vapi_server_sdk/types/assistant_voice.rb +26 -0
- data/lib/vapi_server_sdk/types/auto_reload_plan.rb +65 -0
- data/lib/vapi_server_sdk/types/auto_reload_plan_dto.rb +65 -0
- data/lib/vapi_server_sdk/types/azure_credential.rb +129 -0
- data/lib/vapi_server_sdk/types/azure_credential_region.rb +23 -0
- data/lib/vapi_server_sdk/types/azure_open_ai_credential.rb +12 -2
- data/lib/vapi_server_sdk/types/azure_open_ai_credential_models_item.rb +1 -0
- data/lib/vapi_server_sdk/types/azure_open_ai_credential_region.rb +1 -0
- data/lib/vapi_server_sdk/types/azure_voice.rb +25 -21
- data/lib/vapi_server_sdk/types/bash_tool.rb +194 -0
- data/lib/vapi_server_sdk/types/bash_tool_messages_item.rb +120 -0
- data/lib/vapi_server_sdk/types/block_complete_message.rb +29 -4
- data/lib/vapi_server_sdk/types/block_start_message.rb +29 -4
- data/lib/vapi_server_sdk/types/both_custom_endpointing_rule.rb +126 -0
- data/lib/vapi_server_sdk/types/byo_sip_trunk_credential.rb +29 -9
- data/lib/vapi_server_sdk/types/call.rb +15 -1
- data/lib/vapi_server_sdk/types/call_ended_reason.rb +49 -24
- data/lib/vapi_server_sdk/types/call_log_privileged.rb +88 -0
- data/lib/vapi_server_sdk/types/call_log_privileged_level.rb +12 -0
- data/lib/vapi_server_sdk/types/call_logs_paginated_response.rb +75 -0
- data/lib/vapi_server_sdk/types/cartesia_credential.rb +13 -3
- data/lib/vapi_server_sdk/types/cartesia_voice.rb +25 -21
- data/lib/vapi_server_sdk/types/cartesia_voice_language.rb +9 -1
- data/lib/vapi_server_sdk/types/client_inbound_message_add_message.rb +25 -3
- data/lib/vapi_server_sdk/types/client_inbound_message_message.rb +13 -0
- data/lib/vapi_server_sdk/types/client_inbound_message_transfer.rb +63 -0
- data/lib/vapi_server_sdk/types/client_inbound_message_transfer_destination.rb +96 -0
- data/lib/vapi_server_sdk/types/{client_message_language_changed.rb → client_message_language_change_detected.rb} +5 -5
- data/lib/vapi_server_sdk/types/client_message_message.rb +22 -9
- data/lib/vapi_server_sdk/types/client_message_tool_calls_tool_with_tool_call_list_item.rb +77 -77
- data/lib/vapi_server_sdk/types/client_message_transfer_update.rb +116 -0
- data/lib/vapi_server_sdk/types/client_message_transfer_update_destination.rb +122 -0
- data/lib/vapi_server_sdk/types/computer_tool.rb +218 -0
- data/lib/vapi_server_sdk/types/computer_tool_messages_item.rb +120 -0
- data/lib/vapi_server_sdk/types/condition.rb +9 -9
- data/lib/vapi_server_sdk/types/create_anthropic_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/create_anyscale_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/create_assembly_ai_credential_dto.rb +74 -0
- data/lib/vapi_server_sdk/types/create_assistant_dto.rb +43 -65
- data/lib/vapi_server_sdk/types/create_assistant_dto_client_messages_item.rb +1 -0
- data/lib/vapi_server_sdk/types/create_assistant_dto_model.rb +39 -0
- data/lib/vapi_server_sdk/types/create_assistant_dto_server_messages_item.rb +1 -0
- data/lib/vapi_server_sdk/types/create_assistant_dto_transcriber.rb +27 -1
- data/lib/vapi_server_sdk/types/create_assistant_dto_voice.rb +26 -0
- data/lib/vapi_server_sdk/types/create_azure_credential_dto.rb +95 -0
- data/lib/vapi_server_sdk/types/create_azure_credential_dto_region.rb +23 -0
- data/lib/vapi_server_sdk/types/create_azure_open_ai_credential_dto.rb +13 -3
- data/lib/vapi_server_sdk/types/create_azure_open_ai_credential_dto_models_item.rb +1 -0
- data/lib/vapi_server_sdk/types/create_azure_open_ai_credential_dto_region.rb +1 -0
- data/lib/vapi_server_sdk/types/create_bash_tool_dto.rb +161 -0
- data/lib/vapi_server_sdk/types/create_bash_tool_dto_messages_item.rb +120 -0
- data/lib/vapi_server_sdk/types/create_byo_sip_trunk_credential_dto.rb +31 -11
- data/lib/vapi_server_sdk/types/create_cartesia_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/create_computer_tool_dto.rb +185 -0
- data/lib/vapi_server_sdk/types/create_computer_tool_dto_messages_item.rb +120 -0
- data/lib/vapi_server_sdk/types/create_custom_knowledge_base_dto.rb +137 -0
- data/lib/vapi_server_sdk/types/create_custom_llm_credential_dto.rb +31 -2
- data/lib/vapi_server_sdk/types/create_deep_infra_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/create_deepgram_credential_dto.rb +9 -2
- data/lib/vapi_server_sdk/types/create_eleven_labs_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/create_gcp_credential_dto.rb +10 -10
- data/lib/vapi_server_sdk/types/create_gladia_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/create_go_high_level_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/create_google_credential_dto.rb +76 -0
- data/lib/vapi_server_sdk/types/create_groq_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/create_inflection_ai_credential_dto.rb +76 -0
- data/lib/vapi_server_sdk/types/create_langfuse_credential_dto.rb +96 -0
- data/lib/vapi_server_sdk/types/create_lmnt_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/create_make_credential_dto.rb +17 -2
- data/lib/vapi_server_sdk/types/create_open_ai_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/create_open_router_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/create_org_dto.rb +21 -2
- data/lib/vapi_server_sdk/types/create_org_dto_channel.rb +10 -0
- data/lib/vapi_server_sdk/types/create_perplexity_ai_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/create_play_ht_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/create_rime_ai_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/create_runpod_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/create_s_3_credential_dto.rb +13 -3
- data/lib/vapi_server_sdk/types/{knowledge_base.rb → create_tavus_credential_dto.rb} +21 -21
- data/lib/vapi_server_sdk/types/create_text_editor_tool_dto.rb +161 -0
- data/lib/vapi_server_sdk/types/create_text_editor_tool_dto_messages_item.rb +120 -0
- data/lib/vapi_server_sdk/types/create_together_ai_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/create_trieve_knowledge_base_dto.rb +109 -0
- data/lib/vapi_server_sdk/types/create_twilio_credential_dto.rb +16 -2
- data/lib/vapi_server_sdk/types/create_vapi_phone_number_dto.rb +20 -2
- data/lib/vapi_server_sdk/types/create_vonage_credential_dto.rb +16 -2
- data/lib/vapi_server_sdk/types/create_webhook_credential_dto.rb +84 -0
- data/lib/vapi_server_sdk/types/create_x_ai_credential_dto.rb +76 -0
- data/lib/vapi_server_sdk/types/credits_buy_dto.rb +55 -0
- data/lib/vapi_server_sdk/types/custom_knowledge_base.rb +154 -0
- data/lib/vapi_server_sdk/types/custom_llm_credential.rb +46 -3
- data/lib/vapi_server_sdk/types/custom_llm_model.rb +23 -15
- data/lib/vapi_server_sdk/types/custom_message.rb +92 -0
- data/lib/vapi_server_sdk/types/custom_transcriber.rb +125 -0
- data/lib/vapi_server_sdk/types/custom_voice.rb +132 -0
- data/lib/vapi_server_sdk/types/customer_custom_endpointing_rule.rb +100 -0
- data/lib/vapi_server_sdk/types/deep_infra_credential.rb +13 -3
- data/lib/vapi_server_sdk/types/deep_infra_model.rb +21 -13
- data/lib/vapi_server_sdk/types/deepgram_credential.rb +9 -1
- data/lib/vapi_server_sdk/types/deepgram_transcriber.rb +69 -11
- data/lib/vapi_server_sdk/types/deepgram_voice.rb +17 -17
- data/lib/vapi_server_sdk/types/eleven_labs_credential.rb +13 -3
- data/lib/vapi_server_sdk/types/eleven_labs_voice.rb +28 -24
- data/lib/vapi_server_sdk/types/fallback_azure_voice.rb +100 -0
- data/lib/vapi_server_sdk/types/fallback_azure_voice_id.rb +53 -0
- data/lib/vapi_server_sdk/types/fallback_azure_voice_voice_id.rb +9 -0
- data/lib/vapi_server_sdk/types/fallback_cartesia_voice.rb +100 -0
- data/lib/vapi_server_sdk/types/fallback_cartesia_voice_language.rb +23 -0
- data/lib/vapi_server_sdk/types/fallback_cartesia_voice_model.rb +10 -0
- data/lib/vapi_server_sdk/types/fallback_custom_voice.rb +117 -0
- data/lib/vapi_server_sdk/types/fallback_deepgram_voice.rb +81 -0
- data/lib/vapi_server_sdk/types/fallback_deepgram_voice_id.rb +53 -0
- data/lib/vapi_server_sdk/types/fallback_deepgram_voice_id_enum.rb +18 -0
- data/lib/vapi_server_sdk/types/fallback_eleven_labs_voice.rb +164 -0
- data/lib/vapi_server_sdk/types/fallback_eleven_labs_voice_id.rb +54 -0
- data/lib/vapi_server_sdk/types/fallback_eleven_labs_voice_id_enum.rb +21 -0
- data/lib/vapi_server_sdk/types/fallback_eleven_labs_voice_model.rb +12 -0
- data/lib/vapi_server_sdk/types/fallback_lmnt_voice.rb +88 -0
- data/lib/vapi_server_sdk/types/fallback_lmnt_voice_id.rb +53 -0
- data/lib/vapi_server_sdk/types/fallback_lmnt_voice_id_enum.rb +8 -0
- data/lib/vapi_server_sdk/types/fallback_neets_voice.rb +81 -0
- data/lib/vapi_server_sdk/types/fallback_neets_voice_id.rb +53 -0
- data/lib/vapi_server_sdk/types/fallback_neets_voice_id_enum.rb +7 -0
- data/lib/vapi_server_sdk/types/fallback_open_ai_voice.rb +87 -0
- data/lib/vapi_server_sdk/types/fallback_open_ai_voice_id.rb +20 -0
- data/lib/vapi_server_sdk/types/fallback_plan.rb +61 -0
- data/lib/vapi_server_sdk/types/fallback_plan_voices_item.rb +211 -0
- data/lib/vapi_server_sdk/types/fallback_play_ht_voice.rb +172 -0
- data/lib/vapi_server_sdk/types/fallback_play_ht_voice_emotion.rb +19 -0
- data/lib/vapi_server_sdk/types/fallback_play_ht_voice_id.rb +53 -0
- data/lib/vapi_server_sdk/types/fallback_play_ht_voice_id_enum.rb +16 -0
- data/lib/vapi_server_sdk/types/fallback_play_ht_voice_language.rb +44 -0
- data/lib/vapi_server_sdk/types/fallback_play_ht_voice_model.rb +10 -0
- data/lib/vapi_server_sdk/types/fallback_rime_ai_voice.rb +96 -0
- data/lib/vapi_server_sdk/types/fallback_rime_ai_voice_id.rb +53 -0
- data/lib/vapi_server_sdk/types/fallback_rime_ai_voice_id_enum.rb +87 -0
- data/lib/vapi_server_sdk/types/fallback_rime_ai_voice_model.rb +9 -0
- data/lib/vapi_server_sdk/types/fallback_tavus_voice.rb +147 -0
- data/lib/vapi_server_sdk/types/fallback_tavus_voice_voice_id.rb +53 -0
- data/lib/vapi_server_sdk/types/format_plan.rb +0 -2
- data/lib/vapi_server_sdk/types/function_tool_with_tool_call.rb +10 -1
- data/lib/vapi_server_sdk/types/gcp_credential.rb +2 -2
- data/lib/vapi_server_sdk/types/ghl_tool_with_tool_call.rb +9 -1
- data/lib/vapi_server_sdk/types/gladia_credential.rb +13 -3
- data/lib/vapi_server_sdk/types/go_high_level_credential.rb +13 -3
- data/lib/vapi_server_sdk/types/google_credential.rb +113 -0
- data/lib/vapi_server_sdk/types/google_model.rb +178 -0
- data/lib/vapi_server_sdk/types/google_model_model.rb +12 -0
- data/lib/vapi_server_sdk/types/google_model_tools_item.rb +159 -0
- data/lib/vapi_server_sdk/types/groq_credential.rb +13 -3
- data/lib/vapi_server_sdk/types/groq_model.rb +21 -13
- data/lib/vapi_server_sdk/types/hipaa_buy_dto.rb +65 -0
- data/lib/vapi_server_sdk/types/inflection_ai_credential.rb +113 -0
- data/lib/vapi_server_sdk/types/inflection_ai_model.rb +177 -0
- data/lib/vapi_server_sdk/types/inflection_ai_model_tools_item.rb +159 -0
- data/lib/vapi_server_sdk/types/invite_user_dto.rb +9 -9
- data/lib/vapi_server_sdk/types/knowledge_base_response_document.rb +74 -0
- data/lib/vapi_server_sdk/types/langfuse_credential.rb +130 -0
- data/lib/vapi_server_sdk/types/lmnt_credential.rb +13 -3
- data/lib/vapi_server_sdk/types/lmnt_voice.rb +18 -14
- data/lib/vapi_server_sdk/types/log.rb +12 -4
- data/lib/vapi_server_sdk/types/log_resource.rb +8 -0
- data/lib/vapi_server_sdk/types/make_credential.rb +13 -3
- data/lib/vapi_server_sdk/types/make_tool_with_tool_call.rb +9 -1
- data/lib/vapi_server_sdk/types/neets_voice.rb +17 -17
- data/lib/vapi_server_sdk/types/o_auth_2_authentication_plan.rb +79 -0
- data/lib/vapi_server_sdk/types/oauth_2_authentication_session.rb +68 -0
- data/lib/vapi_server_sdk/types/open_ai_credential.rb +13 -3
- data/lib/vapi_server_sdk/types/open_ai_function.rb +30 -4
- data/lib/vapi_server_sdk/types/open_ai_model.rb +23 -15
- data/lib/vapi_server_sdk/types/open_ai_model_fallback_models_item.rb +2 -0
- data/lib/vapi_server_sdk/types/open_ai_model_model.rb +2 -0
- data/lib/vapi_server_sdk/types/open_ai_voice.rb +22 -14
- data/lib/vapi_server_sdk/types/open_ai_voice_id.rb +7 -0
- data/lib/vapi_server_sdk/types/open_router_credential.rb +13 -3
- data/lib/vapi_server_sdk/types/open_router_model.rb +21 -13
- data/lib/vapi_server_sdk/types/org.rb +35 -2
- data/lib/vapi_server_sdk/types/org_channel.rb +10 -0
- data/lib/vapi_server_sdk/types/org_with_org_user.rb +262 -0
- data/lib/vapi_server_sdk/types/org_with_org_user_channel.rb +10 -0
- data/lib/vapi_server_sdk/types/org_with_org_user_role.rb +9 -0
- data/lib/vapi_server_sdk/types/payment.rb +167 -0
- data/lib/vapi_server_sdk/types/payment_retry_dto.rb +55 -0
- data/lib/vapi_server_sdk/types/payment_status.rb +11 -0
- data/lib/vapi_server_sdk/types/payments_paginated_response.rb +75 -0
- data/lib/vapi_server_sdk/types/perplexity_ai_credential.rb +13 -3
- data/lib/vapi_server_sdk/types/perplexity_ai_model.rb +21 -13
- data/lib/vapi_server_sdk/types/phone_number_paginated_response.rb +75 -0
- data/lib/vapi_server_sdk/types/phone_number_paginated_response_results_item.rb +121 -0
- data/lib/vapi_server_sdk/types/play_ht_credential.rb +13 -2
- data/lib/vapi_server_sdk/types/play_ht_voice.rb +37 -15
- data/lib/vapi_server_sdk/types/play_ht_voice_language.rb +44 -0
- data/lib/vapi_server_sdk/types/play_ht_voice_model.rb +10 -0
- data/lib/vapi_server_sdk/types/regex_option.rb +2 -2
- data/lib/vapi_server_sdk/types/regex_option_type.rb +1 -1
- data/lib/vapi_server_sdk/types/regex_replacement.rb +14 -4
- data/lib/vapi_server_sdk/types/rime_ai_credential.rb +13 -3
- data/lib/vapi_server_sdk/types/rime_ai_voice.rb +18 -14
- data/lib/vapi_server_sdk/types/runpod_credential.rb +13 -3
- data/lib/vapi_server_sdk/types/s_3_credential.rb +13 -3
- data/lib/vapi_server_sdk/types/server.rb +16 -2
- data/lib/vapi_server_sdk/types/server_message_end_of_call_report_ended_reason.rb +49 -24
- data/lib/vapi_server_sdk/types/server_message_knowledge_base_request.rb +195 -0
- data/lib/vapi_server_sdk/types/server_message_knowledge_base_request_messages_item.rb +97 -0
- data/lib/vapi_server_sdk/types/{server_message_language_changed_phone_number.rb → server_message_knowledge_base_request_phone_number.rb} +8 -8
- data/lib/vapi_server_sdk/types/{server_message_language_changed.rb → server_message_language_change_detected.rb} +10 -10
- data/lib/vapi_server_sdk/types/server_message_language_change_detected_phone_number.rb +125 -0
- data/lib/vapi_server_sdk/types/server_message_message.rb +22 -9
- data/lib/vapi_server_sdk/types/server_message_response_knowledge_base_request.rb +81 -0
- data/lib/vapi_server_sdk/types/server_message_response_message_response.rb +14 -0
- data/lib/vapi_server_sdk/types/server_message_status_update_ended_reason.rb +49 -24
- data/lib/vapi_server_sdk/types/server_message_tool_calls_tool_with_tool_call_list_item.rb +77 -77
- data/lib/vapi_server_sdk/types/server_message_transfer_update.rb +18 -2
- data/lib/vapi_server_sdk/types/sip_authentication.rb +80 -0
- data/lib/vapi_server_sdk/types/start_speaking_plan.rb +54 -10
- data/lib/vapi_server_sdk/types/start_speaking_plan_custom_endpointing_rules_item.rb +108 -0
- data/lib/vapi_server_sdk/types/structured_data_plan.rb +28 -10
- data/lib/vapi_server_sdk/types/subscription.rb +336 -0
- data/lib/vapi_server_sdk/types/subscription_concurrency_line_buy_dto.rb +55 -0
- data/lib/vapi_server_sdk/types/subscription_concurrency_line_remove_dto.rb +55 -0
- data/lib/vapi_server_sdk/types/subscription_coupon_add_dto.rb +67 -0
- data/lib/vapi_server_sdk/types/subscription_monthly_charge.rb +65 -0
- data/lib/vapi_server_sdk/types/subscription_status.rb +10 -0
- data/lib/vapi_server_sdk/types/subscription_type.rb +10 -0
- data/lib/vapi_server_sdk/types/success_evaluation_plan.rb +38 -16
- data/lib/vapi_server_sdk/types/summary_plan.rb +26 -8
- data/lib/vapi_server_sdk/types/sync_voice_library_dto_providers_item.rb +1 -0
- data/lib/vapi_server_sdk/types/tavus_conversation_properties.rb +173 -0
- data/lib/vapi_server_sdk/types/tavus_credential.rb +111 -0
- data/lib/vapi_server_sdk/types/tavus_voice.rb +163 -0
- data/lib/vapi_server_sdk/types/tavus_voice_voice_id.rb +53 -0
- data/lib/vapi_server_sdk/types/text_content.rb +73 -0
- data/lib/vapi_server_sdk/types/text_content_language.rb +191 -0
- data/lib/vapi_server_sdk/types/text_editor_tool.rb +194 -0
- data/lib/vapi_server_sdk/types/text_editor_tool_messages_item.rb +120 -0
- data/lib/vapi_server_sdk/types/together_ai_credential.rb +13 -3
- data/lib/vapi_server_sdk/types/together_ai_model.rb +21 -13
- data/lib/vapi_server_sdk/types/tool_message_complete.rb +29 -3
- data/lib/vapi_server_sdk/types/tool_message_delayed.rb +30 -3
- data/lib/vapi_server_sdk/types/tool_message_failed.rb +30 -3
- data/lib/vapi_server_sdk/types/tool_message_start.rb +29 -4
- data/lib/vapi_server_sdk/types/transfer_destination_assistant.rb +79 -33
- data/lib/vapi_server_sdk/types/transfer_destination_assistant_message.rb +65 -0
- data/lib/vapi_server_sdk/types/transfer_destination_number.rb +56 -24
- data/lib/vapi_server_sdk/types/transfer_destination_number_message.rb +65 -0
- data/lib/vapi_server_sdk/types/transfer_destination_sip.rb +60 -15
- data/lib/vapi_server_sdk/types/transfer_destination_sip_message.rb +65 -0
- data/lib/vapi_server_sdk/types/transfer_destination_step.rb +28 -14
- data/lib/vapi_server_sdk/types/transfer_destination_step_message.rb +65 -0
- data/lib/vapi_server_sdk/types/transfer_plan.rb +141 -0
- data/lib/vapi_server_sdk/types/transfer_plan_message.rb +58 -0
- data/lib/vapi_server_sdk/types/transfer_plan_mode.rb +32 -0
- data/lib/vapi_server_sdk/types/transport.rb +70 -0
- data/lib/vapi_server_sdk/types/transport_cost.rb +12 -2
- data/lib/vapi_server_sdk/types/transport_cost_provider.rb +9 -0
- data/lib/vapi_server_sdk/types/transport_provider.rb +11 -0
- data/lib/vapi_server_sdk/types/trieve_knowledge_base.rb +125 -0
- data/lib/vapi_server_sdk/types/trieve_knowledge_base_vector_store_create_plan.rb +109 -0
- data/lib/vapi_server_sdk/types/trieve_knowledge_base_vector_store_search_plan.rb +95 -0
- data/lib/vapi_server_sdk/types/trieve_knowledge_base_vector_store_search_plan_search_type.rb +12 -0
- data/lib/vapi_server_sdk/types/twilio_credential.rb +12 -2
- data/lib/vapi_server_sdk/types/update_anthropic_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/update_anyscale_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/update_assembly_ai_credential_dto.rb +74 -0
- data/lib/vapi_server_sdk/types/update_azure_credential_dto.rb +95 -0
- data/lib/vapi_server_sdk/types/update_azure_credential_dto_region.rb +23 -0
- data/lib/vapi_server_sdk/types/update_azure_open_ai_credential_dto.rb +13 -3
- data/lib/vapi_server_sdk/types/update_azure_open_ai_credential_dto_models_item.rb +1 -0
- data/lib/vapi_server_sdk/types/update_azure_open_ai_credential_dto_region.rb +1 -0
- data/lib/vapi_server_sdk/types/update_byo_sip_trunk_credential_dto.rb +31 -11
- data/lib/vapi_server_sdk/types/update_cartesia_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/update_custom_llm_credential_dto.rb +31 -2
- data/lib/vapi_server_sdk/types/update_deep_infra_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/update_deepgram_credential_dto.rb +9 -2
- data/lib/vapi_server_sdk/types/update_eleven_labs_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/update_gcp_credential_dto.rb +10 -10
- data/lib/vapi_server_sdk/types/update_gladia_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/update_go_high_level_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/update_google_credential_dto.rb +76 -0
- data/lib/vapi_server_sdk/types/update_groq_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/update_inflection_ai_credential_dto.rb +76 -0
- data/lib/vapi_server_sdk/types/update_langfuse_credential_dto.rb +96 -0
- data/lib/vapi_server_sdk/types/update_lmnt_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/update_make_credential_dto.rb +17 -2
- data/lib/vapi_server_sdk/types/update_open_ai_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/update_open_router_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/update_org_dto.rb +21 -2
- data/lib/vapi_server_sdk/types/update_org_dto_channel.rb +10 -0
- data/lib/vapi_server_sdk/types/update_perplexity_ai_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/update_play_ht_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/update_rime_ai_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/update_runpod_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/update_s_3_credential_dto.rb +13 -3
- data/lib/vapi_server_sdk/types/update_tavus_credential_dto.rb +74 -0
- data/lib/vapi_server_sdk/types/update_together_ai_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/update_twilio_credential_dto.rb +16 -2
- data/lib/vapi_server_sdk/types/update_vonage_credential_dto.rb +16 -2
- data/lib/vapi_server_sdk/types/update_x_ai_credential_dto.rb +76 -0
- data/lib/vapi_server_sdk/types/vapi_cost.rb +10 -2
- data/lib/vapi_server_sdk/types/vapi_cost_sub_type.rb +9 -0
- data/lib/vapi_server_sdk/types/vapi_model.rb +24 -16
- data/lib/vapi_server_sdk/types/vapi_phone_number.rb +20 -2
- data/lib/vapi_server_sdk/types/vonage_credential.rb +12 -2
- data/lib/vapi_server_sdk/types/webhook_credential.rb +134 -0
- data/lib/vapi_server_sdk/types/x_ai_credential.rb +113 -0
- data/lib/vapi_server_sdk/types/xai_model.rb +177 -0
- data/lib/vapi_server_sdk/types/xai_model_tools_item.rb +159 -0
- data/lib/vapi_server_sdk.rb +7 -0
- metadata +167 -8
@@ -7,22 +7,6 @@ require_relative "make_tool_with_tool_call"
|
|
7
7
|
|
8
8
|
module Vapi
|
9
9
|
class ServerMessageToolCallsToolWithToolCallListItem
|
10
|
-
# @return [Object]
|
11
|
-
attr_reader :member
|
12
|
-
# @return [String]
|
13
|
-
attr_reader :discriminant
|
14
|
-
|
15
|
-
private_class_method :new
|
16
|
-
alias kind_of? is_a?
|
17
|
-
|
18
|
-
# @param member [Object]
|
19
|
-
# @param discriminant [String]
|
20
|
-
# @return [Vapi::ServerMessageToolCallsToolWithToolCallListItem]
|
21
|
-
def initialize(member:, discriminant:)
|
22
|
-
@member = member
|
23
|
-
@discriminant = discriminant
|
24
|
-
end
|
25
|
-
|
26
10
|
# Deserialize a JSON object to an instance of
|
27
11
|
# ServerMessageToolCallsToolWithToolCallListItem
|
28
12
|
#
|
@@ -30,34 +14,55 @@ module Vapi
|
|
30
14
|
# @return [Vapi::ServerMessageToolCallsToolWithToolCallListItem]
|
31
15
|
def self.from_json(json_object:)
|
32
16
|
struct = JSON.parse(json_object, object_class: OpenStruct)
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
when "ghl"
|
37
|
-
Vapi::GhlToolWithToolCall.from_json(json_object: json_object)
|
38
|
-
when "make"
|
39
|
-
Vapi::MakeToolWithToolCall.from_json(json_object: json_object)
|
40
|
-
else
|
41
|
-
Vapi::FunctionToolWithToolCall.from_json(json_object: json_object)
|
42
|
-
end
|
43
|
-
new(member: member, discriminant: struct.type)
|
44
|
-
end
|
17
|
+
begin
|
18
|
+
Vapi::FunctionToolWithToolCall.validate_raw(obj: struct)
|
19
|
+
return Vapi::FunctionToolWithToolCall.from_json(json_object: struct) unless struct.nil?
|
45
20
|
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
else
|
58
|
-
{ "type": @discriminant, value: @member }.to_json
|
21
|
+
return nil
|
22
|
+
rescue StandardError
|
23
|
+
# noop
|
24
|
+
end
|
25
|
+
begin
|
26
|
+
Vapi::GhlToolWithToolCall.validate_raw(obj: struct)
|
27
|
+
return Vapi::GhlToolWithToolCall.from_json(json_object: struct) unless struct.nil?
|
28
|
+
|
29
|
+
return nil
|
30
|
+
rescue StandardError
|
31
|
+
# noop
|
59
32
|
end
|
60
|
-
|
33
|
+
begin
|
34
|
+
Vapi::MakeToolWithToolCall.validate_raw(obj: struct)
|
35
|
+
return Vapi::MakeToolWithToolCall.from_json(json_object: struct) unless struct.nil?
|
36
|
+
|
37
|
+
return nil
|
38
|
+
rescue StandardError
|
39
|
+
# noop
|
40
|
+
end
|
41
|
+
begin
|
42
|
+
struct.is_a?(Object) != false || raise("Passed value for field struct is not the expected type, validation failed.")
|
43
|
+
return struct unless struct.nil?
|
44
|
+
|
45
|
+
return nil
|
46
|
+
rescue StandardError
|
47
|
+
# noop
|
48
|
+
end
|
49
|
+
begin
|
50
|
+
struct.is_a?(Object) != false || raise("Passed value for field struct is not the expected type, validation failed.")
|
51
|
+
return struct unless struct.nil?
|
52
|
+
|
53
|
+
return nil
|
54
|
+
rescue StandardError
|
55
|
+
# noop
|
56
|
+
end
|
57
|
+
begin
|
58
|
+
struct.is_a?(Object) != false || raise("Passed value for field struct is not the expected type, validation failed.")
|
59
|
+
return struct unless struct.nil?
|
60
|
+
|
61
|
+
return nil
|
62
|
+
rescue StandardError
|
63
|
+
# noop
|
64
|
+
end
|
65
|
+
struct
|
61
66
|
end
|
62
67
|
|
63
68
|
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
@@ -67,42 +72,37 @@ module Vapi
|
|
67
72
|
# @param obj [Object]
|
68
73
|
# @return [Void]
|
69
74
|
def self.validate_raw(obj:)
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
Vapi::GhlToolWithToolCall.validate_raw(obj: obj)
|
75
|
-
when "make"
|
76
|
-
Vapi::MakeToolWithToolCall.validate_raw(obj: obj)
|
77
|
-
else
|
78
|
-
raise("Passed value matched no type within the union, validation failed.")
|
75
|
+
begin
|
76
|
+
return Vapi::FunctionToolWithToolCall.validate_raw(obj: obj)
|
77
|
+
rescue StandardError
|
78
|
+
# noop
|
79
79
|
end
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
80
|
+
begin
|
81
|
+
return Vapi::GhlToolWithToolCall.validate_raw(obj: obj)
|
82
|
+
rescue StandardError
|
83
|
+
# noop
|
84
|
+
end
|
85
|
+
begin
|
86
|
+
return Vapi::MakeToolWithToolCall.validate_raw(obj: obj)
|
87
|
+
rescue StandardError
|
88
|
+
# noop
|
89
|
+
end
|
90
|
+
begin
|
91
|
+
return obj.is_a?(Object) != false || raise("Passed value for field obj is not the expected type, validation failed.")
|
92
|
+
rescue StandardError
|
93
|
+
# noop
|
94
|
+
end
|
95
|
+
begin
|
96
|
+
return obj.is_a?(Object) != false || raise("Passed value for field obj is not the expected type, validation failed.")
|
97
|
+
rescue StandardError
|
98
|
+
# noop
|
99
|
+
end
|
100
|
+
begin
|
101
|
+
return obj.is_a?(Object) != false || raise("Passed value for field obj is not the expected type, validation failed.")
|
102
|
+
rescue StandardError
|
103
|
+
# noop
|
104
|
+
end
|
105
|
+
raise("Passed value matched no type within the union, validation failed.")
|
106
106
|
end
|
107
107
|
end
|
108
108
|
end
|
@@ -49,6 +49,10 @@ module Vapi
|
|
49
49
|
# @return [Vapi::CreateAssistantDto] This is the assistant that the call is being transferred from. This is only sent
|
50
50
|
# if `destination.type` is "assistant".
|
51
51
|
attr_reader :from_assistant
|
52
|
+
# @return [Hash{String => Object}] This is the step that the conversation moved to.
|
53
|
+
attr_reader :to_step_record
|
54
|
+
# @return [Hash{String => Object}] This is the step that the conversation moved from. =
|
55
|
+
attr_reader :from_step_record
|
52
56
|
# @return [OpenStruct] Additional properties unmapped to the current class definition
|
53
57
|
attr_reader :additional_properties
|
54
58
|
# @return [Object]
|
@@ -86,10 +90,12 @@ module Vapi
|
|
86
90
|
# if `destination.type` is "assistant".
|
87
91
|
# @param from_assistant [Vapi::CreateAssistantDto] This is the assistant that the call is being transferred from. This is only sent
|
88
92
|
# if `destination.type` is "assistant".
|
93
|
+
# @param to_step_record [Hash{String => Object}] This is the step that the conversation moved to.
|
94
|
+
# @param from_step_record [Hash{String => Object}] This is the step that the conversation moved from. =
|
89
95
|
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
90
96
|
# @return [Vapi::ServerMessageTransferUpdate]
|
91
97
|
def initialize(phone_number: OMIT, destination: OMIT, timestamp: OMIT, artifact: OMIT, assistant: OMIT,
|
92
|
-
customer: OMIT, call: OMIT, to_assistant: OMIT, from_assistant: OMIT, additional_properties: nil)
|
98
|
+
customer: OMIT, call: OMIT, to_assistant: OMIT, from_assistant: OMIT, to_step_record: OMIT, from_step_record: OMIT, additional_properties: nil)
|
93
99
|
@phone_number = phone_number if phone_number != OMIT
|
94
100
|
@destination = destination if destination != OMIT
|
95
101
|
@timestamp = timestamp if timestamp != OMIT
|
@@ -99,6 +105,8 @@ module Vapi
|
|
99
105
|
@call = call if call != OMIT
|
100
106
|
@to_assistant = to_assistant if to_assistant != OMIT
|
101
107
|
@from_assistant = from_assistant if from_assistant != OMIT
|
108
|
+
@to_step_record = to_step_record if to_step_record != OMIT
|
109
|
+
@from_step_record = from_step_record if from_step_record != OMIT
|
102
110
|
@additional_properties = additional_properties
|
103
111
|
@_field_set = {
|
104
112
|
"phoneNumber": phone_number,
|
@@ -109,7 +117,9 @@ module Vapi
|
|
109
117
|
"customer": customer,
|
110
118
|
"call": call,
|
111
119
|
"toAssistant": to_assistant,
|
112
|
-
"fromAssistant": from_assistant
|
120
|
+
"fromAssistant": from_assistant,
|
121
|
+
"toStepRecord": to_step_record,
|
122
|
+
"fromStepRecord": from_step_record
|
113
123
|
}.reject do |_k, v|
|
114
124
|
v == OMIT
|
115
125
|
end
|
@@ -171,6 +181,8 @@ module Vapi
|
|
171
181
|
from_assistant = parsed_json["fromAssistant"].to_json
|
172
182
|
from_assistant = Vapi::CreateAssistantDto.from_json(json_object: from_assistant)
|
173
183
|
end
|
184
|
+
to_step_record = parsed_json["toStepRecord"]
|
185
|
+
from_step_record = parsed_json["fromStepRecord"]
|
174
186
|
new(
|
175
187
|
phone_number: phone_number,
|
176
188
|
destination: destination,
|
@@ -181,6 +193,8 @@ module Vapi
|
|
181
193
|
call: call,
|
182
194
|
to_assistant: to_assistant,
|
183
195
|
from_assistant: from_assistant,
|
196
|
+
to_step_record: to_step_record,
|
197
|
+
from_step_record: from_step_record,
|
184
198
|
additional_properties: struct
|
185
199
|
)
|
186
200
|
end
|
@@ -208,6 +222,8 @@ module Vapi
|
|
208
222
|
obj.call.nil? || Vapi::Call.validate_raw(obj: obj.call)
|
209
223
|
obj.to_assistant.nil? || Vapi::CreateAssistantDto.validate_raw(obj: obj.to_assistant)
|
210
224
|
obj.from_assistant.nil? || Vapi::CreateAssistantDto.validate_raw(obj: obj.from_assistant)
|
225
|
+
obj.to_step_record&.is_a?(Hash) != false || raise("Passed value for field obj.to_step_record is not the expected type, validation failed.")
|
226
|
+
obj.from_step_record&.is_a?(Hash) != false || raise("Passed value for field obj.from_step_record is not the expected type, validation failed.")
|
211
227
|
end
|
212
228
|
end
|
213
229
|
end
|
@@ -0,0 +1,80 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "ostruct"
|
4
|
+
require "json"
|
5
|
+
|
6
|
+
module Vapi
|
7
|
+
class SipAuthentication
|
8
|
+
# @return [String] This will be expected in the `realm` field of the `authorization` header of the
|
9
|
+
# SIP INVITE. Defaults to sip.vapi.ai.
|
10
|
+
attr_reader :realm
|
11
|
+
# @return [String] This will be expected in the `username` field of the `authorization` header of
|
12
|
+
# the SIP INVITE.
|
13
|
+
attr_reader :username
|
14
|
+
# @return [String] This will be expected to generate the `response` field of the `authorization`
|
15
|
+
# header of the SIP INVITE, through digest authentication.
|
16
|
+
attr_reader :password
|
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 realm [String] This will be expected in the `realm` field of the `authorization` header of the
|
26
|
+
# SIP INVITE. Defaults to sip.vapi.ai.
|
27
|
+
# @param username [String] This will be expected in the `username` field of the `authorization` header of
|
28
|
+
# the SIP INVITE.
|
29
|
+
# @param password [String] This will be expected to generate the `response` field of the `authorization`
|
30
|
+
# header of the SIP INVITE, through digest authentication.
|
31
|
+
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
32
|
+
# @return [Vapi::SipAuthentication]
|
33
|
+
def initialize(username:, password:, realm: OMIT, additional_properties: nil)
|
34
|
+
@realm = realm if realm != OMIT
|
35
|
+
@username = username
|
36
|
+
@password = password
|
37
|
+
@additional_properties = additional_properties
|
38
|
+
@_field_set = { "realm": realm, "username": username, "password": password }.reject do |_k, v|
|
39
|
+
v == OMIT
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
# Deserialize a JSON object to an instance of SipAuthentication
|
44
|
+
#
|
45
|
+
# @param json_object [String]
|
46
|
+
# @return [Vapi::SipAuthentication]
|
47
|
+
def self.from_json(json_object:)
|
48
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
49
|
+
parsed_json = JSON.parse(json_object)
|
50
|
+
realm = parsed_json["realm"]
|
51
|
+
username = parsed_json["username"]
|
52
|
+
password = parsed_json["password"]
|
53
|
+
new(
|
54
|
+
realm: realm,
|
55
|
+
username: username,
|
56
|
+
password: password,
|
57
|
+
additional_properties: struct
|
58
|
+
)
|
59
|
+
end
|
60
|
+
|
61
|
+
# Serialize an instance of SipAuthentication to a JSON object
|
62
|
+
#
|
63
|
+
# @return [String]
|
64
|
+
def to_json(*_args)
|
65
|
+
@_field_set&.to_json
|
66
|
+
end
|
67
|
+
|
68
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
69
|
+
# hash and check each fields type against the current object's property
|
70
|
+
# definitions.
|
71
|
+
#
|
72
|
+
# @param obj [Object]
|
73
|
+
# @return [Void]
|
74
|
+
def self.validate_raw(obj:)
|
75
|
+
obj.realm&.is_a?(String) != false || raise("Passed value for field obj.realm is not the expected type, validation failed.")
|
76
|
+
obj.username.is_a?(String) != false || raise("Passed value for field obj.username is not the expected type, validation failed.")
|
77
|
+
obj.password.is_a?(String) != false || raise("Passed value for field obj.password is not the expected type, validation failed.")
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require_relative "start_speaking_plan_custom_endpointing_rules_item"
|
3
4
|
require_relative "transcription_endpointing_plan"
|
4
5
|
require "ostruct"
|
5
6
|
require "json"
|
@@ -8,7 +9,7 @@ module Vapi
|
|
8
9
|
class StartSpeakingPlan
|
9
10
|
# @return [Float] This is how long assistant waits before speaking. Defaults to 0.4.
|
10
11
|
# This is the minimum it will wait but if there is latency is the pipeline, this
|
11
|
-
# minimum will be exceeded. This is
|
12
|
+
# minimum will be exceeded. This is intended as a stopgap in case the pipeline is
|
12
13
|
# moving too fast.
|
13
14
|
# Example:
|
14
15
|
# - If model generates tokens and voice generates bytes within 100ms, the pipeline
|
@@ -19,12 +20,30 @@ module Vapi
|
|
19
20
|
# value.
|
20
21
|
# @default 0.4
|
21
22
|
attr_reader :wait_seconds
|
22
|
-
# @return [Boolean] This determines if a customer speech is considered done (endpointing) using
|
23
|
-
#
|
23
|
+
# @return [Boolean] This determines if a customer speech is considered done (endpointing) using a
|
24
|
+
# Vapi custom-trained model on customer's speech. This is good for
|
25
|
+
# middle-of-thought detection.
|
24
26
|
# Once an endpoint is triggered, the request is sent to `assistant.model`.
|
25
|
-
#
|
27
|
+
# Usage:
|
28
|
+
# - If your conversations are long-form and you want assistant to wait smartly
|
29
|
+
# even if customer pauses for a bit to think, you can use this instead.
|
30
|
+
# This overrides `transcriptionEndpointingPlan`.
|
26
31
|
# @default false
|
27
32
|
attr_reader :smart_endpointing_enabled
|
33
|
+
# @return [Array<Vapi::StartSpeakingPlanCustomEndpointingRulesItem>] These are the custom endpointing rules to set an endpointing timeout based on a
|
34
|
+
# regex on the customer's speech or the assistant's last message.
|
35
|
+
# Usage:
|
36
|
+
# - If you have yes/no questions like "are you interested in a loan?", you can set
|
37
|
+
# a shorter timeout.
|
38
|
+
# - If you have questions where the customer may pause to look up information like
|
39
|
+
# "what's my account number?", you can set a longer timeout.
|
40
|
+
# - If you want to wait longer while customer is enumerating a list of numbers,
|
41
|
+
# you can set a longer timeout.
|
42
|
+
# These override `transcriptionEndpointingPlan` and `smartEndpointingEnabled` when
|
43
|
+
# a rule is matched.
|
44
|
+
# The rules are evaluated in order and the first one that matches will be used.
|
45
|
+
# @default []
|
46
|
+
attr_reader :custom_endpointing_rules
|
28
47
|
# @return [Vapi::TranscriptionEndpointingPlan] This determines how a customer speech is considered done (endpointing) using the
|
29
48
|
# transcription of customer's speech.
|
30
49
|
# Once an endpoint is triggered, the request is sent to `assistant.model`.
|
@@ -39,7 +58,7 @@ module Vapi
|
|
39
58
|
|
40
59
|
# @param wait_seconds [Float] This is how long assistant waits before speaking. Defaults to 0.4.
|
41
60
|
# This is the minimum it will wait but if there is latency is the pipeline, this
|
42
|
-
# minimum will be exceeded. This is
|
61
|
+
# minimum will be exceeded. This is intended as a stopgap in case the pipeline is
|
43
62
|
# moving too fast.
|
44
63
|
# Example:
|
45
64
|
# - If model generates tokens and voice generates bytes within 100ms, the pipeline
|
@@ -49,25 +68,44 @@ module Vapi
|
|
49
68
|
# - If the assistant is accidentally jumping in too much, set this to a higher
|
50
69
|
# value.
|
51
70
|
# @default 0.4
|
52
|
-
# @param smart_endpointing_enabled [Boolean] This determines if a customer speech is considered done (endpointing) using
|
53
|
-
#
|
71
|
+
# @param smart_endpointing_enabled [Boolean] This determines if a customer speech is considered done (endpointing) using a
|
72
|
+
# Vapi custom-trained model on customer's speech. This is good for
|
73
|
+
# middle-of-thought detection.
|
54
74
|
# Once an endpoint is triggered, the request is sent to `assistant.model`.
|
55
|
-
#
|
75
|
+
# Usage:
|
76
|
+
# - If your conversations are long-form and you want assistant to wait smartly
|
77
|
+
# even if customer pauses for a bit to think, you can use this instead.
|
78
|
+
# This overrides `transcriptionEndpointingPlan`.
|
56
79
|
# @default false
|
80
|
+
# @param custom_endpointing_rules [Array<Vapi::StartSpeakingPlanCustomEndpointingRulesItem>] These are the custom endpointing rules to set an endpointing timeout based on a
|
81
|
+
# regex on the customer's speech or the assistant's last message.
|
82
|
+
# Usage:
|
83
|
+
# - If you have yes/no questions like "are you interested in a loan?", you can set
|
84
|
+
# a shorter timeout.
|
85
|
+
# - If you have questions where the customer may pause to look up information like
|
86
|
+
# "what's my account number?", you can set a longer timeout.
|
87
|
+
# - If you want to wait longer while customer is enumerating a list of numbers,
|
88
|
+
# you can set a longer timeout.
|
89
|
+
# These override `transcriptionEndpointingPlan` and `smartEndpointingEnabled` when
|
90
|
+
# a rule is matched.
|
91
|
+
# The rules are evaluated in order and the first one that matches will be used.
|
92
|
+
# @default []
|
57
93
|
# @param transcription_endpointing_plan [Vapi::TranscriptionEndpointingPlan] This determines how a customer speech is considered done (endpointing) using the
|
58
94
|
# transcription of customer's speech.
|
59
95
|
# Once an endpoint is triggered, the request is sent to `assistant.model`.
|
60
96
|
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
61
97
|
# @return [Vapi::StartSpeakingPlan]
|
62
|
-
def initialize(wait_seconds: OMIT, smart_endpointing_enabled: OMIT,
|
63
|
-
additional_properties: nil)
|
98
|
+
def initialize(wait_seconds: OMIT, smart_endpointing_enabled: OMIT, custom_endpointing_rules: OMIT,
|
99
|
+
transcription_endpointing_plan: OMIT, additional_properties: nil)
|
64
100
|
@wait_seconds = wait_seconds if wait_seconds != OMIT
|
65
101
|
@smart_endpointing_enabled = smart_endpointing_enabled if smart_endpointing_enabled != OMIT
|
102
|
+
@custom_endpointing_rules = custom_endpointing_rules if custom_endpointing_rules != OMIT
|
66
103
|
@transcription_endpointing_plan = transcription_endpointing_plan if transcription_endpointing_plan != OMIT
|
67
104
|
@additional_properties = additional_properties
|
68
105
|
@_field_set = {
|
69
106
|
"waitSeconds": wait_seconds,
|
70
107
|
"smartEndpointingEnabled": smart_endpointing_enabled,
|
108
|
+
"customEndpointingRules": custom_endpointing_rules,
|
71
109
|
"transcriptionEndpointingPlan": transcription_endpointing_plan
|
72
110
|
}.reject do |_k, v|
|
73
111
|
v == OMIT
|
@@ -83,6 +121,10 @@ module Vapi
|
|
83
121
|
parsed_json = JSON.parse(json_object)
|
84
122
|
wait_seconds = parsed_json["waitSeconds"]
|
85
123
|
smart_endpointing_enabled = parsed_json["smartEndpointingEnabled"]
|
124
|
+
custom_endpointing_rules = parsed_json["customEndpointingRules"]&.map do |item|
|
125
|
+
item = item.to_json
|
126
|
+
Vapi::StartSpeakingPlanCustomEndpointingRulesItem.from_json(json_object: item)
|
127
|
+
end
|
86
128
|
if parsed_json["transcriptionEndpointingPlan"].nil?
|
87
129
|
transcription_endpointing_plan = nil
|
88
130
|
else
|
@@ -92,6 +134,7 @@ module Vapi
|
|
92
134
|
new(
|
93
135
|
wait_seconds: wait_seconds,
|
94
136
|
smart_endpointing_enabled: smart_endpointing_enabled,
|
137
|
+
custom_endpointing_rules: custom_endpointing_rules,
|
95
138
|
transcription_endpointing_plan: transcription_endpointing_plan,
|
96
139
|
additional_properties: struct
|
97
140
|
)
|
@@ -113,6 +156,7 @@ module Vapi
|
|
113
156
|
def self.validate_raw(obj:)
|
114
157
|
obj.wait_seconds&.is_a?(Float) != false || raise("Passed value for field obj.wait_seconds is not the expected type, validation failed.")
|
115
158
|
obj.smart_endpointing_enabled&.is_a?(Boolean) != false || raise("Passed value for field obj.smart_endpointing_enabled is not the expected type, validation failed.")
|
159
|
+
obj.custom_endpointing_rules&.is_a?(Array) != false || raise("Passed value for field obj.custom_endpointing_rules is not the expected type, validation failed.")
|
116
160
|
obj.transcription_endpointing_plan.nil? || Vapi::TranscriptionEndpointingPlan.validate_raw(obj: obj.transcription_endpointing_plan)
|
117
161
|
end
|
118
162
|
end
|
@@ -0,0 +1,108 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "json"
|
4
|
+
require_relative "assistant_custom_endpointing_rule"
|
5
|
+
require_relative "customer_custom_endpointing_rule"
|
6
|
+
require_relative "both_custom_endpointing_rule"
|
7
|
+
|
8
|
+
module Vapi
|
9
|
+
class StartSpeakingPlanCustomEndpointingRulesItem
|
10
|
+
# @return [Object]
|
11
|
+
attr_reader :member
|
12
|
+
# @return [String]
|
13
|
+
attr_reader :discriminant
|
14
|
+
|
15
|
+
private_class_method :new
|
16
|
+
alias kind_of? is_a?
|
17
|
+
|
18
|
+
# @param member [Object]
|
19
|
+
# @param discriminant [String]
|
20
|
+
# @return [Vapi::StartSpeakingPlanCustomEndpointingRulesItem]
|
21
|
+
def initialize(member:, discriminant:)
|
22
|
+
@member = member
|
23
|
+
@discriminant = discriminant
|
24
|
+
end
|
25
|
+
|
26
|
+
# Deserialize a JSON object to an instance of
|
27
|
+
# StartSpeakingPlanCustomEndpointingRulesItem
|
28
|
+
#
|
29
|
+
# @param json_object [String]
|
30
|
+
# @return [Vapi::StartSpeakingPlanCustomEndpointingRulesItem]
|
31
|
+
def self.from_json(json_object:)
|
32
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
33
|
+
member = case struct.type
|
34
|
+
when "assistant"
|
35
|
+
Vapi::AssistantCustomEndpointingRule.from_json(json_object: json_object)
|
36
|
+
when "customer"
|
37
|
+
Vapi::CustomerCustomEndpointingRule.from_json(json_object: json_object)
|
38
|
+
when "both"
|
39
|
+
Vapi::BothCustomEndpointingRule.from_json(json_object: json_object)
|
40
|
+
else
|
41
|
+
Vapi::AssistantCustomEndpointingRule.from_json(json_object: json_object)
|
42
|
+
end
|
43
|
+
new(member: member, discriminant: struct.type)
|
44
|
+
end
|
45
|
+
|
46
|
+
# For Union Types, to_json functionality is delegated to the wrapped member.
|
47
|
+
#
|
48
|
+
# @return [String]
|
49
|
+
def to_json(*_args)
|
50
|
+
case @discriminant
|
51
|
+
when "assistant"
|
52
|
+
{ **@member.to_json, type: @discriminant }.to_json
|
53
|
+
when "customer"
|
54
|
+
{ **@member.to_json, type: @discriminant }.to_json
|
55
|
+
when "both"
|
56
|
+
{ **@member.to_json, type: @discriminant }.to_json
|
57
|
+
else
|
58
|
+
{ "type": @discriminant, value: @member }.to_json
|
59
|
+
end
|
60
|
+
@member.to_json
|
61
|
+
end
|
62
|
+
|
63
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
64
|
+
# hash and check each fields type against the current object's property
|
65
|
+
# definitions.
|
66
|
+
#
|
67
|
+
# @param obj [Object]
|
68
|
+
# @return [Void]
|
69
|
+
def self.validate_raw(obj:)
|
70
|
+
case obj.type
|
71
|
+
when "assistant"
|
72
|
+
Vapi::AssistantCustomEndpointingRule.validate_raw(obj: obj)
|
73
|
+
when "customer"
|
74
|
+
Vapi::CustomerCustomEndpointingRule.validate_raw(obj: obj)
|
75
|
+
when "both"
|
76
|
+
Vapi::BothCustomEndpointingRule.validate_raw(obj: obj)
|
77
|
+
else
|
78
|
+
raise("Passed value matched no type within the union, validation failed.")
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
# For Union Types, is_a? functionality is delegated to the wrapped member.
|
83
|
+
#
|
84
|
+
# @param obj [Object]
|
85
|
+
# @return [Boolean]
|
86
|
+
def is_a?(obj)
|
87
|
+
@member.is_a?(obj)
|
88
|
+
end
|
89
|
+
|
90
|
+
# @param member [Vapi::AssistantCustomEndpointingRule]
|
91
|
+
# @return [Vapi::StartSpeakingPlanCustomEndpointingRulesItem]
|
92
|
+
def self.assistant(member:)
|
93
|
+
new(member: member, discriminant: "assistant")
|
94
|
+
end
|
95
|
+
|
96
|
+
# @param member [Vapi::CustomerCustomEndpointingRule]
|
97
|
+
# @return [Vapi::StartSpeakingPlanCustomEndpointingRulesItem]
|
98
|
+
def self.customer(member:)
|
99
|
+
new(member: member, discriminant: "customer")
|
100
|
+
end
|
101
|
+
|
102
|
+
# @param member [Vapi::BothCustomEndpointingRule]
|
103
|
+
# @return [Vapi::StartSpeakingPlanCustomEndpointingRulesItem]
|
104
|
+
def self.both(member:)
|
105
|
+
new(member: member, discriminant: "both")
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
@@ -7,11 +7,20 @@ require "json"
|
|
7
7
|
module Vapi
|
8
8
|
class StructuredDataPlan
|
9
9
|
# @return [Array<Hash{String => Object}>] These are the messages used to generate the structured data.
|
10
|
-
# @default:
|
11
|
-
#
|
12
|
-
#
|
13
|
-
#
|
14
|
-
# "content": "
|
10
|
+
# @default: ```
|
11
|
+
# [
|
12
|
+
# {
|
13
|
+
# "role": "system",
|
14
|
+
# "content": "You are an expert data extractor. You will be given a transcript
|
15
|
+
# of a call. Extract structured data per the JSON Schema. DO NOT return anything
|
16
|
+
# except the structured data.\n\nJson Schema:\\n{{schema}}\n\nOnly respond with
|
17
|
+
# the JSON."
|
18
|
+
# },
|
19
|
+
# {
|
20
|
+
# "role": "user",
|
21
|
+
# "content": "Here is the transcript:\n\n{{transcript}}\n\n"
|
22
|
+
# }
|
23
|
+
# ]```
|
15
24
|
# You can customize by providing any messages you want.
|
16
25
|
# Here are the template variables available:
|
17
26
|
# - {{transcript}}: the transcript of the call from `call.artifact.transcript`-
|
@@ -47,11 +56,20 @@ module Vapi
|
|
47
56
|
OMIT = Object.new
|
48
57
|
|
49
58
|
# @param messages [Array<Hash{String => Object}>] These are the messages used to generate the structured data.
|
50
|
-
# @default:
|
51
|
-
#
|
52
|
-
#
|
53
|
-
#
|
54
|
-
# "content": "
|
59
|
+
# @default: ```
|
60
|
+
# [
|
61
|
+
# {
|
62
|
+
# "role": "system",
|
63
|
+
# "content": "You are an expert data extractor. You will be given a transcript
|
64
|
+
# of a call. Extract structured data per the JSON Schema. DO NOT return anything
|
65
|
+
# except the structured data.\n\nJson Schema:\\n{{schema}}\n\nOnly respond with
|
66
|
+
# the JSON."
|
67
|
+
# },
|
68
|
+
# {
|
69
|
+
# "role": "user",
|
70
|
+
# "content": "Here is the transcript:\n\n{{transcript}}\n\n"
|
71
|
+
# }
|
72
|
+
# ]```
|
55
73
|
# You can customize by providing any messages you want.
|
56
74
|
# Here are the template variables available:
|
57
75
|
# - {{transcript}}: the transcript of the call from `call.artifact.transcript`-
|