Class: RailsAi::WebSearch::DuckDuckGoSearch
- Inherits:
-
Object
- Object
- RailsAi::WebSearch::DuckDuckGoSearch
- Defined in:
- lib/rails_ai/web_search.rb
Instance Method Summary collapse
-
#initialize ⇒ DuckDuckGoSearch
constructor
A new instance of DuckDuckGoSearch.
- #search(query, num_results: 5) ⇒ Object
Constructor Details
#initialize ⇒ DuckDuckGoSearch
Returns a new instance of DuckDuckGoSearch.
60 61 62 |
# File 'lib/rails_ai/web_search.rb', line 60 def initialize @base_url = 'https://api.duckduckgo.com' end |
Instance Method Details
#search(query, num_results: 5) ⇒ Object
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/rails_ai/web_search.rb', line 64 def search(query, num_results: 5) uri = URI("#{@base_url}/?q=#{URI.encode_www_form_component(query)}&format=json&no_html=1&skip_disambig=1") response = Net::HTTP.get_response(uri) if response.code == '200' data = JSON.parse(response.body) parse_results(data, num_results) else Rails.logger.error "DuckDuckGo API error: #{response.code} - #{response.body}" if defined?(Rails) && Rails.logger [] end rescue => e Rails.logger.error "DuckDuckGo search error: #{e.message}" if defined?(Rails) && Rails.logger [] end |