Class: RubyLLM::Protocols::Perplexity::Files

Inherits:
Protocols::Files
  • Object
show all
Defined in:
lib/ruby_llm/protocols/perplexity/files.rb

Overview

Generated files belonging to a Perplexity Agent response.

Instance Method Summary collapse

Instance Method Details

#find(resource_id) ⇒ Object

Raises:



12
13
14
15
16
17
18
19
# File 'lib/ruby_llm/protocols/perplexity/files.rb', line 12

def find(resource_id)
  response_id, file_id = split_resource_id(resource_id)
  response = @connection.get("v1/agent/#{response_id}/files")
  data = Array(response.body['data']).find { |item| item['id'] == file_id }
  raise Error.new('Perplexity response file was not found', response:) unless data

  parse_response_file(response_id, data)
end

#parse_response_file(response_id, data) ⇒ Object

:nodoc:



21
22
23
24
25
26
27
28
29
30
# File 'lib/ruby_llm/protocols/perplexity/files.rb', line 21

def parse_response_file(response_id, data) # :nodoc:
  file_id = data['file_id'] || data.fetch('id')
  resource_id = "#{response_id}/files/#{file_id}"
  split_resource_id(resource_id)
   = data.merge('response_id' => response_id)
  uploaded_file(, id: resource_id, filename: data['filename'],
                          byte_size: data['bytes'] || data['size_bytes'],
                          created_at: timestamp(data['created_at']),
                          mime_type: data['content_type'] || data['mime_type'], downloadable: true)
end

#uploadObject

Raises:



8
9
10
# File 'lib/ruby_llm/protocols/perplexity/files.rb', line 8

def upload(*)
  raise Error, 'Perplexity Agent only supports downloading generated response files'
end