athena-intelligence 0.1.40__tar.gz → 0.1.42__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/PKG-INFO +1 -1
  2. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/pyproject.toml +1 -1
  3. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/__init__.py +10 -4
  4. athena_intelligence-0.1.42/src/athena/chain/__init__.py +5 -0
  5. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/chain/client.py +19 -19
  6. athena_intelligence-0.1.42/src/athena/chain/types/__init__.py +5 -0
  7. athena_intelligence-0.1.40/src/athena/chain/types/structured_tool_data_parsing_model.py → athena_intelligence-0.1.42/src/athena/chain/types/structured_parse_in_parsing_model.py +10 -10
  8. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/core/client_wrapper.py +1 -1
  9. {athena_intelligence-0.1.40/src/athena/tools → athena_intelligence-0.1.42/src/athena/search}/client.py +65 -29
  10. athena_intelligence-0.1.42/src/athena/tools/client.py +451 -0
  11. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/types/__init__.py +8 -2
  12. athena_intelligence-0.1.42/src/athena/types/document.py +34 -0
  13. athena_intelligence-0.1.40/src/athena/types/scrape_markdown_result.py → athena_intelligence-0.1.42/src/athena/types/excecute_tool_first_workflow_out.py +2 -2
  14. athena_intelligence-0.1.42/src/athena/types/langchain_documents_request_out.py +29 -0
  15. athena_intelligence-0.1.42/src/athena/types/tool_models.py +49 -0
  16. athena_intelligence-0.1.40/src/athena/chain/__init__.py +0 -5
  17. athena_intelligence-0.1.40/src/athena/chain/types/__init__.py +0 -5
  18. athena_intelligence-0.1.40/src/athena/search/client.py +0 -303
  19. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/README.md +0 -0
  20. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/base_client.py +0 -0
  21. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/client.py +0 -0
  22. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/core/__init__.py +0 -0
  23. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/core/api_error.py +0 -0
  24. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/core/datetime_utils.py +0 -0
  25. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/core/file.py +0 -0
  26. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/core/http_client.py +0 -0
  27. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/core/jsonable_encoder.py +0 -0
  28. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/core/remove_none_from_dict.py +0 -0
  29. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/core/request_options.py +0 -0
  30. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/dataset/__init__.py +0 -0
  31. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/dataset/client.py +0 -0
  32. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/environment.py +0 -0
  33. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/errors/__init__.py +0 -0
  34. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/errors/unprocessable_entity_error.py +0 -0
  35. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/message/__init__.py +0 -0
  36. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/message/client.py +0 -0
  37. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/polling_message_client.py +0 -0
  38. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/py.typed +0 -0
  39. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/query/__init__.py +0 -0
  40. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/query/client.py +0 -0
  41. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/report/__init__.py +0 -0
  42. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/report/client.py +0 -0
  43. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/search/__init__.py +0 -0
  44. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/snippet/__init__.py +0 -0
  45. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/snippet/client.py +0 -0
  46. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/tools/__init__.py +0 -0
  47. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/types/dataset.py +0 -0
  48. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/types/firecrawl_scrape_url_data_reponse_dto.py +0 -0
  49. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/types/firecrawl_scrape_url_metadata.py +0 -0
  50. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/types/get_datasets_response.py +0 -0
  51. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/types/get_snippets_response.py +0 -0
  52. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/types/http_validation_error.py +0 -0
  53. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/types/message_out.py +0 -0
  54. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/types/message_out_dto.py +0 -0
  55. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/types/model.py +0 -0
  56. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/types/report.py +0 -0
  57. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/types/snippet.py +0 -0
  58. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/types/sql_results.py +0 -0
  59. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/types/status_enum.py +0 -0
  60. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/types/structured_parse_result.py +0 -0
  61. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/types/tools.py +0 -0
  62. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/types/url_result.py +0 -0
  63. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/types/validation_error.py +0 -0
  64. {athena_intelligence-0.1.40 → athena_intelligence-0.1.42}/src/athena/types/validation_error_loc_item.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: athena-intelligence
3
- Version: 0.1.40
3
+ Version: 0.1.42
4
4
  Summary:
5
5
  Requires-Python: >=3.8,<4.0
6
6
  Classifier: Programming Language :: Python :: 3
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "athena-intelligence"
3
- version = "0.1.40"
3
+ version = "0.1.42"
4
4
  description = ""
5
5
  readme = "README.md"
6
6
  authors = []
@@ -2,20 +2,23 @@
2
2
 
3
3
  from .types import (
4
4
  Dataset,
5
+ Document,
6
+ ExcecuteToolFirstWorkflowOut,
5
7
  FirecrawlScrapeUrlDataReponseDto,
6
8
  FirecrawlScrapeUrlMetadata,
7
9
  GetDatasetsResponse,
8
10
  GetSnippetsResponse,
9
11
  HttpValidationError,
12
+ LangchainDocumentsRequestOut,
10
13
  MessageOut,
11
14
  MessageOutDto,
12
15
  Model,
13
16
  Report,
14
- ScrapeMarkdownResult,
15
17
  Snippet,
16
18
  SqlResults,
17
19
  StatusEnum,
18
20
  StructuredParseResult,
21
+ ToolModels,
19
22
  Tools,
20
23
  UrlResult,
21
24
  ValidationError,
@@ -23,27 +26,30 @@ from .types import (
23
26
  )
24
27
  from .errors import UnprocessableEntityError
25
28
  from . import chain, dataset, message, query, report, search, snippet, tools
26
- from .chain import StructuredToolDataParsingModel
29
+ from .chain import StructuredParseInParsingModel
27
30
  from .environment import AthenaEnvironment
28
31
 
29
32
  __all__ = [
30
33
  "AthenaEnvironment",
31
34
  "Dataset",
35
+ "Document",
36
+ "ExcecuteToolFirstWorkflowOut",
32
37
  "FirecrawlScrapeUrlDataReponseDto",
33
38
  "FirecrawlScrapeUrlMetadata",
34
39
  "GetDatasetsResponse",
35
40
  "GetSnippetsResponse",
36
41
  "HttpValidationError",
42
+ "LangchainDocumentsRequestOut",
37
43
  "MessageOut",
38
44
  "MessageOutDto",
39
45
  "Model",
40
46
  "Report",
41
- "ScrapeMarkdownResult",
42
47
  "Snippet",
43
48
  "SqlResults",
44
49
  "StatusEnum",
50
+ "StructuredParseInParsingModel",
45
51
  "StructuredParseResult",
46
- "StructuredToolDataParsingModel",
52
+ "ToolModels",
47
53
  "Tools",
48
54
  "UnprocessableEntityError",
49
55
  "UrlResult",
@@ -0,0 +1,5 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from .types import StructuredParseInParsingModel
4
+
5
+ __all__ = ["StructuredParseInParsingModel"]
@@ -12,7 +12,7 @@ from ..core.request_options import RequestOptions
12
12
  from ..errors.unprocessable_entity_error import UnprocessableEntityError
13
13
  from ..types.http_validation_error import HttpValidationError
14
14
  from ..types.structured_parse_result import StructuredParseResult
15
- from .types.structured_tool_data_parsing_model import StructuredToolDataParsingModel
15
+ from .types.structured_parse_in_parsing_model import StructuredParseInParsingModel
16
16
 
17
17
  try:
18
18
  import pydantic.v1 as pydantic # type: ignore
@@ -32,7 +32,7 @@ class ChainClient:
32
32
  *,
33
33
  text_input: str,
34
34
  custom_type_dict: typing.Dict[str, typing.Any],
35
- parsing_model: typing.Optional[StructuredToolDataParsingModel] = OMIT,
35
+ parsing_model: typing.Optional[StructuredParseInParsingModel] = OMIT,
36
36
  request_options: typing.Optional[RequestOptions] = None,
37
37
  ) -> StructuredParseResult:
38
38
  """
@@ -41,19 +41,19 @@ class ChainClient:
41
41
 
42
42
  - custom_type_dict: typing.Dict[str, typing.Any]. A dictionary of field names and their default values.
43
43
 
44
- - parsing_model: typing.Optional[StructuredToolDataParsingModel]. The model to be used for parsing.
44
+ - parsing_model: typing.Optional[StructuredParseInParsingModel]. The model to be used for parsing.
45
45
 
46
46
  - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
47
47
  ---
48
+ from athena import StructuredParseInParsingModel
48
49
  from athena.client import Athena
49
50
 
50
- client = Athena(
51
- api_key="YOUR_API_KEY",
52
- )
53
- client.chain.structured_parse(
54
- text_input="text_input",
55
- custom_type_dict={},
56
- )
51
+ client = Athena(api_key="YOUR_API_KEY", )
52
+ client.chain.structured_parse(text_input='Athena is an AI-native analytics platform and artificial employee built to accelerate analytics workflows
53
+ by offering enterprise teams co-pilot and auto-pilot modes. Athena learns your workflow as a co-pilot,
54
+ allowing you to hand over controls to her for autonomous execution with confidence."
55
+
56
+ Give me all of the modes Athena provides.', custom_type_dict={"modes": {}}, parsing_model=StructuredParseInParsingModel.GPT_4_TURBO, )
57
57
  """
58
58
  _request: typing.Dict[str, typing.Any] = {"text_input": text_input, "custom_type_dict": custom_type_dict}
59
59
  if parsing_model is not OMIT:
@@ -104,7 +104,7 @@ class AsyncChainClient:
104
104
  *,
105
105
  text_input: str,
106
106
  custom_type_dict: typing.Dict[str, typing.Any],
107
- parsing_model: typing.Optional[StructuredToolDataParsingModel] = OMIT,
107
+ parsing_model: typing.Optional[StructuredParseInParsingModel] = OMIT,
108
108
  request_options: typing.Optional[RequestOptions] = None,
109
109
  ) -> StructuredParseResult:
110
110
  """
@@ -113,19 +113,19 @@ class AsyncChainClient:
113
113
 
114
114
  - custom_type_dict: typing.Dict[str, typing.Any]. A dictionary of field names and their default values.
115
115
 
116
- - parsing_model: typing.Optional[StructuredToolDataParsingModel]. The model to be used for parsing.
116
+ - parsing_model: typing.Optional[StructuredParseInParsingModel]. The model to be used for parsing.
117
117
 
118
118
  - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
119
119
  ---
120
+ from athena import StructuredParseInParsingModel
120
121
  from athena.client import AsyncAthena
121
122
 
122
- client = AsyncAthena(
123
- api_key="YOUR_API_KEY",
124
- )
125
- await client.chain.structured_parse(
126
- text_input="text_input",
127
- custom_type_dict={},
128
- )
123
+ client = AsyncAthena(api_key="YOUR_API_KEY", )
124
+ await client.chain.structured_parse(text_input='Athena is an AI-native analytics platform and artificial employee built to accelerate analytics workflows
125
+ by offering enterprise teams co-pilot and auto-pilot modes. Athena learns your workflow as a co-pilot,
126
+ allowing you to hand over controls to her for autonomous execution with confidence."
127
+
128
+ Give me all of the modes Athena provides.', custom_type_dict={"modes": {}}, parsing_model=StructuredParseInParsingModel.GPT_4_TURBO, )
129
129
  """
130
130
  _request: typing.Dict[str, typing.Any] = {"text_input": text_input, "custom_type_dict": custom_type_dict}
131
131
  if parsing_model is not OMIT:
@@ -0,0 +1,5 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from .structured_parse_in_parsing_model import StructuredParseInParsingModel
4
+
5
+ __all__ = ["StructuredParseInParsingModel"]
@@ -6,7 +6,7 @@ import typing
6
6
  T_Result = typing.TypeVar("T_Result")
7
7
 
8
8
 
9
- class StructuredToolDataParsingModel(str, enum.Enum):
9
+ class StructuredParseInParsingModel(str, enum.Enum):
10
10
  """
11
11
  The model to be used for parsing.
12
12
  """
@@ -33,21 +33,21 @@ class StructuredToolDataParsingModel(str, enum.Enum):
33
33
  claude_3_sonnet_20240229: typing.Callable[[], T_Result],
34
34
  claude_3_haiku_20240307: typing.Callable[[], T_Result],
35
35
  ) -> T_Result:
36
- if self is StructuredToolDataParsingModel.GPT_4_TURBO:
36
+ if self is StructuredParseInParsingModel.GPT_4_TURBO:
37
37
  return gpt_4_turbo()
38
- if self is StructuredToolDataParsingModel.GPT_4_TURBO_PREVIEW:
38
+ if self is StructuredParseInParsingModel.GPT_4_TURBO_PREVIEW:
39
39
  return gpt_4_turbo_preview()
40
- if self is StructuredToolDataParsingModel.GPT_4:
40
+ if self is StructuredParseInParsingModel.GPT_4:
41
41
  return gpt_4()
42
- if self is StructuredToolDataParsingModel.GPT_35_TURBO:
42
+ if self is StructuredParseInParsingModel.GPT_35_TURBO:
43
43
  return gpt_35_turbo()
44
- if self is StructuredToolDataParsingModel.MIXTRAL_SMALL_8_X_7_B_0211:
44
+ if self is StructuredParseInParsingModel.MIXTRAL_SMALL_8_X_7_B_0211:
45
45
  return mixtral_small_8_x_7_b_0211()
46
- if self is StructuredToolDataParsingModel.MISTRAL_LARGE_0224:
46
+ if self is StructuredParseInParsingModel.MISTRAL_LARGE_0224:
47
47
  return mistral_large_0224()
48
- if self is StructuredToolDataParsingModel.CLAUDE_3_OPUS_20240229:
48
+ if self is StructuredParseInParsingModel.CLAUDE_3_OPUS_20240229:
49
49
  return claude_3_opus_20240229()
50
- if self is StructuredToolDataParsingModel.CLAUDE_3_SONNET_20240229:
50
+ if self is StructuredParseInParsingModel.CLAUDE_3_SONNET_20240229:
51
51
  return claude_3_sonnet_20240229()
52
- if self is StructuredToolDataParsingModel.CLAUDE_3_HAIKU_20240307:
52
+ if self is StructuredParseInParsingModel.CLAUDE_3_HAIKU_20240307:
53
53
  return claude_3_haiku_20240307()
@@ -16,7 +16,7 @@ class BaseClientWrapper:
16
16
  headers: typing.Dict[str, str] = {
17
17
  "X-Fern-Language": "Python",
18
18
  "X-Fern-SDK-Name": "athena-intelligence",
19
- "X-Fern-SDK-Version": "0.1.40",
19
+ "X-Fern-SDK-Version": "0.1.42",
20
20
  }
21
21
  headers["X-API-KEY"] = self.api_key
22
22
  return headers
@@ -10,8 +10,8 @@ from ..core.jsonable_encoder import jsonable_encoder
10
10
  from ..core.remove_none_from_dict import remove_none_from_dict
11
11
  from ..core.request_options import RequestOptions
12
12
  from ..errors.unprocessable_entity_error import UnprocessableEntityError
13
- from ..types.firecrawl_scrape_url_data_reponse_dto import FirecrawlScrapeUrlDataReponseDto
14
13
  from ..types.http_validation_error import HttpValidationError
14
+ from ..types.url_result import UrlResult
15
15
 
16
16
  try:
17
17
  import pydantic.v1 as pydantic # type: ignore
@@ -22,22 +22,34 @@ except ImportError:
22
22
  OMIT = typing.cast(typing.Any, ...)
23
23
 
24
24
 
25
- class ToolsClient:
25
+ class SearchClient:
26
26
  def __init__(self, *, client_wrapper: SyncClientWrapper):
27
27
  self._client_wrapper = client_wrapper
28
28
 
29
- def scrape_url(
29
+ def get_urls(
30
30
  self,
31
31
  *,
32
- url: str,
33
- params: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
32
+ query: str,
33
+ num_urls: int,
34
+ tbs: str,
35
+ country_code: typing.Optional[str] = OMIT,
36
+ country_restrict: typing.Optional[str] = OMIT,
37
+ site: typing.Optional[str] = OMIT,
34
38
  request_options: typing.Optional[RequestOptions] = None,
35
- ) -> FirecrawlScrapeUrlDataReponseDto:
39
+ ) -> UrlResult:
36
40
  """
37
41
  Parameters:
38
- - url: str.
42
+ - query: str.
39
43
 
40
- - params: typing.Optional[typing.Dict[str, typing.Any]].
44
+ - num_urls: int.
45
+
46
+ - tbs: str.
47
+
48
+ - country_code: typing.Optional[str].
49
+
50
+ - country_restrict: typing.Optional[str].
51
+
52
+ - site: typing.Optional[str].
41
53
 
42
54
  - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
43
55
  ---
@@ -46,16 +58,22 @@ class ToolsClient:
46
58
  client = Athena(
47
59
  api_key="YOUR_API_KEY",
48
60
  )
49
- client.tools.scrape_url(
50
- url="https://athenaintelligence.ai",
61
+ client.search.get_urls(
62
+ query="Dogs",
63
+ num_urls=10,
64
+ tbs="qdr:m",
51
65
  )
52
66
  """
53
- _request: typing.Dict[str, typing.Any] = {"url": url}
54
- if params is not OMIT:
55
- _request["params"] = params
67
+ _request: typing.Dict[str, typing.Any] = {"query": query, "num_urls": num_urls, "tbs": tbs}
68
+ if country_code is not OMIT:
69
+ _request["country_code"] = country_code
70
+ if country_restrict is not OMIT:
71
+ _request["country_restrict"] = country_restrict
72
+ if site is not OMIT:
73
+ _request["site"] = site
56
74
  _response = self._client_wrapper.httpx_client.request(
57
75
  "POST",
58
- urllib.parse.urljoin(f"{self._client_wrapper.get_base_url()}/", "api/v0/tools/firecrawl/scrape-url"),
76
+ urllib.parse.urljoin(f"{self._client_wrapper.get_base_url()}/", "api/v0/tools/search/get-urls"),
59
77
  params=jsonable_encoder(
60
78
  request_options.get("additional_query_parameters") if request_options is not None else None
61
79
  ),
@@ -80,7 +98,7 @@ class ToolsClient:
80
98
  max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
81
99
  )
82
100
  if 200 <= _response.status_code < 300:
83
- return pydantic.parse_obj_as(FirecrawlScrapeUrlDataReponseDto, _response.json()) # type: ignore
101
+ return pydantic.parse_obj_as(UrlResult, _response.json()) # type: ignore
84
102
  if _response.status_code == 422:
85
103
  raise UnprocessableEntityError(pydantic.parse_obj_as(HttpValidationError, _response.json())) # type: ignore
86
104
  try:
@@ -90,22 +108,34 @@ class ToolsClient:
90
108
  raise ApiError(status_code=_response.status_code, body=_response_json)
91
109
 
92
110
 
93
- class AsyncToolsClient:
111
+ class AsyncSearchClient:
94
112
  def __init__(self, *, client_wrapper: AsyncClientWrapper):
95
113
  self._client_wrapper = client_wrapper
96
114
 
97
- async def scrape_url(
115
+ async def get_urls(
98
116
  self,
99
117
  *,
100
- url: str,
101
- params: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
118
+ query: str,
119
+ num_urls: int,
120
+ tbs: str,
121
+ country_code: typing.Optional[str] = OMIT,
122
+ country_restrict: typing.Optional[str] = OMIT,
123
+ site: typing.Optional[str] = OMIT,
102
124
  request_options: typing.Optional[RequestOptions] = None,
103
- ) -> FirecrawlScrapeUrlDataReponseDto:
125
+ ) -> UrlResult:
104
126
  """
105
127
  Parameters:
106
- - url: str.
128
+ - query: str.
129
+
130
+ - num_urls: int.
131
+
132
+ - tbs: str.
133
+
134
+ - country_code: typing.Optional[str].
135
+
136
+ - country_restrict: typing.Optional[str].
107
137
 
108
- - params: typing.Optional[typing.Dict[str, typing.Any]].
138
+ - site: typing.Optional[str].
109
139
 
110
140
  - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
111
141
  ---
@@ -114,16 +144,22 @@ class AsyncToolsClient:
114
144
  client = AsyncAthena(
115
145
  api_key="YOUR_API_KEY",
116
146
  )
117
- await client.tools.scrape_url(
118
- url="https://athenaintelligence.ai",
147
+ await client.search.get_urls(
148
+ query="Dogs",
149
+ num_urls=10,
150
+ tbs="qdr:m",
119
151
  )
120
152
  """
121
- _request: typing.Dict[str, typing.Any] = {"url": url}
122
- if params is not OMIT:
123
- _request["params"] = params
153
+ _request: typing.Dict[str, typing.Any] = {"query": query, "num_urls": num_urls, "tbs": tbs}
154
+ if country_code is not OMIT:
155
+ _request["country_code"] = country_code
156
+ if country_restrict is not OMIT:
157
+ _request["country_restrict"] = country_restrict
158
+ if site is not OMIT:
159
+ _request["site"] = site
124
160
  _response = await self._client_wrapper.httpx_client.request(
125
161
  "POST",
126
- urllib.parse.urljoin(f"{self._client_wrapper.get_base_url()}/", "api/v0/tools/firecrawl/scrape-url"),
162
+ urllib.parse.urljoin(f"{self._client_wrapper.get_base_url()}/", "api/v0/tools/search/get-urls"),
127
163
  params=jsonable_encoder(
128
164
  request_options.get("additional_query_parameters") if request_options is not None else None
129
165
  ),
@@ -148,7 +184,7 @@ class AsyncToolsClient:
148
184
  max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
149
185
  )
150
186
  if 200 <= _response.status_code < 300:
151
- return pydantic.parse_obj_as(FirecrawlScrapeUrlDataReponseDto, _response.json()) # type: ignore
187
+ return pydantic.parse_obj_as(UrlResult, _response.json()) # type: ignore
152
188
  if _response.status_code == 422:
153
189
  raise UnprocessableEntityError(pydantic.parse_obj_as(HttpValidationError, _response.json())) # type: ignore
154
190
  try: