Module: Tavily

Defined in:
lib/tavily.rb,
lib/tavily/client.rb,
lib/tavily/errors.rb,
lib/tavily/object.rb,
lib/tavily/version.rb,
lib/tavily/responses.rb,
lib/tavily/connection.rb,
lib/tavily/configuration.rb

Overview

Ruby client for the Tavily web search, extract, crawl, map, and research API.

Examples:

One-off call using the global configuration

Tavily.configure { |c| c.api_key = ENV["TAVILY_API_KEY"] }
Tavily.search("latest ruby release").results.first.url

Dedicated client

client = Tavily::Client.new(api_key: "tvly-...")
client.extract("https://example.com")

Defined Under Namespace

Modules: Envelope, Errors Classes: APIError, AuthenticationError, BadRequestError, Client, Configuration, ConfigurationError, Connection, ConnectionError, CrawlResponse, CrawlResult, Error, ExtractResponse, ExtractResult, FailedResult, ForbiddenError, Image, MapResponse, NotFoundError, Object, PayAsYouGoLimitError, PlanLimitError, RateLimitError, ResearchEvent, ResearchSource, ResearchTask, SearchResponse, SearchResult, ServerError, TimeoutError, UnprocessableEntityError, Usage, UsageLimitError

Constant Summary collapse

VERSION =
"0.1.0"

Class Method Summary collapse

Class Method Details

.configurationConfiguration

The global configuration shared by search and friends, and used as the default for new Client instances.

Returns:



26
27
28
# File 'lib/tavily.rb', line 26

def configuration
  @configuration ||= Configuration.new
end

.configure {|config| ... } ⇒ Configuration

Configure the library.

Yield Parameters:

Returns:



33
34
35
36
37
# File 'lib/tavily.rb', line 33

def configure
  yield(configuration) if block_given?
  reset_default_client!
  configuration
end

.crawlObject



68
69
# File 'lib/tavily.rb', line 68

def crawl(...) = default_client.crawl(...)
# @see Client#map

.default_clientClient

A process-wide Client built from the global configuration.

Returns:



50
51
52
# File 'lib/tavily.rb', line 50

def default_client
  @default_client ||= Client.new
end

.extractObject



66
67
# File 'lib/tavily.rb', line 66

def extract(...) = default_client.extract(...)
# @see Client#crawl

.mapObject

See Also:



70
71
# File 'lib/tavily.rb', line 70

def map(...) = default_client.map(...)
# @see Client#research

.qna_searchObject



62
63
# File 'lib/tavily.rb', line 62

def qna_search(...) = default_client.qna_search(...)
# @see Client#search_context

.researchObject



72
73
# File 'lib/tavily.rb', line 72

def research(...) = default_client.research(...)
# @see Client#research_task

.research_taskObject



74
75
# File 'lib/tavily.rb', line 74

def research_task(...) = default_client.research_task(...)
# @see Client#wait_for_research

.reset_configuration!Configuration

Reset the global configuration to defaults (re-reads ENV). Mainly useful in tests.

Returns:



42
43
44
45
46
# File 'lib/tavily.rb', line 42

def reset_configuration!
  @configuration = Configuration.new
  reset_default_client!
  @configuration
end

.reset_default_client!Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



55
56
57
# File 'lib/tavily.rb', line 55

def reset_default_client!
  @default_client = nil
end

.searchObject



60
61
# File 'lib/tavily.rb', line 60

def search(...) = default_client.search(...)
# @see Client#qna_search

.search_contextObject



64
65
# File 'lib/tavily.rb', line 64

def search_context(...) = default_client.search_context(...)
# @see Client#extract

.wait_for_researchObject



76
# File 'lib/tavily.rb', line 76

def wait_for_research(...) = default_client.wait_for_research(...)