Class: Gemini::Live
- Inherits:
-
Object
- Object
- Gemini::Live
- Defined in:
- lib/gemini/live.rb,
lib/gemini/live/session.rb,
lib/gemini/live/connection.rb,
lib/gemini/live/configuration.rb,
lib/gemini/live/message_builder.rb
Overview
Live API client for real-time audio/video/text interactions
Defined Under Namespace
Classes: Configuration, Connection, MessageBuilder, Session
Instance Method Summary collapse
-
#connect(model: Configuration::DEFAULT_MODEL, response_modality: "TEXT", voice_name: nil, system_instruction: nil, tools: nil, context_window_compression: nil, session_resumption: nil, automatic_activity_detection: true, media_resolution: nil, output_audio_transcription: false) {|session| ... } ⇒ Gemini::Live::Session
Establish a WebSocket connection and return a session.
-
#initialize(client:) ⇒ Live
constructor
A new instance of Live.
Constructor Details
#initialize(client:) ⇒ Live
Returns a new instance of Live.
41 42 43 |
# File 'lib/gemini/live.rb', line 41 def initialize(client:) @client = client end |
Instance Method Details
#connect(model: Configuration::DEFAULT_MODEL, response_modality: "TEXT", voice_name: nil, system_instruction: nil, tools: nil, context_window_compression: nil, session_resumption: nil, automatic_activity_detection: true, media_resolution: nil, output_audio_transcription: false) {|session| ... } ⇒ Gemini::Live::Session
Establish a WebSocket connection and return a session
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
# File 'lib/gemini/live.rb', line 60 def connect( model: Configuration::DEFAULT_MODEL, response_modality: "TEXT", voice_name: nil, system_instruction: nil, tools: nil, context_window_compression: nil, session_resumption: nil, automatic_activity_detection: true, media_resolution: nil, output_audio_transcription: false, &block ) config = Configuration.new( model: model, response_modality: response_modality, voice_name: voice_name, system_instruction: system_instruction, tools: tools, context_window_compression: context_window_compression, session_resumption: session_resumption, automatic_activity_detection: automatic_activity_detection, media_resolution: media_resolution, output_audio_transcription: output_audio_transcription ) session = Session.new( api_key: @client.api_key, configuration: config ) if block_given? begin yield session ensure session.close end else session end end |