13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
# File 'lib/google/genai/live_music.rb', line 13
def connect(model:)
raise "Live Music API is not supported for Vertex AI yet" if @api_client.vertexai
base_url = "wss://generativelanguage.googleapis.com"
version = @api_client.instance_variable_get(:@http_options)&.[](:api_version) || 'v1beta'
api_key = @api_client.api_key
uri = "#{base_url}/ws/google.ai.generativelanguage.#{version}.GenerativeService.BidiGenerateMusic?key=#{api_key}"
ws = WebSocket::Client::Simple.connect(uri)
session = MusicSession.new(ws)
setup_message = {
setup: {
model: "models/#{model}"
}
}
ws.send(setup_message.to_json)
sleep 0.1 until ws.open?
yield session
ensure
ws.close if ws&.open?
end
|