exa-py 1.14.9__py3-none-any.whl → 1.14.10__py3-none-any.whl

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.

Potentially problematic release.


This version of exa-py might be problematic. Click here for more details.

exa_py/api.py CHANGED
@@ -1909,7 +1909,7 @@ class Exa:
1909
1909
  query (str): The query to answer.
1910
1910
  text (bool, optional): Whether to include full text in the results. Defaults to False.
1911
1911
  system_prompt (str, optional): A system prompt to guide the LLM's behavior when generating the answer.
1912
- model (str, optional): The model to use for answering. Either "exa" or "exa-pro". Defaults to None.
1912
+ model (str, optional): The model to use for answering. Defaults to None.
1913
1913
  output_schema (dict[str, Any], optional): JSON schema describing the desired answer structure.
1914
1914
 
1915
1915
  Returns:
@@ -1948,7 +1948,7 @@ class Exa:
1948
1948
  query (str): The query to answer.
1949
1949
  text (bool): Whether to include full text in the results. Defaults to False.
1950
1950
  system_prompt (str, optional): A system prompt to guide the LLM's behavior when generating the answer.
1951
- model (str, optional): The model to use for answering. Either "exa" or "exa-pro". Defaults to None.
1951
+ model (str, optional): The model to use for answering. Defaults to None.
1952
1952
  output_schema (dict[str, Any], optional): JSON schema describing the desired answer structure.
1953
1953
  Returns:
1954
1954
  StreamAnswerResponse: An object that can be iterated over to retrieve (partial text, partial citations).
@@ -2253,7 +2253,7 @@ class AsyncExa(Exa):
2253
2253
  query (str): The query to answer.
2254
2254
  text (bool, optional): Whether to include full text in the results. Defaults to False.
2255
2255
  system_prompt (str, optional): A system prompt to guide the LLM's behavior when generating the answer.
2256
- model (str, optional): The model to use for answering. Either "exa" or "exa-pro". Defaults to None.
2256
+ model (str, optional): The model to use for answering. Defaults to None.
2257
2257
  output_schema (dict[str, Any], optional): JSON schema describing the desired answer structure.
2258
2258
 
2259
2259
  Returns:
@@ -2292,7 +2292,7 @@ class AsyncExa(Exa):
2292
2292
  query (str): The query to answer.
2293
2293
  text (bool): Whether to include full text in the results. Defaults to False.
2294
2294
  system_prompt (str, optional): A system prompt to guide the LLM's behavior when generating the answer.
2295
- model (str, optional): The model to use for answering. Either "exa" or "exa-pro". Defaults to None.
2295
+ model (str, optional): The model to use for answering. Defaults to None.
2296
2296
  output_schema (dict[str, Any], optional): JSON schema describing the desired answer structure.
2297
2297
  Returns:
2298
2298
  AsyncStreamAnswerResponse: An object that can be iterated over to retrieve (partial text, partial citations).
@@ -0,0 +1,42 @@
1
+ {% for decorator in decorators -%}
2
+ {{ decorator }}
3
+ {% endfor -%}
4
+ class {{ class_name }}({{ base_class }}):{% if comment is defined %} # {{ comment }}{% endif %}
5
+ {%- if description %}
6
+ """
7
+ {{ description | indent(4) }}
8
+ """
9
+ {%- endif %}
10
+ {%- if not fields and not description %}
11
+ pass
12
+ {%- endif %}
13
+ {%- if config %}
14
+ {%- filter indent(4) %}
15
+ {%- endfilter %}
16
+ {%- endif %}
17
+ {%- for field in fields -%}
18
+ {%- if field.name == "type" and field.field %}
19
+ type: Literal['{{ field.default }}']
20
+ {%- elif field.name == "object" and field.field %}
21
+ object: Literal['{{ field.default }}']
22
+ {%- elif not field.annotated and field.field %}
23
+ {{ field.name }}: {{ field.type_hint }} = {{ field.field }}
24
+ {%- else %}
25
+ {%- if field.annotated %}
26
+ {{ field.name }}: {{ field.annotated }}
27
+ {%- else %}
28
+ {{ field.name }}: {{ field.type_hint }}
29
+ {%- endif %}
30
+ {%- if not (field.required or (field.represented_default == 'None' and field.strip_default_none)) or field.data_type.is_optional
31
+ %} = {{ field.represented_default }}
32
+ {%- endif -%}
33
+ {%- endif %}
34
+ {%- if field.docstring %}
35
+ """
36
+ {{ field.docstring | indent(4) }}
37
+ """
38
+ {%- endif %}
39
+ {%- for method in methods -%}
40
+ {{ method }}
41
+ {%- endfor -%}
42
+ {%- endfor -%}
@@ -1,20 +1,24 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.3
2
2
  Name: exa-py
3
- Version: 1.14.9
3
+ Version: 1.14.10
4
4
  Summary: Python SDK for Exa API.
5
- Home-page: https://github.com/exa-labs/exa-py
6
- Author: Exa
7
- Author-email: Exa AI <hello@exa.ai>
8
5
  License: MIT
6
+ Author: Exa AI
7
+ Author-email: hello@exa.ai
9
8
  Requires-Python: >=3.9
9
+ Classifier: License :: OSI Approved :: MIT License
10
+ Classifier: Programming Language :: Python :: 3
11
+ Classifier: Programming Language :: Python :: 3.9
12
+ Classifier: Programming Language :: Python :: 3.10
13
+ Classifier: Programming Language :: Python :: 3.11
14
+ Classifier: Programming Language :: Python :: 3.12
15
+ Classifier: Programming Language :: Python :: 3.13
16
+ Requires-Dist: httpx (>=0.28.1)
17
+ Requires-Dist: openai (>=1.48)
18
+ Requires-Dist: pydantic (>=2.10.6)
19
+ Requires-Dist: requests (>=2.32.3)
20
+ Requires-Dist: typing-extensions (>=4.12.2)
10
21
  Description-Content-Type: text/markdown
11
- Requires-Dist: requests>=2.32.3
12
- Requires-Dist: typing-extensions>=4.12.2
13
- Requires-Dist: openai>=1.48
14
- Requires-Dist: pydantic>=2.10.6
15
- Requires-Dist: httpx>=0.28.1
16
- Dynamic: author
17
- Dynamic: home-page
18
22
 
19
23
  # Exa
20
24
 
@@ -81,8 +85,8 @@ exa = Exa(api_key="your-api-key")
81
85
  # basic answer
82
86
  response = exa.answer("This is a query to answer a question")
83
87
 
84
- # answer with full text, using the exa-pro model (sends 2 expanded quries to exa search)
85
- response = exa.answer("This is a query to answer a question", text=True, model="exa-pro")
88
+ # answer with full text
89
+ response = exa.answer("This is a query to answer a question", text=True)
86
90
 
87
91
  # answer with streaming
88
92
  response = exa.stream_answer("This is a query to answer:")
@@ -126,3 +130,4 @@ exa = Exa(api_key="your-api-key")
126
130
  output_schema=OUTPUT_SCHEMA,
127
131
  )
128
132
  ```
133
+
@@ -1,13 +1,13 @@
1
1
  exa_py/__init__.py,sha256=M2GC9oSdoV6m2msboW0vMWWl8wrth4o6gmEV4MYLGG8,66
2
- exa_py/api.py,sha256=fxXFy4IkHFywVcRBXxpi6aXQwE1n_R8jiFgPkZWdhBY,86475
2
+ exa_py/api.py,sha256=qcEmAuPaP2B6890OKIvAJRG0qofTu4i4TGXbQlqzDoU,86367
3
3
  exa_py/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
- exa_py/utils.py,sha256=Rc1FJjoR9LQ7L_OJM91Sd1GNkbHjcLyEvJENhRix6gc,2405
5
4
  exa_py/research/__init__.py,sha256=QeY-j6bP4QP5tF9ytX0IeQhJvd0Wn4cJCD69U8pP7kA,271
6
5
  exa_py/research/client.py,sha256=C2ukFq_dE1xUfhMlHwpD9cY5rDClgn8N92pH4_FEVpE,11901
7
6
  exa_py/research/models.py,sha256=j7YgRoMRp2MLgnaij7775x_hJEeV5gksKpfLwmawqxY,3704
7
+ exa_py/utils.py,sha256=Rc1FJjoR9LQ7L_OJM91Sd1GNkbHjcLyEvJENhRix6gc,2405
8
8
  exa_py/websets/__init__.py,sha256=6HQWR8_ABPeZx2sHfwGV4QQf1Eh8MRaO-kzoIO_1ua8,126
9
+ exa_py/websets/_generator/pydantic/BaseModel.jinja2,sha256=RUDCmPZVamoVx1WudylscYFfDhGoNNtRYlpTvKjAiuA,1276
9
10
  exa_py/websets/client.py,sha256=nP0XZAEMIFvinb1DJ6gNF-8jCnKMUmBun5wZ9EgeZ0M,4891
10
- exa_py/websets/types.py,sha256=UC41VqvBcUueSqUjxmb0nLb-c7qmScoNkcmdyp9npqY,41736
11
11
  exa_py/websets/core/__init__.py,sha256=xOyrFaqtBocMUu321Jpbk7IzIQRNZufSIGJXrKoG-Bg,323
12
12
  exa_py/websets/core/base.py,sha256=thVIeRtlabbvueP0dAni5Nwtl9AWYv1I1Mmyc_jlYO0,4086
13
13
  exa_py/websets/enrichments/__init__.py,sha256=5dJIEKKceUost3RnI6PpCSB3VjUCBzxseEsIXu-ZY-Y,83
@@ -22,9 +22,9 @@ exa_py/websets/monitors/runs/__init__.py,sha256=TmcETf3zdQouA_vAeLiosCNL1MYJnZ0y
22
22
  exa_py/websets/monitors/runs/client.py,sha256=WnwcWCf7UKk68VCNUp8mRXBtlU8vglTSX-eoWVXzKIw,1229
23
23
  exa_py/websets/searches/__init__.py,sha256=_0Zx8ES5fFTEL3T8mhLxq_xK2t0JONx6ad6AtbvClsE,77
24
24
  exa_py/websets/searches/client.py,sha256=X3f7axWGfecmxf-2tBTX0Yf_--xToz1X8ZHbbudEzy0,1790
25
+ exa_py/websets/types.py,sha256=UC41VqvBcUueSqUjxmb0nLb-c7qmScoNkcmdyp9npqY,41736
25
26
  exa_py/websets/webhooks/__init__.py,sha256=iTPBCxFd73z4RifLQMX6iRECx_6pwlI5qscLNjMOUHE,77
26
27
  exa_py/websets/webhooks/client.py,sha256=zsIRMTeJU65yj-zo7Zz-gG02Prtzgcx6utGFSoY4HQQ,4222
27
- exa_py-1.14.9.dist-info/METADATA,sha256=E-1z7mgrIbcarhA9qdv9wwXSAqb_12bVYvFfYF3o-po,3800
28
- exa_py-1.14.9.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
29
- exa_py-1.14.9.dist-info/top_level.txt,sha256=Mfkmscdw9HWR1PtVhU1gAiVo6DHu_tyiVdb89gfZBVI,7
30
- exa_py-1.14.9.dist-info/RECORD,,
28
+ exa_py-1.14.10.dist-info/METADATA,sha256=lBJuJsuRLqjtBfgrhrHsTKl8horGLXVT4KJZNMGjm-s,4001
29
+ exa_py-1.14.10.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
30
+ exa_py-1.14.10.dist-info/RECORD,,
@@ -1,5 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.9.0)
2
+ Generator: poetry-core 2.1.3
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
-
@@ -1 +0,0 @@
1
- exa_py