Module: RubyLLM::Providers::VertexAI::Videos
- Included in:
- Gemini
- Defined in:
- lib/ruby_llm/providers/vertexai/videos.rb
Overview
Veo prediction jobs with inline or Cloud Storage video output.
Instance Method Summary collapse
- #download_video(job) ⇒ Object
- #refresh_video_job(job) ⇒ Object
- #video_job_url(job) ⇒ Object
- #video_url ⇒ Object
Instance Method Details
#download_video(job) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/ruby_llm/providers/vertexai/videos.rb', line 21 def download_video(job) video = generated_video(job.raw) raise Error, 'Vertex AI returned no video' unless video data = if video['bytesBase64Encoded'] Base64.decode64(video['bytesBase64Encoded']) else @provider.download_file(video.fetch('gcsUri')) end Video.new(data:, mime_type: video['mimeType'] || 'video/mp4', model: job.model, raw: job.raw) end |
#refresh_video_job(job) ⇒ Object
16 17 18 19 |
# File 'lib/ruby_llm/providers/vertexai/videos.rb', line 16 def refresh_video_job(job) response = @connection.post video_job_url(job), { operationName: job.id } parse_video_job_status(response, job:) end |
#video_job_url(job) ⇒ Object
12 13 14 |
# File 'lib/ruby_llm/providers/vertexai/videos.rb', line 12 def video_job_url(job) "#{job.id.split('/operations/').first}:fetchPredictOperation" end |
#video_url ⇒ Object
8 9 10 |
# File 'lib/ruby_llm/providers/vertexai/videos.rb', line 8 def video_url "#{@provider.model_path(model_id(@model))}:predictLongRunning" end |