Class: Raif::ModelTools::FetchUrl

Inherits:
Raif::ModelTool
  • Object
show all
Defined in:
app/models/raif/model_tools/fetch_url.rb

Class Method Summary collapse

Class Method Details

.observation_for_invocation(tool_invocation) ⇒ Object



20
21
22
23
24
25
26
27
28
# File 'app/models/raif/model_tools/fetch_url.rb', line 20

def observation_for_invocation(tool_invocation)
  return "No results found" unless tool_invocation.result.present?

  <<~OBSERVATION
    Result Status: #{tool_invocation.result["status"]}
    Result Content:
    #{tool_invocation.result["content"]}
  OBSERVATION
end

.process_invocation(tool_invocation) ⇒ Object



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'app/models/raif/model_tools/fetch_url.rb', line 30

def process_invocation(tool_invocation)
  url = tool_invocation.tool_arguments["url"]
  response = Faraday.get(url)

  readable_content = Raif::Utils::ReadableContentExtractor.new(response.body).extract_readable_content
  markdown_content = Raif::Utils::HtmlToMarkdownConverter.convert(readable_content)

  tool_invocation.update!(
    result: {
      status: response.status,
      content: markdown_content
    }
  )

  tool_invocation.result
end