venice_client 1.0.0 → 1.0.2
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/.gitignore +39 -0
- data/.gitlab-ci.yml +26 -0
- data/.openapi-generator/FILES +395 -0
- data/.openapi-generator/VERSION +1 -0
- data/.openapi-generator-ignore +23 -0
- data/.rspec +2 -0
- data/.rubocop.yml +148 -0
- data/.travis.yml +11 -0
- data/README.md +120 -390
- data/Rakefile +2 -0
- data/docs/APIKeysApi.md +236 -89
- data/docs/AssistantMessage.md +26 -0
- data/docs/AssistantMessageContent.md +15 -0
- data/docs/AudioApi.md +40 -19
- data/docs/AudioModelPricing.md +18 -0
- data/docs/AudioModelPricingInput.md +22 -0
- data/docs/BillingApi.md +50 -29
- data/docs/BillingUsageRequest.md +24 -8
- data/docs/BillingUsageResponse.md +16 -4
- data/docs/CharactersApi.md +36 -14
- data/docs/ChatApi.md +43 -22
- data/docs/ChatCompletionRequest.md +66 -28
- data/docs/ChatCompletionRequestMessagesInner.md +28 -0
- data/docs/ChatCompletionRequestResponseFormat.md +49 -0
- data/docs/ChatCompletionRequestStop.md +15 -0
- data/docs/ChatCompletionRequestStreamOptions.md +14 -3
- data/docs/ChatCompletionRequestToolChoice.md +20 -0
- data/docs/ChatCompletionRequestToolChoiceAnyOf.md +20 -0
- data/docs/ChatCompletionRequestToolChoiceAnyOfFunction.md +18 -0
- data/docs/ChatCompletionRequestVeniceParameters.md +26 -8
- data/docs/CreateApiKey200Response.md +20 -0
- data/docs/CreateApiKey200ResponseData.md +28 -0
- data/docs/CreateApiKeyRequest.md +24 -0
- data/docs/CreateApiKeyRequestExpiresAt.md +15 -0
- data/docs/CreateChatCompletion200Response.md +32 -0
- data/docs/CreateChatCompletion200ResponseChoicesInner.md +26 -0
- data/docs/CreateChatCompletion200ResponseChoicesInnerLogprobs.md +24 -0
- data/docs/CreateChatCompletion200ResponseChoicesInnerLogprobsTopLogprobsInner.md +22 -0
- data/docs/CreateChatCompletion200ResponseChoicesInnerMessage.md +28 -0
- data/docs/CreateChatCompletion200ResponseUsage.md +24 -0
- data/docs/CreateChatCompletion200ResponseVeniceParameters.md +32 -0
- data/docs/CreateChatCompletion200ResponseVeniceParametersWebSearchCitationsInner.md +24 -0
- data/docs/CreateChatCompletion400Response.md +20 -0
- data/docs/CreateChatCompletion401Response.md +18 -0
- data/docs/CreateChatCompletion402Response.md +18 -0
- data/docs/CreateChatCompletion415Response.md +18 -0
- data/docs/CreateChatCompletion429Response.md +18 -0
- data/docs/CreateChatCompletion500Response.md +18 -0
- data/docs/CreateChatCompletion503Response.md +18 -0
- data/docs/CreateChatCompletion504Response.md +18 -0
- data/docs/CreateEmbedding200Response.md +24 -0
- data/docs/CreateEmbedding200ResponseDataInner.md +22 -0
- data/docs/CreateEmbedding200ResponseUsage.md +20 -0
- data/docs/CreateEmbeddingRequestSchema.md +22 -7
- data/docs/CreateEmbeddingRequestSchemaInput.md +15 -0
- data/docs/CreateEmbeddingRequestSchemaModel.md +15 -0
- data/docs/CreateSpeech403Response.md +18 -0
- data/docs/CreateSpeechRequestSchema.md +24 -8
- data/docs/DeleteApiKey200Response.md +18 -0
- data/docs/EditImageRequest.md +20 -0
- data/docs/EmbeddingsApi.md +44 -23
- data/docs/GenerateImage200Response.md +24 -0
- data/docs/GenerateImage200ResponseTiming.md +24 -0
- data/docs/GenerateImageRequest.md +44 -18
- data/docs/GetApiKeyGenerateWeb3Key200Response.md +20 -0
- data/docs/GetApiKeyGenerateWeb3Key200ResponseData.md +18 -0
- data/docs/GetApiKeyRateLimitLogs200Response.md +20 -0
- data/docs/GetApiKeyRateLimitLogs200ResponseDataInner.md +26 -0
- data/docs/GetApiKeyRateLimits200Response.md +18 -0
- data/docs/GetApiKeyRateLimits200ResponseData.md +28 -0
- data/docs/GetApiKeyRateLimits200ResponseDataApiTier.md +20 -0
- data/docs/GetApiKeyRateLimits200ResponseDataBalances.md +22 -0
- data/docs/GetApiKeyRateLimits200ResponseDataRateLimitsInner.md +20 -0
- data/docs/GetApiKeyRateLimits200ResponseDataRateLimitsInnerRateLimitsInner.md +20 -0
- data/docs/GetApiKeys200Response.md +20 -0
- data/docs/GetApiKeys200ResponseDataInner.md +34 -0
- data/docs/GetApiKeys200ResponseDataInnerConsumptionLimits.md +22 -0
- data/docs/GetApiKeys200ResponseDataInnerUsage.md +18 -0
- data/docs/GetApiKeys200ResponseDataInnerUsageTrailingSevenDays.md +22 -0
- data/docs/GetBillingUsage200Response.md +20 -0
- data/docs/GetBillingUsage200ResponseDataInner.md +32 -0
- data/docs/GetBillingUsage200ResponseDataInnerInferenceDetails.md +24 -0
- data/docs/GetBillingUsage200ResponsePagination.md +24 -0
- data/docs/ImageApi.md +198 -102
- data/docs/ImageModelConstraints.md +22 -0
- data/docs/ImageModelConstraintsSteps.md +20 -0
- data/docs/ImageModelPricing.md +20 -0
- data/docs/ImageModelPricingGeneration.md +22 -0
- data/docs/ImageModelPricingUpscale.md +20 -0
- data/docs/ImageModelPricingUpscale2x.md +22 -0
- data/docs/ImageModelPricingUpscale4x.md +22 -0
- data/docs/ImageStylesGet200Response.md +20 -0
- data/docs/ImageStylesGet500Response.md +18 -0
- data/docs/ImageURLObject.md +18 -0
- data/docs/ImageUrl.md +20 -0
- data/docs/JsonObject.md +18 -0
- data/docs/JsonSchema.md +20 -0
- data/docs/LLMModelPricing.md +20 -0
- data/docs/LLMModelPricingInput.md +22 -0
- data/docs/LLMModelPricingOutput.md +22 -0
- data/docs/ListCharacters200Response.md +20 -0
- data/docs/ListCharacters200ResponseDataInner.md +36 -0
- data/docs/ListCharacters200ResponseDataInnerStats.md +18 -0
- data/docs/ListModelCompatibilityMapping200Response.md +22 -0
- data/docs/ListModelTraits200Response.md +22 -0
- data/docs/ListModels200Response.md +22 -0
- data/docs/ListModels200ResponseType.md +15 -0
- data/docs/ListModelsTypeParameter.md +15 -0
- data/docs/ModelResponse.md +24 -8
- data/docs/ModelResponseModelSpec.md +32 -11
- data/docs/ModelResponseModelSpecCapabilities.md +28 -10
- data/docs/ModelResponseModelSpecConstraints.md +26 -0
- data/docs/ModelResponseModelSpecPricing.md +24 -0
- data/docs/ModelsApi.md +112 -49
- data/docs/ObjectsInner.md +49 -0
- data/docs/PostApiKeyGenerateWeb3KeyRequest.md +30 -0
- data/docs/PreviewApi.md +36 -14
- data/docs/SimpleGenerateImage200Response.md +20 -0
- data/docs/SimpleGenerateImage200ResponseDataInner.md +20 -0
- data/docs/SimpleGenerateImage200ResponseDataInnerAnyOf.md +18 -0
- data/docs/SimpleGenerateImage200ResponseDataInnerAnyOf1.md +18 -0
- data/docs/SimpleGenerateImageRequest.md +36 -14
- data/docs/SpeechApi.md +40 -19
- data/docs/SystemMessage.md +22 -0
- data/docs/SystemMessageContent.md +15 -0
- data/docs/Text.md +20 -0
- data/docs/TextModelConstraints.md +20 -0
- data/docs/TextModelConstraintsTemperature.md +18 -0
- data/docs/TextModelConstraintsTopP.md +18 -0
- data/docs/ToolCall.md +18 -5
- data/docs/ToolCallFunction.md +22 -0
- data/docs/ToolMessage.md +28 -0
- data/docs/UpscaleImageRequest.md +24 -8
- data/docs/UpscaleImageRequestEnhance.md +15 -0
- data/docs/UserMessage.md +20 -0
- data/docs/UserMessageContent.md +15 -0
- data/git_push.sh +11 -9
- data/lib/venice_client/api/api_keys_api.rb +122 -65
- data/lib/venice_client/api/audio_api.rb +26 -14
- data/lib/venice_client/api/billing_api.rb +46 -23
- data/lib/venice_client/api/characters_api.rb +20 -11
- data/lib/venice_client/api/chat_api.rb +28 -16
- data/lib/venice_client/api/embeddings_api.rb +34 -22
- data/lib/venice_client/api/image_api.rb +146 -119
- data/lib/venice_client/api/models_api.rb +62 -37
- data/lib/venice_client/api/preview_api.rb +20 -11
- data/lib/venice_client/api/speech_api.rb +26 -14
- data/lib/venice_client/api_client.rb +99 -94
- data/lib/venice_client/api_error.rb +7 -5
- data/lib/venice_client/configuration.rb +129 -24
- data/lib/venice_client/models/assistant_message.rb +304 -0
- data/lib/venice_client/models/assistant_message_content.rb +104 -0
- data/lib/venice_client/models/audio_model_pricing.rb +238 -0
- data/lib/venice_client/models/audio_model_pricing_input.rb +292 -0
- data/lib/venice_client/models/billing_usage_request.rb +99 -38
- data/lib/venice_client/models/billing_usage_response.rb +68 -30
- data/lib/venice_client/models/chat_completion_request.rb +389 -61
- data/lib/venice_client/models/chat_completion_request_messages_inner.rb +106 -0
- data/lib/venice_client/models/chat_completion_request_response_format.rb +106 -0
- data/lib/venice_client/models/chat_completion_request_stop.rb +105 -0
- data/lib/venice_client/models/chat_completion_request_stream_options.rb +43 -29
- data/lib/venice_client/models/chat_completion_request_tool_choice.rb +104 -0
- data/lib/venice_client/models/chat_completion_request_tool_choice_any_of.rb +263 -0
- data/lib/venice_client/models/chat_completion_request_tool_choice_any_of_function.rb +237 -0
- data/lib/venice_client/models/chat_completion_request_venice_parameters.rb +63 -37
- data/lib/venice_client/models/{inline_response_200_8.rb → create_api_key200_response.rb} +70 -32
- data/lib/venice_client/models/{inline_response_200_8_data.rb → create_api_key200_response_data.rb} +92 -43
- data/lib/venice_client/models/{api_keys_body.rb → create_api_key_request.rb} +65 -38
- data/lib/venice_client/models/create_api_key_request_expires_at.rb +104 -0
- data/lib/venice_client/models/{inline_response_200.rb → create_chat_completion200_response.rb} +120 -42
- data/lib/venice_client/models/{inline_response_200_choices.rb → create_chat_completion200_response_choices_inner.rb} +82 -44
- data/lib/venice_client/models/{inline_response_200_logprobs.rb → create_chat_completion200_response_choices_inner_logprobs.rb} +72 -34
- data/lib/venice_client/models/{inline_response_200_logprobs_top_logprobs.rb → create_chat_completion200_response_choices_inner_logprobs_top_logprobs_inner.rb} +71 -33
- data/lib/venice_client/models/create_chat_completion200_response_choices_inner_message.rb +104 -0
- data/lib/venice_client/models/{inline_response_200_usage.rb → create_chat_completion200_response_usage.rb} +83 -33
- data/lib/venice_client/models/{inline_response_200_venice_parameters.rb → create_chat_completion200_response_venice_parameters.rb} +131 -40
- data/lib/venice_client/models/{inline_response_200_venice_parameters_web_search_citations.rb → create_chat_completion200_response_venice_parameters_web_search_citations_inner.rb} +72 -34
- data/lib/venice_client/models/{inline_response_400.rb → create_chat_completion400_response.rb} +57 -31
- data/lib/venice_client/models/{inline_response_401.rb → create_chat_completion401_response.rb} +57 -31
- data/lib/venice_client/models/{inline_response_402.rb → create_chat_completion402_response.rb} +57 -31
- data/lib/venice_client/models/create_chat_completion415_response.rb +238 -0
- data/lib/venice_client/models/create_chat_completion429_response.rb +238 -0
- data/lib/venice_client/models/create_chat_completion500_response.rb +238 -0
- data/lib/venice_client/models/create_chat_completion503_response.rb +238 -0
- data/lib/venice_client/models/create_chat_completion504_response.rb +238 -0
- data/lib/venice_client/models/{inline_response_200_14.rb → create_embedding200_response.rb} +88 -36
- data/lib/venice_client/models/{inline_response_200_14_data.rb → create_embedding200_response_data_inner.rb} +75 -35
- data/lib/venice_client/models/{inline_response_200_14_usage.rb → create_embedding200_response_usage.rb} +70 -32
- data/lib/venice_client/models/create_embedding_request_schema.rb +92 -37
- data/lib/venice_client/models/create_embedding_request_schema_input.rb +107 -0
- data/lib/venice_client/models/create_embedding_request_schema_model.rb +104 -0
- data/lib/venice_client/models/{inline_response_403.rb → create_speech403_response.rb} +57 -31
- data/lib/venice_client/models/create_speech_request_schema.rb +112 -40
- data/lib/venice_client/models/{inline_response_200_12.rb → delete_api_key200_response.rb} +58 -46
- data/lib/venice_client/models/edit_image_request.rb +260 -0
- data/lib/venice_client/models/{inline_response_200_1.rb → generate_image200_response.rb} +83 -33
- data/lib/venice_client/models/{inline_response_200_1_timing.rb → generate_image200_response_timing.rb} +96 -34
- data/lib/venice_client/models/generate_image_request.rb +289 -46
- data/lib/venice_client/models/get_api_key_generate_web3_key200_response.rb +263 -0
- data/lib/venice_client/models/{inline_response_200_12_data.rb → get_api_key_generate_web3_key200_response_data.rb} +57 -31
- data/lib/venice_client/models/{inline_response_200_13.rb → get_api_key_rate_limit_logs200_response.rb} +63 -34
- data/lib/venice_client/models/{inline_response_200_11_data.rb → get_api_key_rate_limit_logs200_response_data_inner.rb} +107 -35
- data/lib/venice_client/models/{inline_response_200_10.rb → get_api_key_rate_limits200_response.rb} +57 -31
- data/lib/venice_client/models/{inline_response_200_10_data.rb → get_api_key_rate_limits200_response_data.rb} +112 -41
- data/lib/venice_client/models/{inline_response_200_10_data_api_tier.rb → get_api_key_rate_limits200_response_data_api_tier.rb} +71 -33
- data/lib/venice_client/models/{inline_response_200_10_data_balances.rb → get_api_key_rate_limits200_response_data_balances.rb} +60 -36
- data/lib/venice_client/models/{inline_response_200_10_data_rate_limits_1.rb → get_api_key_rate_limits200_response_data_rate_limits_inner.rb} +58 -32
- data/lib/venice_client/models/{inline_response_200_10_data_rate_limits.rb → get_api_key_rate_limits200_response_data_rate_limits_inner_rate_limits_inner.rb} +70 -32
- data/lib/venice_client/models/{inline_response_200_7.rb → get_api_keys200_response.rb} +62 -34
- data/lib/venice_client/models/{inline_response_200_7_data.rb → get_api_keys200_response_data_inner.rb} +99 -56
- data/lib/venice_client/models/get_api_keys200_response_data_inner_consumption_limits.rb +287 -0
- data/lib/venice_client/models/{inline_response_200_7_usage.rb → get_api_keys200_response_data_inner_usage.rb} +57 -31
- data/lib/venice_client/models/get_api_keys200_response_data_inner_usage_trailing_seven_days.rb +292 -0
- data/lib/venice_client/models/{inline_response_200_15.rb → get_billing_usage200_response.rb} +70 -32
- data/lib/venice_client/models/{billing_usage_response_data.rb → get_billing_usage200_response_data_inner.rb} +131 -45
- data/lib/venice_client/models/{billing_usage_response_inference_details.rb → get_billing_usage200_response_data_inner_inference_details.rb} +56 -54
- data/lib/venice_client/models/{billing_usage_response_pagination.rb → get_billing_usage200_response_pagination.rb} +96 -34
- data/lib/venice_client/models/image_model_constraints.rb +292 -0
- data/lib/venice_client/models/image_model_constraints_steps.rb +265 -0
- data/lib/venice_client/models/image_model_pricing.rb +264 -0
- data/lib/venice_client/models/image_model_pricing_generation.rb +292 -0
- data/lib/venice_client/models/image_model_pricing_upscale.rb +263 -0
- data/lib/venice_client/models/image_model_pricing_upscale2x.rb +292 -0
- data/lib/venice_client/models/image_model_pricing_upscale4x.rb +292 -0
- data/lib/venice_client/models/{inline_response_200_3.rb → image_styles_get200_response.rb} +62 -34
- data/lib/venice_client/models/{inline_response_415.rb → image_styles_get500_response.rb} +57 -31
- data/lib/venice_client/models/image_url.rb +288 -0
- data/lib/venice_client/models/{inline_response_200_7_usage_trailing_seven_days.rb → image_url_object.rb} +68 -56
- data/lib/venice_client/models/json_object.rb +262 -0
- data/lib/venice_client/models/json_schema.rb +290 -0
- data/lib/venice_client/models/{inline_response_200_11.rb → list_characters200_response.rb} +62 -35
- data/lib/venice_client/models/{inline_response_200_13_data.rb → list_characters200_response_data_inner.rb} +154 -50
- data/lib/venice_client/models/{inline_response_200_13_stats.rb → list_characters200_response_data_inner_stats.rb} +57 -31
- data/lib/venice_client/models/{inline_response_200_6.rb → list_model_compatibility_mapping200_response.rb} +79 -37
- data/lib/venice_client/models/{inline_response_200_5.rb → list_model_traits200_response.rb} +79 -37
- data/lib/venice_client/models/{inline_response_200_4.rb → list_models200_response.rb} +75 -36
- data/lib/venice_client/models/list_models200_response_type.rb +104 -0
- data/lib/venice_client/models/list_models_type_parameter.rb +104 -0
- data/lib/venice_client/models/llm_model_pricing.rb +264 -0
- data/lib/venice_client/models/llm_model_pricing_input.rb +292 -0
- data/lib/venice_client/models/llm_model_pricing_output.rb +292 -0
- data/lib/venice_client/models/model_response.rb +84 -40
- data/lib/venice_client/models/model_response_model_spec.rb +62 -40
- data/lib/venice_client/models/model_response_model_spec_capabilities.rb +138 -38
- data/lib/venice_client/models/model_response_model_spec_constraints.rb +105 -0
- data/lib/venice_client/models/model_response_model_spec_pricing.rb +106 -0
- data/lib/venice_client/models/objects_inner.rb +105 -0
- data/lib/venice_client/models/{api_keys_generate_web3_key_body.rb → post_api_key_generate_web3_key_request.rb} +91 -40
- data/lib/venice_client/models/{inline_response_200_2.rb → simple_generate_image200_response.rb} +73 -35
- data/lib/venice_client/models/simple_generate_image200_response_data_inner.rb +104 -0
- data/lib/venice_client/models/simple_generate_image200_response_data_inner_any_of.rb +238 -0
- data/lib/venice_client/models/{api_keys_consumption_limit.rb → simple_generate_image200_response_data_inner_any_of1.rb} +67 -57
- data/lib/venice_client/models/simple_generate_image_request.rb +146 -54
- data/lib/venice_client/models/system_message.rb +297 -0
- data/lib/venice_client/models/system_message_content.rb +104 -0
- data/lib/venice_client/models/text.rb +298 -0
- data/lib/venice_client/models/text_model_constraints.rb +264 -0
- data/lib/venice_client/models/text_model_constraints_temperature.rb +238 -0
- data/lib/venice_client/models/text_model_constraints_top_p.rb +238 -0
- data/lib/venice_client/models/tool_call.rb +57 -31
- data/lib/venice_client/models/{chat_completion_request_function.rb → tool_call_function.rb} +59 -33
- data/lib/venice_client/models/tool_message.rb +344 -0
- data/lib/venice_client/models/upscale_image_request.rb +146 -40
- data/lib/venice_client/models/upscale_image_request_enhance.rb +105 -0
- data/lib/venice_client/models/user_message.rb +288 -0
- data/lib/venice_client/models/user_message_content.rb +104 -0
- data/lib/venice_client/version.rb +5 -4
- data/lib/venice_client.rb +134 -108
- data/openapitools.json +7 -0
- data/spec/api/api_keys_api_spec.rb +43 -41
- data/spec/api/audio_api_spec.rb +18 -16
- data/spec/api/billing_api_spec.rb +23 -21
- data/spec/api/characters_api_spec.rb +17 -15
- data/spec/api/chat_api_spec.rb +19 -17
- data/spec/api/embeddings_api_spec.rb +19 -17
- data/spec/api/image_api_spec.rb +43 -46
- data/spec/api/models_api_spec.rb +28 -26
- data/spec/api/preview_api_spec.rb +17 -15
- data/spec/api/speech_api_spec.rb +18 -16
- data/spec/models/assistant_message_content_spec.rb +21 -0
- data/spec/models/assistant_message_spec.rb +64 -0
- data/spec/models/audio_model_pricing_input_spec.rb +48 -0
- data/spec/models/audio_model_pricing_spec.rb +36 -0
- data/spec/models/billing_usage_request_spec.rb +19 -23
- data/spec/models/billing_usage_response_spec.rb +12 -16
- data/spec/models/chat_completion_request_messages_inner_spec.rb +21 -0
- data/spec/models/chat_completion_request_response_format_spec.rb +32 -0
- data/spec/models/chat_completion_request_spec.rb +74 -71
- data/spec/models/chat_completion_request_stop_spec.rb +21 -0
- data/spec/models/chat_completion_request_stream_options_spec.rb +11 -15
- data/spec/models/chat_completion_request_tool_choice_any_of_function_spec.rb +36 -0
- data/spec/models/chat_completion_request_tool_choice_any_of_spec.rb +42 -0
- data/spec/models/chat_completion_request_tool_choice_spec.rb +21 -0
- data/spec/models/chat_completion_request_venice_parameters_spec.rb +35 -32
- data/spec/models/create_api_key200_response_data_spec.rb +70 -0
- data/spec/models/create_api_key200_response_spec.rb +42 -0
- data/spec/models/create_api_key_request_expires_at_spec.rb +21 -0
- data/spec/models/create_api_key_request_spec.rb +58 -0
- data/spec/models/create_chat_completion200_response_choices_inner_logprobs_spec.rb +54 -0
- data/spec/models/create_chat_completion200_response_choices_inner_logprobs_top_logprobs_inner_spec.rb +48 -0
- data/spec/models/create_chat_completion200_response_choices_inner_message_spec.rb +21 -0
- data/spec/models/create_chat_completion200_response_choices_inner_spec.rb +68 -0
- data/spec/models/create_chat_completion200_response_spec.rb +82 -0
- data/spec/models/create_chat_completion200_response_usage_spec.rb +54 -0
- data/spec/models/create_chat_completion200_response_venice_parameters_spec.rb +82 -0
- data/spec/models/create_chat_completion200_response_venice_parameters_web_search_citations_inner_spec.rb +54 -0
- data/spec/models/create_chat_completion400_response_spec.rb +42 -0
- data/spec/models/create_chat_completion401_response_spec.rb +36 -0
- data/spec/models/create_chat_completion402_response_spec.rb +36 -0
- data/spec/models/create_chat_completion415_response_spec.rb +36 -0
- data/spec/models/create_chat_completion429_response_spec.rb +36 -0
- data/spec/models/create_chat_completion500_response_spec.rb +36 -0
- data/spec/models/create_chat_completion503_response_spec.rb +36 -0
- data/spec/models/create_chat_completion504_response_spec.rb +36 -0
- data/spec/models/create_embedding200_response_data_inner_spec.rb +52 -0
- data/spec/models/create_embedding200_response_spec.rb +58 -0
- data/spec/models/create_embedding200_response_usage_spec.rb +42 -0
- data/spec/models/create_embedding_request_schema_input_spec.rb +21 -0
- data/spec/models/create_embedding_request_schema_model_spec.rb +21 -0
- data/spec/models/create_embedding_request_schema_spec.rb +16 -20
- data/spec/models/create_speech403_response_spec.rb +36 -0
- data/spec/models/create_speech_request_schema_spec.rb +31 -34
- data/spec/models/delete_api_key200_response_spec.rb +36 -0
- data/spec/models/edit_image_request_spec.rb +42 -0
- data/spec/models/generate_image200_response_spec.rb +54 -0
- data/spec/models/generate_image200_response_timing_spec.rb +54 -0
- data/spec/models/generate_image_request_spec.rb +27 -31
- data/spec/models/get_api_key_generate_web3_key200_response_data_spec.rb +36 -0
- data/spec/models/get_api_key_generate_web3_key200_response_spec.rb +42 -0
- data/spec/models/get_api_key_rate_limit_logs200_response_data_inner_spec.rb +60 -0
- data/spec/models/get_api_key_rate_limit_logs200_response_spec.rb +46 -0
- data/spec/models/get_api_key_rate_limits200_response_data_api_tier_spec.rb +42 -0
- data/spec/models/get_api_key_rate_limits200_response_data_balances_spec.rb +48 -0
- data/spec/models/get_api_key_rate_limits200_response_data_rate_limits_inner_rate_limits_inner_spec.rb +42 -0
- data/spec/models/get_api_key_rate_limits200_response_data_rate_limits_inner_spec.rb +42 -0
- data/spec/models/get_api_key_rate_limits200_response_data_spec.rb +66 -0
- data/spec/models/get_api_key_rate_limits200_response_spec.rb +36 -0
- data/spec/models/get_api_keys200_response_data_inner_consumption_limits_spec.rb +48 -0
- data/spec/models/get_api_keys200_response_data_inner_spec.rb +88 -0
- data/spec/models/get_api_keys200_response_data_inner_usage_spec.rb +36 -0
- data/spec/models/get_api_keys200_response_data_inner_usage_trailing_seven_days_spec.rb +48 -0
- data/spec/models/get_api_keys200_response_spec.rb +46 -0
- data/spec/models/get_billing_usage200_response_data_inner_inference_details_spec.rb +54 -0
- data/spec/models/get_billing_usage200_response_data_inner_spec.rb +82 -0
- data/spec/models/get_billing_usage200_response_pagination_spec.rb +54 -0
- data/spec/models/get_billing_usage200_response_spec.rb +42 -0
- data/spec/models/image_model_constraints_spec.rb +48 -0
- data/spec/models/image_model_constraints_steps_spec.rb +42 -0
- data/spec/models/image_model_pricing_generation_spec.rb +48 -0
- data/spec/models/image_model_pricing_spec.rb +42 -0
- data/spec/models/image_model_pricing_upscale2x_spec.rb +48 -0
- data/spec/models/image_model_pricing_upscale4x_spec.rb +48 -0
- data/spec/models/image_model_pricing_upscale_spec.rb +42 -0
- data/spec/models/image_styles_get200_response_spec.rb +46 -0
- data/spec/models/image_styles_get500_response_spec.rb +36 -0
- data/spec/models/image_url_object_spec.rb +36 -0
- data/spec/models/image_url_spec.rb +46 -0
- data/spec/models/json_object_spec.rb +40 -0
- data/spec/models/json_schema_spec.rb +46 -0
- data/spec/models/list_characters200_response_data_inner_spec.rb +90 -0
- data/spec/models/list_characters200_response_data_inner_stats_spec.rb +36 -0
- data/spec/models/list_characters200_response_spec.rb +46 -0
- data/spec/models/list_model_compatibility_mapping200_response_spec.rb +52 -0
- data/spec/models/list_model_traits200_response_spec.rb +52 -0
- data/spec/models/list_models200_response_spec.rb +52 -0
- data/spec/models/list_models200_response_type_spec.rb +21 -0
- data/spec/models/list_models_type_parameter_spec.rb +21 -0
- data/spec/models/llm_model_pricing_input_spec.rb +48 -0
- data/spec/models/llm_model_pricing_output_spec.rb +48 -0
- data/spec/models/llm_model_pricing_spec.rb +42 -0
- data/spec/models/model_response_model_spec_capabilities_spec.rb +33 -36
- data/spec/models/model_response_model_spec_constraints_spec.rb +21 -0
- data/spec/models/model_response_model_spec_pricing_spec.rb +21 -0
- data/spec/models/model_response_model_spec_spec.rb +40 -37
- data/spec/models/model_response_spec.rb +32 -35
- data/spec/models/objects_inner_spec.rb +32 -0
- data/spec/models/post_api_key_generate_web3_key_request_spec.rb +76 -0
- data/spec/models/simple_generate_image200_response_data_inner_any_of1_spec.rb +36 -0
- data/spec/models/simple_generate_image200_response_data_inner_any_of_spec.rb +36 -0
- data/spec/models/simple_generate_image200_response_data_inner_spec.rb +21 -0
- data/spec/models/simple_generate_image200_response_spec.rb +42 -0
- data/spec/models/simple_generate_image_request_spec.rb +29 -33
- data/spec/models/system_message_content_spec.rb +21 -0
- data/spec/models/system_message_spec.rb +52 -0
- data/spec/models/text_model_constraints_spec.rb +42 -0
- data/spec/models/text_model_constraints_temperature_spec.rb +36 -0
- data/spec/models/text_model_constraints_top_p_spec.rb +36 -0
- data/spec/models/text_spec.rb +46 -0
- data/spec/models/tool_call_function_spec.rb +48 -0
- data/spec/models/tool_call_spec.rb +22 -25
- data/spec/models/tool_message_spec.rb +70 -0
- data/spec/models/upscale_image_request_enhance_spec.rb +21 -0
- data/spec/models/upscale_image_request_spec.rb +28 -31
- data/spec/models/user_message_content_spec.rb +21 -0
- data/spec/models/user_message_spec.rb +46 -0
- data/spec/spec_helper.rb +7 -6
- data/swagger.yaml +4791 -0
- data/update.sh +9 -0
- metadata +440 -356
- data/docs/AnyOfChatCompletionRequestMessagesItems.md +0 -6
- data/docs/AnyOfChatCompletionRequestStop.md +0 -6
- data/docs/AnyOfChatCompletionRequestToolChoice.md +0 -6
- data/docs/AnyOfCreateEmbeddingRequestSchemaInput.md +0 -6
- data/docs/AnyOfCreateEmbeddingRequestSchemaModel.md +0 -6
- data/docs/AnyOfModelResponseModelSpecConstraints.md +0 -6
- data/docs/AnyOfModelResponseModelSpecPricing.md +0 -6
- data/docs/AnyOfUpscaleImageRequestEnhance.md +0 -6
- data/docs/AnyOfUpscaleImageRequestImage.md +0 -6
- data/docs/AnyOfapiKeysBodyExpiresAt.md +0 -6
- data/docs/AnyOfapiKeysConsumptionLimitUsd.md +0 -6
- data/docs/AnyOfapiKeysConsumptionLimitVcu.md +0 -6
- data/docs/AnyOfapiKeysGenerateWeb3KeyBodyExpiresAt.md +0 -6
- data/docs/AnyOfinlineResponse2002DataItems.md +0 -6
- data/docs/AnyOfinlineResponse2004Type.md +0 -6
- data/docs/AnyOfinlineResponse2005Type.md +0 -6
- data/docs/AnyOfinlineResponse2006Type.md +0 -6
- data/docs/AnyOfinlineResponse200ChoicesMessage.md +0 -6
- data/docs/AnyOfinlineResponse200PromptLogprobs.md +0 -6
- data/docs/ApiKeysBody.md +0 -10
- data/docs/ApiKeysConsumptionLimit.md +0 -8
- data/docs/ApiKeysGenerateWeb3KeyBody.md +0 -13
- data/docs/BillingUsageResponseData.md +0 -14
- data/docs/BillingUsageResponseInferenceDetails.md +0 -10
- data/docs/BillingUsageResponsePagination.md +0 -10
- data/docs/ChatCompletionRequestFunction.md +0 -9
- data/docs/InlineResponse200.md +0 -14
- data/docs/InlineResponse2001.md +0 -10
- data/docs/InlineResponse20010.md +0 -7
- data/docs/InlineResponse20010Data.md +0 -12
- data/docs/InlineResponse20010DataApiTier.md +0 -8
- data/docs/InlineResponse20010DataBalances.md +0 -8
- data/docs/InlineResponse20010DataRateLimits.md +0 -8
- data/docs/InlineResponse20010DataRateLimits1.md +0 -8
- data/docs/InlineResponse20011.md +0 -8
- data/docs/InlineResponse20011Data.md +0 -11
- data/docs/InlineResponse20012.md +0 -8
- data/docs/InlineResponse20012Data.md +0 -7
- data/docs/InlineResponse20013.md +0 -8
- data/docs/InlineResponse20013Data.md +0 -16
- data/docs/InlineResponse20013Stats.md +0 -7
- data/docs/InlineResponse20014.md +0 -10
- data/docs/InlineResponse20014Data.md +0 -9
- data/docs/InlineResponse20014Usage.md +0 -8
- data/docs/InlineResponse20015.md +0 -8
- data/docs/InlineResponse2001Timing.md +0 -10
- data/docs/InlineResponse2002.md +0 -8
- data/docs/InlineResponse2003.md +0 -8
- data/docs/InlineResponse2004.md +0 -9
- data/docs/InlineResponse2005.md +0 -9
- data/docs/InlineResponse2006.md +0 -9
- data/docs/InlineResponse2007.md +0 -8
- data/docs/InlineResponse2007Data.md +0 -15
- data/docs/InlineResponse2007Usage.md +0 -7
- data/docs/InlineResponse2007UsageTrailingSevenDays.md +0 -8
- data/docs/InlineResponse2008.md +0 -8
- data/docs/InlineResponse2008Data.md +0 -12
- data/docs/InlineResponse2009.md +0 -7
- data/docs/InlineResponse200Choices.md +0 -11
- data/docs/InlineResponse200Logprobs.md +0 -10
- data/docs/InlineResponse200LogprobsTopLogprobs.md +0 -9
- data/docs/InlineResponse200Usage.md +0 -10
- data/docs/InlineResponse200VeniceParameters.md +0 -13
- data/docs/InlineResponse200VeniceParametersWebSearchCitations.md +0 -10
- data/docs/InlineResponse400.md +0 -8
- data/docs/InlineResponse401.md +0 -7
- data/docs/InlineResponse402.md +0 -7
- data/docs/InlineResponse403.md +0 -7
- data/docs/InlineResponse415.md +0 -7
- data/docs/InlineResponse429.md +0 -7
- data/docs/InlineResponse500.md +0 -7
- data/docs/InlineResponse5001.md +0 -7
- data/docs/InlineResponse503.md +0 -7
- data/docs/ModelCompatibilitySchema.md +0 -6
- data/docs/ModelTraitSchema.md +0 -6
- data/docs/OneOfChatCompletionRequestResponseFormat.md +0 -6
- data/docs/Type.md +0 -6
- data/lib/venice_client/models/any_of_chat_completion_request_messages_items.rb +0 -197
- data/lib/venice_client/models/any_of_chat_completion_request_stop.rb +0 -197
- data/lib/venice_client/models/any_of_chat_completion_request_tool_choice.rb +0 -197
- data/lib/venice_client/models/any_of_create_embedding_request_schema_input.rb +0 -197
- data/lib/venice_client/models/any_of_create_embedding_request_schema_model.rb +0 -197
- data/lib/venice_client/models/any_of_model_response_model_spec_constraints.rb +0 -197
- data/lib/venice_client/models/any_of_model_response_model_spec_pricing.rb +0 -197
- data/lib/venice_client/models/any_of_upscale_image_request_enhance.rb +0 -197
- data/lib/venice_client/models/any_of_upscale_image_request_image.rb +0 -197
- data/lib/venice_client/models/any_ofapi_keys_body_expires_at.rb +0 -197
- data/lib/venice_client/models/any_ofapi_keys_consumption_limit_usd.rb +0 -197
- data/lib/venice_client/models/any_ofapi_keys_consumption_limit_vcu.rb +0 -195
- data/lib/venice_client/models/any_ofapi_keys_generate_web3_key_body_expires_at.rb +0 -197
- data/lib/venice_client/models/any_ofinline_response_200_2_data_items.rb +0 -197
- data/lib/venice_client/models/any_ofinline_response_200_4_type.rb +0 -197
- data/lib/venice_client/models/any_ofinline_response_200_5_type.rb +0 -197
- data/lib/venice_client/models/any_ofinline_response_200_6_type.rb +0 -197
- data/lib/venice_client/models/any_ofinline_response_200_choices_message.rb +0 -197
- data/lib/venice_client/models/any_ofinline_response_200_prompt_logprobs.rb +0 -197
- data/lib/venice_client/models/inline_response_200_9.rb +0 -211
- data/lib/venice_client/models/inline_response_429.rb +0 -212
- data/lib/venice_client/models/inline_response_500.rb +0 -212
- data/lib/venice_client/models/inline_response_500_1.rb +0 -212
- data/lib/venice_client/models/inline_response_503.rb +0 -212
- data/lib/venice_client/models/model_compatibility_schema.rb +0 -202
- data/lib/venice_client/models/model_trait_schema.rb +0 -200
- data/lib/venice_client/models/one_of_chat_completion_request_response_format.rb +0 -197
- data/lib/venice_client/models/type.rb +0 -198
- data/spec/api_client_spec.rb +0 -225
- data/spec/base_object_spec.rb +0 -109
- data/spec/configuration_spec.rb +0 -41
- data/spec/models/any_of_chat_completion_request_messages_items_spec.rb +0 -34
- data/spec/models/any_of_chat_completion_request_stop_spec.rb +0 -34
- data/spec/models/any_of_chat_completion_request_tool_choice_spec.rb +0 -34
- data/spec/models/any_of_create_embedding_request_schema_input_spec.rb +0 -34
- data/spec/models/any_of_create_embedding_request_schema_model_spec.rb +0 -34
- data/spec/models/any_of_model_response_model_spec_constraints_spec.rb +0 -34
- data/spec/models/any_of_model_response_model_spec_pricing_spec.rb +0 -34
- data/spec/models/any_of_upscale_image_request_enhance_spec.rb +0 -34
- data/spec/models/any_of_upscale_image_request_image_spec.rb +0 -34
- data/spec/models/any_ofapi_keys_body_expires_at_spec.rb +0 -34
- data/spec/models/any_ofapi_keys_consumption_limit_usd_spec.rb +0 -34
- data/spec/models/any_ofapi_keys_consumption_limit_vcu_spec.rb +0 -34
- data/spec/models/any_ofapi_keys_generate_web3_key_body_expires_at_spec.rb +0 -34
- data/spec/models/any_ofinline_response_200_2_data_items_spec.rb +0 -34
- data/spec/models/any_ofinline_response_200_4_type_spec.rb +0 -34
- data/spec/models/any_ofinline_response_200_5_type_spec.rb +0 -34
- data/spec/models/any_ofinline_response_200_6_type_spec.rb +0 -34
- data/spec/models/any_ofinline_response_200_choices_message_spec.rb +0 -34
- data/spec/models/any_ofinline_response_200_prompt_logprobs_spec.rb +0 -34
- data/spec/models/api_keys_body_spec.rb +0 -61
- data/spec/models/api_keys_consumption_limit_spec.rb +0 -46
- data/spec/models/api_keys_generate_web3_key_body_spec.rb +0 -80
- data/spec/models/billing_usage_response_data_spec.rb +0 -86
- data/spec/models/billing_usage_response_inference_details_spec.rb +0 -57
- data/spec/models/billing_usage_response_pagination_spec.rb +0 -58
- data/spec/models/chat_completion_request_function_spec.rb +0 -52
- data/spec/models/inline_response_200_10_data_api_tier_spec.rb +0 -45
- data/spec/models/inline_response_200_10_data_balances_spec.rb +0 -45
- data/spec/models/inline_response_200_10_data_rate_limits_1_spec.rb +0 -45
- data/spec/models/inline_response_200_10_data_rate_limits_spec.rb +0 -46
- data/spec/models/inline_response_200_10_data_spec.rb +0 -69
- data/spec/models/inline_response_200_10_spec.rb +0 -40
- data/spec/models/inline_response_200_11_data_spec.rb +0 -64
- data/spec/models/inline_response_200_11_spec.rb +0 -50
- data/spec/models/inline_response_200_12_data_spec.rb +0 -39
- data/spec/models/inline_response_200_12_spec.rb +0 -46
- data/spec/models/inline_response_200_13_data_spec.rb +0 -93
- data/spec/models/inline_response_200_13_spec.rb +0 -49
- data/spec/models/inline_response_200_13_stats_spec.rb +0 -40
- data/spec/models/inline_response_200_14_data_spec.rb +0 -55
- data/spec/models/inline_response_200_14_spec.rb +0 -61
- data/spec/models/inline_response_200_14_usage_spec.rb +0 -45
- data/spec/models/inline_response_200_15_spec.rb +0 -45
- data/spec/models/inline_response_200_1_spec.rb +0 -57
- data/spec/models/inline_response_200_1_timing_spec.rb +0 -58
- data/spec/models/inline_response_200_2_spec.rb +0 -46
- data/spec/models/inline_response_200_3_spec.rb +0 -50
- data/spec/models/inline_response_200_4_spec.rb +0 -55
- data/spec/models/inline_response_200_5_spec.rb +0 -55
- data/spec/models/inline_response_200_6_spec.rb +0 -55
- data/spec/models/inline_response_200_7_data_spec.rb +0 -91
- data/spec/models/inline_response_200_7_spec.rb +0 -50
- data/spec/models/inline_response_200_7_usage_spec.rb +0 -39
- data/spec/models/inline_response_200_7_usage_trailing_seven_days_spec.rb +0 -45
- data/spec/models/inline_response_200_8_data_spec.rb +0 -73
- data/spec/models/inline_response_200_8_spec.rb +0 -45
- data/spec/models/inline_response_200_9_spec.rb +0 -39
- data/spec/models/inline_response_200_choices_spec.rb +0 -72
- data/spec/models/inline_response_200_logprobs_spec.rb +0 -57
- data/spec/models/inline_response_200_logprobs_top_logprobs_spec.rb +0 -51
- data/spec/models/inline_response_200_spec.rb +0 -85
- data/spec/models/inline_response_200_usage_spec.rb +0 -57
- data/spec/models/inline_response_200_venice_parameters_spec.rb +0 -80
- data/spec/models/inline_response_200_venice_parameters_web_search_citations_spec.rb +0 -57
- data/spec/models/inline_response_400_spec.rb +0 -45
- data/spec/models/inline_response_401_spec.rb +0 -39
- data/spec/models/inline_response_402_spec.rb +0 -39
- data/spec/models/inline_response_403_spec.rb +0 -40
- data/spec/models/inline_response_415_spec.rb +0 -40
- data/spec/models/inline_response_429_spec.rb +0 -39
- data/spec/models/inline_response_500_1_spec.rb +0 -40
- data/spec/models/inline_response_500_spec.rb +0 -39
- data/spec/models/inline_response_503_spec.rb +0 -40
- data/spec/models/model_compatibility_schema_spec.rb +0 -34
- data/spec/models/model_trait_schema_spec.rb +0 -34
- data/spec/models/one_of_chat_completion_request_response_format_spec.rb +0 -34
- data/spec/models/type_spec.rb +0 -34
- data/venice_client.gemspec +0 -38
|
@@ -3,12 +3,15 @@
|
|
|
3
3
|
|
|
4
4
|
#The Venice.ai API.
|
|
5
5
|
|
|
6
|
-
OpenAPI
|
|
6
|
+
The version of the OpenAPI document: 20250709.013306
|
|
7
|
+
|
|
8
|
+
Generated by: https://openapi-generator.tech
|
|
9
|
+
Generator version: 7.14.0
|
|
7
10
|
|
|
8
|
-
Generated by: https://github.com/swagger-api/swagger-codegen.git
|
|
9
|
-
Swagger Codegen version: 3.0.68
|
|
10
11
|
=end
|
|
11
12
|
|
|
13
|
+
require 'cgi'
|
|
14
|
+
|
|
12
15
|
module VeniceClient
|
|
13
16
|
class PreviewApi
|
|
14
17
|
attr_accessor :api_client
|
|
@@ -19,7 +22,7 @@ module VeniceClient
|
|
|
19
22
|
# /api/v1/characters
|
|
20
23
|
# This is a preview API and may change. Returns a list of characters supported in the API.
|
|
21
24
|
# @param [Hash] opts the optional parameters
|
|
22
|
-
# @return [
|
|
25
|
+
# @return [ListCharacters200Response]
|
|
23
26
|
def list_characters(opts = {})
|
|
24
27
|
data, _status_code, _headers = list_characters_with_http_info(opts)
|
|
25
28
|
data
|
|
@@ -28,7 +31,7 @@ module VeniceClient
|
|
|
28
31
|
# /api/v1/characters
|
|
29
32
|
# This is a preview API and may change. Returns a list of characters supported in the API.
|
|
30
33
|
# @param [Hash] opts the optional parameters
|
|
31
|
-
# @return [Array<(
|
|
34
|
+
# @return [Array<(ListCharacters200Response, Integer, Hash)>] ListCharacters200Response data, response status code and response headers
|
|
32
35
|
def list_characters_with_http_info(opts = {})
|
|
33
36
|
if @api_client.config.debugging
|
|
34
37
|
@api_client.config.logger.debug 'Calling API: PreviewApi.list_characters ...'
|
|
@@ -42,25 +45,31 @@ module VeniceClient
|
|
|
42
45
|
# header parameters
|
|
43
46
|
header_params = opts[:header_params] || {}
|
|
44
47
|
# HTTP header 'Accept' (if needed)
|
|
45
|
-
header_params['Accept'] = @api_client.select_header_accept(['application/json'])
|
|
48
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
46
49
|
|
|
47
50
|
# form parameters
|
|
48
51
|
form_params = opts[:form_params] || {}
|
|
49
52
|
|
|
50
53
|
# http body (model)
|
|
51
|
-
post_body = opts[:
|
|
54
|
+
post_body = opts[:debug_body]
|
|
55
|
+
|
|
56
|
+
# return_type
|
|
57
|
+
return_type = opts[:debug_return_type] || 'ListCharacters200Response'
|
|
52
58
|
|
|
53
|
-
|
|
59
|
+
# auth_names
|
|
60
|
+
auth_names = opts[:debug_auth_names] || ['BearerAuth']
|
|
54
61
|
|
|
55
|
-
|
|
56
|
-
|
|
62
|
+
new_options = opts.merge(
|
|
63
|
+
:operation => :"PreviewApi.list_characters",
|
|
57
64
|
:header_params => header_params,
|
|
58
65
|
:query_params => query_params,
|
|
59
66
|
:form_params => form_params,
|
|
60
67
|
:body => post_body,
|
|
61
68
|
:auth_names => auth_names,
|
|
62
|
-
:return_type => return_type
|
|
69
|
+
:return_type => return_type
|
|
70
|
+
)
|
|
63
71
|
|
|
72
|
+
data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
|
|
64
73
|
if @api_client.config.debugging
|
|
65
74
|
@api_client.config.logger.debug "API called: PreviewApi#list_characters\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
66
75
|
end
|
|
@@ -3,12 +3,15 @@
|
|
|
3
3
|
|
|
4
4
|
#The Venice.ai API.
|
|
5
5
|
|
|
6
|
-
OpenAPI
|
|
6
|
+
The version of the OpenAPI document: 20250709.013306
|
|
7
|
+
|
|
8
|
+
Generated by: https://openapi-generator.tech
|
|
9
|
+
Generator version: 7.14.0
|
|
7
10
|
|
|
8
|
-
Generated by: https://github.com/swagger-api/swagger-codegen.git
|
|
9
|
-
Swagger Codegen version: 3.0.68
|
|
10
11
|
=end
|
|
11
12
|
|
|
13
|
+
require 'cgi'
|
|
14
|
+
|
|
12
15
|
module VeniceClient
|
|
13
16
|
class SpeechApi
|
|
14
17
|
attr_accessor :api_client
|
|
@@ -19,8 +22,8 @@ module VeniceClient
|
|
|
19
22
|
# /api/v1/audio/speech
|
|
20
23
|
# Converts text to speech using various voice models and formats.
|
|
21
24
|
# @param [Hash] opts the optional parameters
|
|
22
|
-
# @option opts [CreateSpeechRequestSchema] :
|
|
23
|
-
# @return [
|
|
25
|
+
# @option opts [CreateSpeechRequestSchema] :create_speech_request_schema
|
|
26
|
+
# @return [File]
|
|
24
27
|
def create_speech(opts = {})
|
|
25
28
|
data, _status_code, _headers = create_speech_with_http_info(opts)
|
|
26
29
|
data
|
|
@@ -29,8 +32,8 @@ module VeniceClient
|
|
|
29
32
|
# /api/v1/audio/speech
|
|
30
33
|
# Converts text to speech using various voice models and formats.
|
|
31
34
|
# @param [Hash] opts the optional parameters
|
|
32
|
-
# @option opts [CreateSpeechRequestSchema] :
|
|
33
|
-
# @return [Array<(
|
|
35
|
+
# @option opts [CreateSpeechRequestSchema] :create_speech_request_schema
|
|
36
|
+
# @return [Array<(File, Integer, Hash)>] File data, response status code and response headers
|
|
34
37
|
def create_speech_with_http_info(opts = {})
|
|
35
38
|
if @api_client.config.debugging
|
|
36
39
|
@api_client.config.logger.debug 'Calling API: SpeechApi.create_speech ...'
|
|
@@ -44,27 +47,36 @@ module VeniceClient
|
|
|
44
47
|
# header parameters
|
|
45
48
|
header_params = opts[:header_params] || {}
|
|
46
49
|
# HTTP header 'Accept' (if needed)
|
|
47
|
-
header_params['Accept'] = @api_client.select_header_accept(['audio/aac', 'audio/flac', 'audio/mpeg', 'audio/opus', 'audio/pcm', 'audio/wav', 'application/json'])
|
|
50
|
+
header_params['Accept'] = @api_client.select_header_accept(['audio/aac', 'audio/flac', 'audio/mpeg', 'audio/opus', 'audio/pcm', 'audio/wav', 'application/json']) unless header_params['Accept']
|
|
48
51
|
# HTTP header 'Content-Type'
|
|
49
|
-
|
|
52
|
+
content_type = @api_client.select_header_content_type(['application/json'])
|
|
53
|
+
if !content_type.nil?
|
|
54
|
+
header_params['Content-Type'] = content_type
|
|
55
|
+
end
|
|
50
56
|
|
|
51
57
|
# form parameters
|
|
52
58
|
form_params = opts[:form_params] || {}
|
|
53
59
|
|
|
54
60
|
# http body (model)
|
|
55
|
-
post_body = opts[:
|
|
61
|
+
post_body = opts[:debug_body] || @api_client.object_to_http_body(opts[:'create_speech_request_schema'])
|
|
62
|
+
|
|
63
|
+
# return_type
|
|
64
|
+
return_type = opts[:debug_return_type] || 'File'
|
|
56
65
|
|
|
57
|
-
|
|
66
|
+
# auth_names
|
|
67
|
+
auth_names = opts[:debug_auth_names] || ['BearerAuth']
|
|
58
68
|
|
|
59
|
-
|
|
60
|
-
|
|
69
|
+
new_options = opts.merge(
|
|
70
|
+
:operation => :"SpeechApi.create_speech",
|
|
61
71
|
:header_params => header_params,
|
|
62
72
|
:query_params => query_params,
|
|
63
73
|
:form_params => form_params,
|
|
64
74
|
:body => post_body,
|
|
65
75
|
:auth_names => auth_names,
|
|
66
|
-
:return_type => return_type
|
|
76
|
+
:return_type => return_type
|
|
77
|
+
)
|
|
67
78
|
|
|
79
|
+
data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
|
|
68
80
|
if @api_client.config.debugging
|
|
69
81
|
@api_client.config.logger.debug "API called: SpeechApi#create_speech\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
70
82
|
end
|
|
@@ -3,18 +3,20 @@
|
|
|
3
3
|
|
|
4
4
|
#The Venice.ai API.
|
|
5
5
|
|
|
6
|
-
OpenAPI
|
|
6
|
+
The version of the OpenAPI document: 20250709.013306
|
|
7
|
+
|
|
8
|
+
Generated by: https://openapi-generator.tech
|
|
9
|
+
Generator version: 7.14.0
|
|
7
10
|
|
|
8
|
-
Generated by: https://github.com/swagger-api/swagger-codegen.git
|
|
9
|
-
Swagger Codegen version: 3.0.68
|
|
10
11
|
=end
|
|
11
12
|
|
|
12
|
-
require
|
|
13
|
-
require
|
|
14
|
-
require
|
|
15
|
-
require
|
|
16
|
-
require
|
|
17
|
-
require
|
|
13
|
+
require 'date'
|
|
14
|
+
require 'json'
|
|
15
|
+
require 'logger'
|
|
16
|
+
require 'tempfile'
|
|
17
|
+
require 'time'
|
|
18
|
+
require 'typhoeus'
|
|
19
|
+
|
|
18
20
|
|
|
19
21
|
module VeniceClient
|
|
20
22
|
class ApiClient
|
|
@@ -30,10 +32,10 @@ module VeniceClient
|
|
|
30
32
|
# @option config [Configuration] Configuration for initializing the object, default to Configuration.default
|
|
31
33
|
def initialize(config = Configuration.default)
|
|
32
34
|
@config = config
|
|
33
|
-
@user_agent = "
|
|
35
|
+
@user_agent = "OpenAPI-Generator/#{VERSION}/ruby"
|
|
34
36
|
@default_headers = {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
+
'Content-Type' => 'application/json',
|
|
38
|
+
'User-Agent' => @user_agent
|
|
37
39
|
}
|
|
38
40
|
end
|
|
39
41
|
|
|
@@ -44,9 +46,11 @@ module VeniceClient
|
|
|
44
46
|
# Call an API with given options.
|
|
45
47
|
#
|
|
46
48
|
# @return [Array<(Object, Integer, Hash)>] an array of 3 elements:
|
|
47
|
-
# the data deserialized from response body (
|
|
49
|
+
# the data deserialized from response body (may be a Tempfile or nil), response status code and response headers.
|
|
48
50
|
def call_api(http_method, path, opts = {})
|
|
49
51
|
request = build_request(http_method, path, opts)
|
|
52
|
+
tempfile = nil
|
|
53
|
+
(download_file(request) { tempfile = _1 }) if opts[:return_type] == 'File'
|
|
50
54
|
response = request.run
|
|
51
55
|
|
|
52
56
|
if @config.debugging
|
|
@@ -55,7 +59,7 @@ module VeniceClient
|
|
|
55
59
|
|
|
56
60
|
unless response.success?
|
|
57
61
|
if response.timed_out?
|
|
58
|
-
fail ApiError.new(
|
|
62
|
+
fail ApiError.new('Connection timed out')
|
|
59
63
|
elsif response.code == 0
|
|
60
64
|
# Errors from libcurl will be made visible here
|
|
61
65
|
fail ApiError.new(:code => 0,
|
|
@@ -68,7 +72,9 @@ module VeniceClient
|
|
|
68
72
|
end
|
|
69
73
|
end
|
|
70
74
|
|
|
71
|
-
if opts[:return_type]
|
|
75
|
+
if opts[:return_type] == 'File'
|
|
76
|
+
data = tempfile
|
|
77
|
+
elsif opts[:return_type]
|
|
72
78
|
data = deserialize(response, opts[:return_type])
|
|
73
79
|
else
|
|
74
80
|
data = nil
|
|
@@ -86,12 +92,13 @@ module VeniceClient
|
|
|
86
92
|
# @option opts [Object] :body HTTP body (JSON/XML)
|
|
87
93
|
# @return [Typhoeus::Request] A Typhoeus Request
|
|
88
94
|
def build_request(http_method, path, opts = {})
|
|
89
|
-
url = build_request_url(path)
|
|
95
|
+
url = build_request_url(path, opts)
|
|
90
96
|
http_method = http_method.to_sym.downcase
|
|
91
97
|
|
|
92
98
|
header_params = @default_headers.merge(opts[:header_params] || {})
|
|
93
99
|
query_params = opts[:query_params] || {}
|
|
94
100
|
form_params = opts[:form_params] || {}
|
|
101
|
+
follow_location = opts[:follow_location] || true
|
|
95
102
|
|
|
96
103
|
update_params_for_auth! header_params, query_params, opts[:auth_names]
|
|
97
104
|
|
|
@@ -109,6 +116,7 @@ module VeniceClient
|
|
|
109
116
|
:sslcert => @config.cert_file,
|
|
110
117
|
:sslkey => @config.key_file,
|
|
111
118
|
:verbose => @config.debugging,
|
|
119
|
+
:followlocation => follow_location
|
|
112
120
|
}
|
|
113
121
|
|
|
114
122
|
# set custom cert, if provided
|
|
@@ -122,9 +130,7 @@ module VeniceClient
|
|
|
122
130
|
end
|
|
123
131
|
end
|
|
124
132
|
|
|
125
|
-
|
|
126
|
-
download_file(request) if opts[:return_type] == "File"
|
|
127
|
-
request
|
|
133
|
+
Typhoeus::Request.new(url, req_opts)
|
|
128
134
|
end
|
|
129
135
|
|
|
130
136
|
# Builds the HTTP request body
|
|
@@ -135,8 +141,8 @@ module VeniceClient
|
|
|
135
141
|
# @return [String] HTTP body data in the form of string
|
|
136
142
|
def build_request_body(header_params, form_params, body)
|
|
137
143
|
# http form
|
|
138
|
-
if header_params[
|
|
139
|
-
|
|
144
|
+
if header_params['Content-Type'] == 'application/x-www-form-urlencoded' ||
|
|
145
|
+
header_params['Content-Type'] == 'multipart/form-data'
|
|
140
146
|
data = {}
|
|
141
147
|
form_params.each do |key, value|
|
|
142
148
|
case value
|
|
@@ -155,6 +161,47 @@ module VeniceClient
|
|
|
155
161
|
data
|
|
156
162
|
end
|
|
157
163
|
|
|
164
|
+
# Save response body into a file in (the defined) temporary folder, using the filename
|
|
165
|
+
# from the "Content-Disposition" header if provided, otherwise a random filename.
|
|
166
|
+
# The response body is written to the file in chunks in order to handle files which
|
|
167
|
+
# size is larger than maximum Ruby String or even larger than the maximum memory a Ruby
|
|
168
|
+
# process can use.
|
|
169
|
+
#
|
|
170
|
+
# @see Configuration#temp_folder_path
|
|
171
|
+
#
|
|
172
|
+
# @return [Tempfile] the tempfile generated
|
|
173
|
+
def download_file(request)
|
|
174
|
+
tempfile = nil
|
|
175
|
+
encoding = nil
|
|
176
|
+
request.on_headers do |response|
|
|
177
|
+
content_disposition = response.headers['Content-Disposition']
|
|
178
|
+
if content_disposition && content_disposition =~ /filename=/i
|
|
179
|
+
filename = content_disposition[/filename=['"]?([^'"\s]+)['"]?/, 1]
|
|
180
|
+
prefix = sanitize_filename(filename)
|
|
181
|
+
else
|
|
182
|
+
prefix = 'download-'
|
|
183
|
+
end
|
|
184
|
+
prefix = prefix + '-' unless prefix.end_with?('-')
|
|
185
|
+
encoding = response.body.encoding
|
|
186
|
+
tempfile = Tempfile.open(prefix, @config.temp_folder_path, encoding: encoding)
|
|
187
|
+
end
|
|
188
|
+
request.on_body do |chunk|
|
|
189
|
+
chunk.force_encoding(encoding)
|
|
190
|
+
tempfile.write(chunk)
|
|
191
|
+
end
|
|
192
|
+
request.on_complete do
|
|
193
|
+
if !tempfile
|
|
194
|
+
fail ApiError.new("Failed to create the tempfile based on the HTTP response from the server: #{request.inspect}")
|
|
195
|
+
end
|
|
196
|
+
tempfile.close
|
|
197
|
+
@config.logger.info "Temp file written to #{tempfile.path}, please copy the file to a proper folder "\
|
|
198
|
+
"with e.g. `FileUtils.cp(tempfile.path, '/new/file/path')` otherwise the temp file "\
|
|
199
|
+
"will be deleted automatically with GC. It's also recommended to delete the temp file "\
|
|
200
|
+
"explicitly with `tempfile.delete`"
|
|
201
|
+
yield tempfile if block_given?
|
|
202
|
+
end
|
|
203
|
+
end
|
|
204
|
+
|
|
158
205
|
# Check if the given MIME is a JSON MIME.
|
|
159
206
|
# JSON MIME examples:
|
|
160
207
|
# application/json
|
|
@@ -164,7 +211,7 @@ module VeniceClient
|
|
|
164
211
|
# @param [String] mime MIME
|
|
165
212
|
# @return [Boolean] True if the MIME is application/json
|
|
166
213
|
def json_mime?(mime)
|
|
167
|
-
(mime ==
|
|
214
|
+
(mime == '*/*') || !(mime =~ /^Application\/.*json(?!p)(;.*)?/i).nil?
|
|
168
215
|
end
|
|
169
216
|
|
|
170
217
|
# Deserialize the response to the given return type.
|
|
@@ -173,25 +220,20 @@ module VeniceClient
|
|
|
173
220
|
# @param [String] return_type some examples: "User", "Array<User>", "Hash<String, Integer>"
|
|
174
221
|
def deserialize(response, return_type)
|
|
175
222
|
body = response.body
|
|
176
|
-
|
|
177
|
-
# handle file downloading - return the File instance processed in request callbacks
|
|
178
|
-
# note that response body is empty when the file is written in chunks in request on_body callback
|
|
179
|
-
return @tempfile if return_type == "File"
|
|
180
|
-
|
|
181
223
|
return nil if body.nil? || body.empty?
|
|
182
224
|
|
|
183
225
|
# return response body directly for String return type
|
|
184
|
-
return body if return_type ==
|
|
226
|
+
return body.to_s if return_type == 'String'
|
|
185
227
|
|
|
186
228
|
# ensuring a default content type
|
|
187
|
-
content_type = response.headers[
|
|
229
|
+
content_type = response.headers['Content-Type'] || 'application/json'
|
|
188
230
|
|
|
189
231
|
fail "Content-Type is not supported: #{content_type}" unless json_mime?(content_type)
|
|
190
232
|
|
|
191
233
|
begin
|
|
192
234
|
data = JSON.parse("[#{body}]", :symbolize_names => true)[0]
|
|
193
235
|
rescue JSON::ParserError => e
|
|
194
|
-
if %w(String Date
|
|
236
|
+
if %w(String Date Time).include?(return_type)
|
|
195
237
|
data = body
|
|
196
238
|
else
|
|
197
239
|
raise e
|
|
@@ -208,21 +250,21 @@ module VeniceClient
|
|
|
208
250
|
def convert_to_type(data, return_type)
|
|
209
251
|
return nil if data.nil?
|
|
210
252
|
case return_type
|
|
211
|
-
when
|
|
253
|
+
when 'String'
|
|
212
254
|
data.to_s
|
|
213
|
-
when
|
|
255
|
+
when 'Integer'
|
|
214
256
|
data.to_i
|
|
215
|
-
when
|
|
257
|
+
when 'Float'
|
|
216
258
|
data.to_f
|
|
217
|
-
when
|
|
259
|
+
when 'Boolean'
|
|
218
260
|
data == true
|
|
219
|
-
when
|
|
261
|
+
when 'Time'
|
|
220
262
|
# parse date time (expecting ISO 8601 format)
|
|
221
|
-
|
|
222
|
-
when
|
|
263
|
+
Time.parse data
|
|
264
|
+
when 'Date'
|
|
223
265
|
# parse date time (expecting ISO 8601 format)
|
|
224
266
|
Date.parse data
|
|
225
|
-
when
|
|
267
|
+
when 'Object'
|
|
226
268
|
# generic object (usually a Hash), return directly
|
|
227
269
|
data
|
|
228
270
|
when /\AArray<(.+)>\z/
|
|
@@ -236,46 +278,9 @@ module VeniceClient
|
|
|
236
278
|
data.each { |k, v| hash[k] = convert_to_type(v, sub_type) }
|
|
237
279
|
end
|
|
238
280
|
else
|
|
239
|
-
# models
|
|
240
|
-
VeniceClient.const_get(return_type)
|
|
241
|
-
|
|
242
|
-
end
|
|
243
|
-
|
|
244
|
-
# Save response body into a file in (the defined) temporary folder, using the filename
|
|
245
|
-
# from the "Content-Disposition" header if provided, otherwise a random filename.
|
|
246
|
-
# The response body is written to the file in chunks in order to handle files which
|
|
247
|
-
# size is larger than maximum Ruby String or even larger than the maximum memory a Ruby
|
|
248
|
-
# process can use.
|
|
249
|
-
#
|
|
250
|
-
# @see Configuration#temp_folder_path
|
|
251
|
-
def download_file(request)
|
|
252
|
-
tempfile = nil
|
|
253
|
-
encoding = nil
|
|
254
|
-
request.on_headers do |response|
|
|
255
|
-
content_disposition = response.headers["Content-Disposition"]
|
|
256
|
-
if content_disposition && content_disposition =~ /filename=/i
|
|
257
|
-
filename = content_disposition[/filename=['"]?([^'"\s]+)['"]?/, 1]
|
|
258
|
-
prefix = sanitize_filename(filename)
|
|
259
|
-
else
|
|
260
|
-
prefix = "download-"
|
|
261
|
-
end
|
|
262
|
-
prefix = prefix + "-" unless prefix.end_with?("-")
|
|
263
|
-
encoding = response.body.encoding
|
|
264
|
-
tempfile = Tempfile.open(prefix, @config.temp_folder_path, encoding: encoding)
|
|
265
|
-
@tempfile = tempfile
|
|
266
|
-
end
|
|
267
|
-
request.on_body do |chunk|
|
|
268
|
-
chunk.force_encoding(encoding)
|
|
269
|
-
tempfile.write(chunk)
|
|
270
|
-
end
|
|
271
|
-
request.on_complete do |response|
|
|
272
|
-
if tempfile
|
|
273
|
-
tempfile.close
|
|
274
|
-
@config.logger.info "Temp file written to #{tempfile.path}, please copy the file to a proper folder " \
|
|
275
|
-
"with e.g. `FileUtils.cp(tempfile.path, '/new/file/path')` otherwise the temp file " \
|
|
276
|
-
"will be deleted automatically with GC. It's also recommended to delete the temp file " \
|
|
277
|
-
"explicitly with `tempfile.delete`"
|
|
278
|
-
end
|
|
281
|
+
# models (e.g. Pet) or oneOf
|
|
282
|
+
klass = VeniceClient.const_get(return_type)
|
|
283
|
+
klass.respond_to?(:openapi_one_of) ? klass.build(data) : klass.build_from_hash(data)
|
|
279
284
|
end
|
|
280
285
|
end
|
|
281
286
|
|
|
@@ -285,16 +290,16 @@ module VeniceClient
|
|
|
285
290
|
# @param [String] filename the filename to be sanitized
|
|
286
291
|
# @return [String] the sanitized filename
|
|
287
292
|
def sanitize_filename(filename)
|
|
288
|
-
filename.
|
|
293
|
+
filename.split(/[\/\\]/).last
|
|
289
294
|
end
|
|
290
295
|
|
|
291
|
-
def build_request_url(path)
|
|
296
|
+
def build_request_url(path, opts = {})
|
|
292
297
|
# Add leading and trailing slashes to path
|
|
293
|
-
path = "/#{path}".gsub(/\/+/,
|
|
294
|
-
@config.base_url + path
|
|
298
|
+
path = "/#{path}".gsub(/\/+/, '/')
|
|
299
|
+
@config.base_url(opts[:operation]) + path
|
|
295
300
|
end
|
|
296
301
|
|
|
297
|
-
# Update
|
|
302
|
+
# Update header and query params based on authentication settings.
|
|
298
303
|
#
|
|
299
304
|
# @param [Hash] header_params Header parameters
|
|
300
305
|
# @param [Hash] query_params Query parameters
|
|
@@ -304,19 +309,19 @@ module VeniceClient
|
|
|
304
309
|
auth_setting = @config.auth_settings[auth_name]
|
|
305
310
|
next unless auth_setting
|
|
306
311
|
case auth_setting[:in]
|
|
307
|
-
when
|
|
308
|
-
when
|
|
309
|
-
else fail ArgumentError,
|
|
312
|
+
when 'header' then header_params[auth_setting[:key]] = auth_setting[:value]
|
|
313
|
+
when 'query' then query_params[auth_setting[:key]] = auth_setting[:value]
|
|
314
|
+
else fail ArgumentError, 'Authentication token must be in `query` or `header`'
|
|
310
315
|
end
|
|
311
316
|
end
|
|
312
317
|
end
|
|
313
318
|
|
|
314
319
|
# Sets user agent in HTTP header
|
|
315
320
|
#
|
|
316
|
-
# @param [String] user_agent User agent (e.g.
|
|
321
|
+
# @param [String] user_agent User agent (e.g. openapi-generator/ruby/1.0.0)
|
|
317
322
|
def user_agent=(user_agent)
|
|
318
323
|
@user_agent = user_agent
|
|
319
|
-
@default_headers[
|
|
324
|
+
@default_headers['User-Agent'] = @user_agent
|
|
320
325
|
end
|
|
321
326
|
|
|
322
327
|
# Return Accept header based on an array of accepts provided.
|
|
@@ -326,15 +331,15 @@ module VeniceClient
|
|
|
326
331
|
return nil if accepts.nil? || accepts.empty?
|
|
327
332
|
# use JSON when present, otherwise use all of the provided
|
|
328
333
|
json_accept = accepts.find { |s| json_mime?(s) }
|
|
329
|
-
json_accept || accepts.join(
|
|
334
|
+
json_accept || accepts.join(',')
|
|
330
335
|
end
|
|
331
336
|
|
|
332
337
|
# Return Content-Type header based on an array of content types provided.
|
|
333
338
|
# @param [Array] content_types array for Content-Type
|
|
334
339
|
# @return [String] the Content-Type header (e.g. application/json)
|
|
335
340
|
def select_header_content_type(content_types)
|
|
336
|
-
#
|
|
337
|
-
return
|
|
341
|
+
# return nil by default
|
|
342
|
+
return if content_types.nil? || content_types.empty?
|
|
338
343
|
# use JSON when present, otherwise use the first one
|
|
339
344
|
json_content_type = content_types.find { |s| json_mime?(s) }
|
|
340
345
|
json_content_type || content_types.first
|
|
@@ -370,13 +375,13 @@ module VeniceClient
|
|
|
370
375
|
def build_collection_param(param, collection_format)
|
|
371
376
|
case collection_format
|
|
372
377
|
when :csv
|
|
373
|
-
param.join(
|
|
378
|
+
param.join(',')
|
|
374
379
|
when :ssv
|
|
375
|
-
param.join(
|
|
380
|
+
param.join(' ')
|
|
376
381
|
when :tsv
|
|
377
382
|
param.join("\t")
|
|
378
383
|
when :pipes
|
|
379
|
-
param.join(
|
|
384
|
+
param.join('|')
|
|
380
385
|
when :multi
|
|
381
386
|
# return the array directly as typhoeus will handle it as expected
|
|
382
387
|
param
|
|
@@ -3,10 +3,11 @@
|
|
|
3
3
|
|
|
4
4
|
#The Venice.ai API.
|
|
5
5
|
|
|
6
|
-
OpenAPI
|
|
6
|
+
The version of the OpenAPI document: 20250709.013306
|
|
7
|
+
|
|
8
|
+
Generated by: https://openapi-generator.tech
|
|
9
|
+
Generator version: 7.14.0
|
|
7
10
|
|
|
8
|
-
Generated by: https://github.com/swagger-api/swagger-codegen.git
|
|
9
|
-
Swagger Codegen version: 3.0.68
|
|
10
11
|
=end
|
|
11
12
|
|
|
12
13
|
module VeniceClient
|
|
@@ -20,8 +21,8 @@ module VeniceClient
|
|
|
20
21
|
# ApiError.new(:code => 404, :message => "Not Found")
|
|
21
22
|
def initialize(arg = nil)
|
|
22
23
|
if arg.is_a? Hash
|
|
23
|
-
if arg.key?(:message) || arg.key?(
|
|
24
|
-
super(arg[:message] || arg[
|
|
24
|
+
if arg.key?(:message) || arg.key?('message')
|
|
25
|
+
super(arg[:message] || arg['message'])
|
|
25
26
|
else
|
|
26
27
|
super arg
|
|
27
28
|
end
|
|
@@ -31,6 +32,7 @@ module VeniceClient
|
|
|
31
32
|
end
|
|
32
33
|
else
|
|
33
34
|
super arg
|
|
35
|
+
@message = arg
|
|
34
36
|
end
|
|
35
37
|
end
|
|
36
38
|
|