Class: RubyLLM::Protocols::Perplexity::Files
- Inherits:
-
Protocols::Files
- Object
- Protocols::Files
- RubyLLM::Protocols::Perplexity::Files
- Defined in:
- lib/ruby_llm/protocols/perplexity/files.rb
Overview
Generated files belonging to a Perplexity Agent response.
Instance Method Summary collapse
- #find(resource_id) ⇒ Object
-
#parse_response_file(response_id, data) ⇒ Object
:nodoc:.
- #upload ⇒ Object
Instance Method Details
#find(resource_id) ⇒ Object
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: (data['created_at']), mime_type: data['content_type'] || data['mime_type'], downloadable: true) end |
#upload ⇒ Object
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 |