Class: NitroIntelligence::Client::Handlers::TextToSpeechHandler
- Inherits:
-
BaseHandler
- Object
- BaseHandler
- NitroIntelligence::Client::Handlers::TextToSpeechHandler
show all
- Defined in:
- lib/nitro_intelligence/client/handlers/text_to_speech_handler.rb
Constant Summary
collapse
OpenAI::Models::Audio::SpeechCreateParams.fields.keys.uniq.freeze
Constants inherited
from BaseHandler
BaseHandler::MODALITY_HEADER, BaseHandler::REQUESTED_MODEL_HEADER
Instance Method Summary
collapse
Methods inherited from BaseHandler
#initialize
Instance Method Details
#create(message: "", parameters: {}) ⇒ Object
10
11
12
13
|
# File 'lib/nitro_intelligence/client/handlers/text_to_speech_handler.rb', line 10
def create(message: "", parameters: {})
validate_and_resolve!(parameters)
perform_request(message:, parameters:)
end
|
15
16
17
18
19
20
21
|
# File 'lib/nitro_intelligence/client/handlers/text_to_speech_handler.rb', line 15
def perform_request(message: "", parameters: {})
(parameters, MODALITY_HEADER => "audio", REQUESTED_MODEL_HEADER => parameters[:model])
@client.audio.speech.create(
input: message,
**parameters.slice(*ALLOWED_EXTRA_PARAMETERS)
)
end
|
#validate_and_resolve!(parameters) ⇒ Object
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# File 'lib/nitro_intelligence/client/handlers/text_to_speech_handler.rb', line 23
def validate_and_resolve!(parameters)
model_name = parameters[:model] || NitroIntelligence.model_catalog.default_text_to_speech_model&.name
model = NitroIntelligence.model_catalog.lookup_by_name(model_name)
raise ArgumentError, "Unsupported model: '#{model_name}'" unless model
default_parameters = {
metadata: {},
model: model.name,
voice: model.default_voice,
response_format: model.default_response_format,
}
parameters.replace(default_parameters.merge(parameters))
validate_voice_and_format!(model, parameters)
end
|