athena-intelligence 0.1.15__py3-none-any.whl → 0.1.17__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.
@@ -14,7 +14,7 @@ class BaseClientWrapper:
14
14
  headers: typing.Dict[str, str] = {
15
15
  "X-Fern-Language": "Python",
16
16
  "X-Fern-SDK-Name": "athena-intelligence",
17
- "X-Fern-SDK-Version": "0.1.15",
17
+ "X-Fern-SDK-Version": "0.1.17",
18
18
  }
19
19
  headers["X-API-KEY"] = self.api_key
20
20
  return headers
@@ -17,7 +17,7 @@ OMIT = typing.cast(typing.Any, ...)
17
17
 
18
18
  class MessagePollingClient(MessageClient):
19
19
 
20
- def submit( # type: ignore
20
+ def submit_and_poll(
21
21
  self,
22
22
  *,
23
23
  content: str,
@@ -49,7 +49,6 @@ class MessagePollingClient(MessageClient):
49
49
 
50
50
  client = Athena(
51
51
  api_key="YOUR_API_KEY",
52
- token="YOUR_TOKEN",
53
52
  )
54
53
  client.message.submit(
55
54
  content="visit www.athenaintelligence.ai and summarize the website in one paragraph",
@@ -65,8 +64,7 @@ class MessagePollingClient(MessageClient):
65
64
  conversation_name=conversation_name,
66
65
  request_options=request_options)
67
66
  message = self.get(id=response.id)
68
- while message.status != StatusEnum.RESPONDED \
69
- or message.status != StatusEnum.ERROR:
67
+ while message.status == StatusEnum.PENDING:
70
68
  time.sleep(poll_interval)
71
69
  message = self.get(id=message.id)
72
70
  return message
@@ -74,7 +72,7 @@ class MessagePollingClient(MessageClient):
74
72
 
75
73
  class AsyncMessagePollingClient(AsyncMessageClient):
76
74
 
77
- async def submit( # type: ignore
75
+ async def submit_and_poll(
78
76
  self,
79
77
  *,
80
78
  content: str,
@@ -121,8 +119,7 @@ class AsyncMessagePollingClient(AsyncMessageClient):
121
119
  conversation_name=conversation_name,
122
120
  request_options=request_options)
123
121
  message = await self.get(id=response.id)
124
- while message.status != StatusEnum.RESPONDED \
125
- or message.status != StatusEnum.ERROR:
122
+ while message.status == StatusEnum.PENDING:
126
123
  time.sleep(poll_interval)
127
124
  message = await self.get(id=message.id)
128
- return message
125
+ return message
athena/types/model.py CHANGED
@@ -14,12 +14,14 @@ class Model(str, enum.Enum):
14
14
  GPT_35_TURBO = "gpt-3.5-turbo"
15
15
  GPT_4_TURBO_PREVIEW = "gpt-4-turbo-preview"
16
16
  MIXTRAL_SMALL_8_X_7_B_0211 = "mixtral-small-8x7b-0211"
17
+ MISTRAL_LARGE_0224 = "mistral-large-0224"
17
18
 
18
19
  def visit(
19
20
  self,
20
21
  gpt_35_turbo: typing.Callable[[], T_Result],
21
22
  gpt_4_turbo_preview: typing.Callable[[], T_Result],
22
23
  mixtral_small_8_x_7_b_0211: typing.Callable[[], T_Result],
24
+ mistral_large_0224: typing.Callable[[], T_Result],
23
25
  ) -> T_Result:
24
26
  if self is Model.GPT_35_TURBO:
25
27
  return gpt_35_turbo()
@@ -27,3 +29,5 @@ class Model(str, enum.Enum):
27
29
  return gpt_4_turbo_preview()
28
30
  if self is Model.MIXTRAL_SMALL_8_X_7_B_0211:
29
31
  return mixtral_small_8_x_7_b_0211()
32
+ if self is Model.MISTRAL_LARGE_0224:
33
+ return mistral_large_0224()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: athena-intelligence
3
- Version: 0.1.15
3
+ Version: 0.1.17
4
4
  Summary:
5
5
  Requires-Python: >=3.8,<4.0
6
6
  Classifier: Programming Language :: Python :: 3
@@ -39,11 +39,16 @@ Simply import `Athena` and start making calls to our API.
39
39
 
40
40
  ```python
41
41
  from athena.client import Athena
42
+ from athena import Model, Tools
42
43
 
43
44
  client = Athena(
44
45
  api_key="YOUR_API_KEY" # Defaults to ATHENA_API_KEY
45
46
  )
46
- message = client.messages.get("message_id")
47
+ message = client.message.submit(
48
+ content="visit www.athenaintelligence.ai and summarize the website in one paragraph",
49
+ model=Model.GPT_3_5_TURBO,
50
+ tools=[Tools.SEARCH, Tools.BROWSE, Tools.SEARCH],
51
+ )
47
52
  ```
48
53
 
49
54
  ## Async Client
@@ -52,18 +57,42 @@ calls to our API.
52
57
 
53
58
  ```python
54
59
  from athena.client import AsyncAthena
60
+ from athena import Model, Tools
55
61
 
56
62
  client = AsyncAthena(
57
63
  api_key="YOUR_API_KEY" # Defaults to ATHENA_API_KEY
58
64
  )
59
65
 
60
66
  async def main() -> None:
61
- message = client.messages.get("message_id")
67
+ message = client.message.submit(
68
+ content="visit www.athenaintelligence.ai and summarize the website in one paragraph",
69
+ model=Model.GPT_3_5_TURBO,
70
+ tools=[Tools.SEARCH, Tools.BROWSE, Tools.SEARCH],
71
+ )
62
72
  print("Received message", message)
63
73
 
64
74
  asyncio.run(main())
65
75
  ```
66
76
 
77
+ ## Polling
78
+ The SDK provides helper functions that will automatically poll when
79
+ retrieving a message. Use the `submit_and_poll` method as shown below:
80
+
81
+ ```python
82
+ from athena.client import Athena
83
+ from athena import Model, Tools
84
+
85
+ client = Athena(api_key="...")
86
+ message = client.message.submit_and_poll(
87
+ content="visit www.athenaintelligence.ai and summarize the website in one paragraph",
88
+ model=Model.GPT_3_5_TURBO,
89
+ tools=[Tools.SEARCH, Tools.BROWSE, Tools.SEARCH],
90
+ )
91
+ ```
92
+
93
+ By default, the method will poll every 2 seconds but you can override
94
+ this with the `poll_interval` argument.
95
+
67
96
  ## Athena Module
68
97
  All of the models are nested within the Athena module. Let IntelliSense
69
98
  guide you!
@@ -2,7 +2,7 @@ athena/__init__.py,sha256=Prn1DsBOMu9g_ClmWZR6GIfi_3F-tZJ317hdudgLrQc,595
2
2
  athena/client.py,sha256=nFVJkayT6k0-DeqX-Ef7eVB-VHLHEq6wsqaZHy5Pp48,4004
3
3
  athena/core/__init__.py,sha256=95onSWXymaL0iV-nBsuKNgjh1LbsymAkRkx7POn1nc0,696
4
4
  athena/core/api_error.py,sha256=RE8LELok2QCjABadECTvtDp7qejA1VmINCh6TbqPwSE,426
5
- athena/core/client_wrapper.py,sha256=yjNC9j-BOq7sIqTbzhMGi3pQY6-in2qROV5SFaSpDBE,1089
5
+ athena/core/client_wrapper.py,sha256=nenzqERD-XkoSQKEVXB33q0zDcutfpvVbfYEdlSCsiA,1089
6
6
  athena/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
7
7
  athena/core/file.py,sha256=sy1RUGZ3aJYuw998bZytxxo6QdgKmlnlgBaMvwEKCGg,1480
8
8
  athena/core/jsonable_encoder.py,sha256=MTYkDov2EryHgee4QM46uZiBOuOXK9KTHlBdBwU-CpU,3799
@@ -13,17 +13,17 @@ athena/errors/__init__.py,sha256=pbbVUFtB9LCocA1RMWMMF_RKjsy5YkOKX5BAuE49w6g,170
13
13
  athena/errors/unprocessable_entity_error.py,sha256=FvR7XPlV3Xx5nu8HNlmLhBRdk4so_gCHjYT5PyZe6sM,313
14
14
  athena/message/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
15
15
  athena/message/client.py,sha256=KUdDnXGBMxWsr9FQ_GjzJGprOBd1_rOwAuLY7QJNjJQ,11741
16
- athena/polling_message_client.py,sha256=cWkF7nacXRtEj_r3Nud_Qq3XVAFbHoqK1EYJwbXiNRU,4159
16
+ athena/polling_message_client.py,sha256=dmmycImvog2niEFFPo4rE5xMJHUlq9NqAr4xlFK6_Os,3998
17
17
  athena/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
18
  athena/types/__init__.py,sha256=tcRJeTt7Xlrribx1EwOB3mKiUsHUKFP0vojjIWYHE74,571
19
19
  athena/types/http_validation_error.py,sha256=Fcv_CTMMrLvCeTHjF0n5xf5tskMDgt-J6H9gp654eQw,973
20
20
  athena/types/message_out.py,sha256=uvZY_Podv2XccEk8CICug9I_S2hFJTSzCBwcHiauW7A,865
21
21
  athena/types/message_out_dto.py,sha256=qgRibRbDNOWVnVGP7Rribh9WdoCT2CSiPUXeIWECqq4,1051
22
- athena/types/model.py,sha256=xyD4lk5YWZTzYQc6f76FUBOQe4_jTHSS8edSzOY5eQc,830
22
+ athena/types/model.py,sha256=yZyzOojHN4mRCd-ITHJNiKZDpQhy7LKZcM9_saJ0qy4,1020
23
23
  athena/types/status_enum.py,sha256=0UZbhdAx215GHC-U53RS98mYHtn1N3On4VBe4j02Qtc,672
24
24
  athena/types/tools.py,sha256=Vfb-D9CYcPZH6MBATNODgfXjFyBpCs4qbkqpCMl7eBM,1277
25
25
  athena/types/validation_error.py,sha256=2JhGNJouo8QpfrMBoT_JCwYSn1nFN2Nnq0p9uPLDH-U,992
26
26
  athena/types/validation_error_loc_item.py,sha256=LAtjCHIllWRBFXvAZ5QZpp7CPXjdtN9EB7HrLVo6EP0,128
27
- athena_intelligence-0.1.15.dist-info/METADATA,sha256=iRONe2pK-3_nLA5ZNzVk4YPmO0LSnQPW-TYq4X_O4KE,3742
28
- athena_intelligence-0.1.15.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
29
- athena_intelligence-0.1.15.dist-info/RECORD,,
27
+ athena_intelligence-0.1.17.dist-info/METADATA,sha256=HcVpNxrLjXUYWCGsEofNrYTTBS-k0jl5amJKLzeYov4,4738
28
+ athena_intelligence-0.1.17.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
29
+ athena_intelligence-0.1.17.dist-info/RECORD,,