Class: RailsAgents::Skills::Portable::WebSearch
- Defined in:
- lib/rails_agents/skills/portable/web_search.rb
Constant Summary collapse
- SEARCH_URL =
"https://html.duckduckgo.com/html/"
Instance Method Summary collapse
Methods inherited from Tool
definition, description, inherited, param, tool_name
Instance Method Details
#call(query:) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/rails_agents/skills/portable/web_search.rb', line 14 def call(query:) response = Faraday.get(SEARCH_URL, {q: query}, {"User-Agent" => "RailsAgents/1.0"}) return {error: "Search failed", query: query} unless response.success? titles = response.body.scan(/class="result__a"[^>]*>(.*?)<\/a>/).first(5).map { |match| match.first.gsub(/<[^>]+>/, "").strip }.reject(&:empty?) urls = response.body.scan(/class="result__url"[^>]*>(.*?)<\/a>/).first(5).map { |match| match.first.gsub(/<[^>]+>/, "").strip } {query: query, results: titles.zip(urls).map { |title, url| {title:, url:} }} rescue StandardError => e {error: e., query: query} end |