Module: RubyLLM::Protocols::ChatCompletions::Speech
- Defined in:
- lib/ruby_llm/protocols/chat_completions/speech.rb
Overview
Speech generation methods for the OpenAI API integration
Class Method Summary collapse
- .parse_speech_response(response, model:, voice:, format:) ⇒ Object
- .render_speech_payload(input, model:, voice:, format:, provider_options: {}) ⇒ Object
-
.speech_url(model:) ⇒ Object
rubocop:disable Lint/UnusedMethodArgument.
- .stream_speech(payload, model:, voice:, format:) ⇒ Object
Class Method Details
.parse_speech_response(response, model:, voice:, format:) ⇒ Object
27 28 29 30 31 32 33 34 35 36 |
# File 'lib/ruby_llm/protocols/chat_completions/speech.rb', line 27 def parse_speech_response(response, model:, voice:, format:) resolved_format = (format || 'mp3').to_s RubyLLM::Speech.new( data: response.body, model: model, voice: voice || 'alloy', format: resolved_format ) end |
.render_speech_payload(input, model:, voice:, format:, provider_options: {}) ⇒ Object
18 19 20 21 22 23 24 25 |
# File 'lib/ruby_llm/protocols/chat_completions/speech.rb', line 18 def render_speech_payload(input, model:, voice:, format:, provider_options: {}) { model: model, input: input, voice: voice || 'alloy', response_format: format }.compact.merge() end |
.speech_url(model:) ⇒ Object
rubocop:disable Lint/UnusedMethodArgument
10 11 12 |
# File 'lib/ruby_llm/protocols/chat_completions/speech.rb', line 10 def speech_url(model:) # rubocop:disable Lint/UnusedMethodArgument 'audio/speech' end |
.stream_speech(payload, model:, voice:, format:) ⇒ Object
14 15 16 |
# File 'lib/ruby_llm/protocols/chat_completions/speech.rb', line 14 def stream_speech(payload, model:, voice:, format:, &) stream_speech_response(speech_url(model:), payload, model:, voice:, format:, &) end |