Class: NitroIntelligence::Client::Handlers::AudioTranscriptionHandler

Inherits:
Object
  • Object
show all
Defined in:
lib/nitro_intelligence/client/handlers/audio_transcription_handler.rb

Constant Summary collapse

ALLOWED_EXTRA_PARAMETERS =
OpenAI::Models::Audio::TranscriptionCreateParams.fields.keys.uniq.freeze

Instance Method Summary collapse

Constructor Details

#initialize(client:) ⇒ AudioTranscriptionHandler

Returns a new instance of AudioTranscriptionHandler.



9
10
11
# File 'lib/nitro_intelligence/client/handlers/audio_transcription_handler.rb', line 9

def initialize(client:)
  @client = client
end

Instance Method Details

#create(audio_file:, message: "", parameters: {}) ⇒ Object



13
14
15
16
# File 'lib/nitro_intelligence/client/handlers/audio_transcription_handler.rb', line 13

def create(audio_file:, message: "", parameters: {})
  validate_and_resolve!(parameters)
  perform_request(audio_file:, message:, parameters:)
end

#perform_request(audio_file:, message: "", parameters: {}) ⇒ Object



18
19
20
21
22
23
24
# File 'lib/nitro_intelligence/client/handlers/audio_transcription_handler.rb', line 18

def perform_request(audio_file:, message: "", parameters: {})
  @client.audio.transcriptions.create(
    prompt: message,
    file: audio_file,
    **parameters.slice(*ALLOWED_EXTRA_PARAMETERS)
  )
end

#validate_and_resolve!(parameters) ⇒ Object



26
27
28
29
30
31
32
33
34
# File 'lib/nitro_intelligence/client/handlers/audio_transcription_handler.rb', line 26

def validate_and_resolve!(parameters)
  default_parameters = {
    metadata: {},
    model: NitroIntelligence.model_catalog.default_audio_transcription_model&.name,
  }

  parameters.replace(default_parameters.merge(parameters))
  Client.validate_model(parameters[:model])
end