c63a5cfe-b235-4fbe-8bbb-82a9e02a482a-python 0.1.0a7__py3-none-any.whl → 0.1.0a9__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.
- {c63a5cfe_b235_4fbe_8bbb_82a9e02a482a_python-0.1.0a7.dist-info → c63a5cfe_b235_4fbe_8bbb_82a9e02a482a_python-0.1.0a9.dist-info}/METADATA +1 -1
- {c63a5cfe_b235_4fbe_8bbb_82a9e02a482a_python-0.1.0a7.dist-info → c63a5cfe_b235_4fbe_8bbb_82a9e02a482a_python-0.1.0a9.dist-info}/RECORD +15 -13
- gradientai/_client.py +4 -0
- gradientai/_streaming.py +40 -3
- gradientai/_version.py +1 -1
- gradientai/resources/agents/chat/completions.py +530 -5
- gradientai/resources/chat/completions.py +532 -5
- gradientai/types/agents/chat/__init__.py +1 -0
- gradientai/types/agents/chat/agent_chat_completion_chunk.py +93 -0
- gradientai/types/agents/chat/completion_create_params.py +23 -8
- gradientai/types/chat/__init__.py +1 -0
- gradientai/types/chat/chat_completion_chunk.py +93 -0
- gradientai/types/chat/completion_create_params.py +23 -8
- {c63a5cfe_b235_4fbe_8bbb_82a9e02a482a_python-0.1.0a7.dist-info → c63a5cfe_b235_4fbe_8bbb_82a9e02a482a_python-0.1.0a9.dist-info}/WHEEL +0 -0
- {c63a5cfe_b235_4fbe_8bbb_82a9e02a482a_python-0.1.0a7.dist-info → c63a5cfe_b235_4fbe_8bbb_82a9e02a482a_python-0.1.0a9.dist-info}/licenses/LICENSE +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: c63a5cfe-b235-4fbe-8bbb-82a9e02a482a-python
|
3
|
-
Version: 0.1.
|
3
|
+
Version: 0.1.0a9
|
4
4
|
Summary: The official Python library for GradientAI
|
5
5
|
Project-URL: Homepage, https://github.com/digitalocean/gradientai-python
|
6
6
|
Project-URL: Repository, https://github.com/digitalocean/gradientai-python
|
@@ -1,6 +1,6 @@
|
|
1
1
|
gradientai/__init__.py,sha256=yqy3yZnX0JVUS-H01MAvroChzqS67Qf072OrPfNckjI,2655
|
2
2
|
gradientai/_base_client.py,sha256=TADFnPHK7WpsNuJUY76SxMFf2IVoOdz_tlloQEXkutk,66719
|
3
|
-
gradientai/_client.py,sha256=
|
3
|
+
gradientai/_client.py,sha256=SwygmkQnjfqCEKgMA7rovhfWiEOk3BjyenunyiDS0F8,27425
|
4
4
|
gradientai/_compat.py,sha256=VWemUKbj6DDkQ-O4baSpHVLJafotzeXmCQGJugfVTIw,6580
|
5
5
|
gradientai/_constants.py,sha256=S14PFzyN9-I31wiV7SmIlL5Ga0MLHxdvegInGdXH7tM,462
|
6
6
|
gradientai/_exceptions.py,sha256=o1GvaW36c7_LMj5WasVKUBOpae8tzETBJsfbVphb3Vk,3228
|
@@ -9,9 +9,9 @@ gradientai/_models.py,sha256=G1vczEodX0vUySeVKbF-mbzlaObNL1oVAYH4c65agRk,29131
|
|
9
9
|
gradientai/_qs.py,sha256=AOkSz4rHtK4YI3ZU_kzea-zpwBUgEY8WniGmTPyEimc,4846
|
10
10
|
gradientai/_resource.py,sha256=4NZbH2h8dQ-t-DQPida4VANJ_oZJNA7qxV84mwJT8oM,1124
|
11
11
|
gradientai/_response.py,sha256=RhlDdupxTcKNyDDj045MZD3-a_lsEc3yjiOzxWg0cDc,28842
|
12
|
-
gradientai/_streaming.py,sha256=
|
12
|
+
gradientai/_streaming.py,sha256=3KH-GBmqhoS1KAOhecADOsbW9WuzhIi8wSdmrEj5PPA,11404
|
13
13
|
gradientai/_types.py,sha256=22gBoIuoGJ1R6l5nPwquWCRzJodKhO-3e7k22-h37JQ,6201
|
14
|
-
gradientai/_version.py,sha256=
|
14
|
+
gradientai/_version.py,sha256=aATDhXxfQvFSrVaXTkz4f895b3kBEp1bAJcYPj23INc,170
|
15
15
|
gradientai/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
16
16
|
gradientai/_utils/__init__.py,sha256=PNZ_QJuzZEgyYXqkO1HVhGkj5IU9bglVUcw7H-Knjzw,2062
|
17
17
|
gradientai/_utils/_logs.py,sha256=1QuZcxzSKHcqNFbPoz_pvfLD5eDfOMBzGMyanAm_2gw,787
|
@@ -39,7 +39,7 @@ gradientai/resources/agents/routes.py,sha256=pDoK5hUgluhz5awJ9FR_krF8DIbkRzLX__M
|
|
39
39
|
gradientai/resources/agents/versions.py,sha256=hmHDaawFkpqoUEYI4Vi5jckH3mamkPKupXO3cZccyKE,11546
|
40
40
|
gradientai/resources/agents/chat/__init__.py,sha256=BVAfz9TM3DT5W9f_mt0P9YRxL_MsUxKCWAH6u1iogmA,1041
|
41
41
|
gradientai/resources/agents/chat/chat.py,sha256=nt97777qa-xM71JQBKDFG_x7fUDJRvy6rF5LoBiMOKE,3698
|
42
|
-
gradientai/resources/agents/chat/completions.py,sha256=
|
42
|
+
gradientai/resources/agents/chat/completions.py,sha256=uYlI68LprqXL-W1hVRjd0tb3jutXYosKKMOEecuzpV8,46239
|
43
43
|
gradientai/resources/agents/evaluation_metrics/__init__.py,sha256=qUCsT_vI2TrZrUBPe8h-VMNBE4ytcoe0RXshDctV0g0,1198
|
44
44
|
gradientai/resources/agents/evaluation_metrics/evaluation_metrics.py,sha256=BueqcWT0lqbElo-lgntkr1s7J0-qi2KqEZV2qzc7dcI,7089
|
45
45
|
gradientai/resources/agents/evaluation_metrics/workspaces/__init__.py,sha256=Zf3wa7WSVOKyG1x9Fppny38_ewQCbdghxbptqGFVfOM,1054
|
@@ -47,7 +47,7 @@ gradientai/resources/agents/evaluation_metrics/workspaces/agents.py,sha256=AVgDN
|
|
47
47
|
gradientai/resources/agents/evaluation_metrics/workspaces/workspaces.py,sha256=iSQS3IW5xjOX5EsyJraoS5enwzrBARUhm6Xl1EgiICE,27079
|
48
48
|
gradientai/resources/chat/__init__.py,sha256=BVAfz9TM3DT5W9f_mt0P9YRxL_MsUxKCWAH6u1iogmA,1041
|
49
49
|
gradientai/resources/chat/chat.py,sha256=ANOEzzDATXj-onkkdtvVad9O-Dfwe7Uza7yfA_3bU4U,3696
|
50
|
-
gradientai/resources/chat/completions.py,sha256=
|
50
|
+
gradientai/resources/chat/completions.py,sha256=u_TvPvwNU79e3I5-v1P384LE5ysVz9gjJpYOKxnkl7E,47059
|
51
51
|
gradientai/resources/inference/__init__.py,sha256=5Yk9bdOpUJPTero0_CvA-GJvcU5_gVlN1jf5r2GGGPY,1055
|
52
52
|
gradientai/resources/inference/api_keys.py,sha256=xgWTFTp8IVRkw2nvXnfjBZPOTJyLUDIKlE7fSmb1y2I,22021
|
53
53
|
gradientai/resources/inference/inference.py,sha256=jBimuBx3kKsuwC3pgy-PPrWg1TryO_a108CC_xLS2-Y,3771
|
@@ -150,8 +150,9 @@ gradientai/types/agents/version_list_params.py,sha256=0_3DhUbFDRyjUnn2G4saFOvuot
|
|
150
150
|
gradientai/types/agents/version_list_response.py,sha256=Y0Y8CSPUPVHKRA3zTRRfQ8gC2aFyBacSCaGz-D5k8nk,2725
|
151
151
|
gradientai/types/agents/version_update_params.py,sha256=j9tOda5wXmSOHsmcxQONo2mM-hEtrYi5-19HfGU_XnI,379
|
152
152
|
gradientai/types/agents/version_update_response.py,sha256=nspPIkxQskT82tcW0JyG7bBVlXq_KU6CZzodTd9jfkQ,709
|
153
|
-
gradientai/types/agents/chat/__init__.py,sha256=
|
154
|
-
gradientai/types/agents/chat/
|
153
|
+
gradientai/types/agents/chat/__init__.py,sha256=VGhGOtQE4pcOIHKsOeLDYDpixc_5ExOfIJcR0q6AqvY,397
|
154
|
+
gradientai/types/agents/chat/agent_chat_completion_chunk.py,sha256=bktrs-Ao6uta3k4PVzBrreMKbArztBcsHIEa8uzIK9s,3058
|
155
|
+
gradientai/types/agents/chat/completion_create_params.py,sha256=ADEJ0N3MMsouT9AqBLE1-rho4FVVhlp9U9E-buqIAYs,7165
|
155
156
|
gradientai/types/agents/chat/completion_create_response.py,sha256=9uKS3memEoV0_Xd1CZwI0jQGsQyfVkhXRPGlRO3rUIc,2415
|
156
157
|
gradientai/types/agents/evaluation_metrics/__init__.py,sha256=XWH_utxMx-JwArRpr-rHQfmoxQRGK6GciKOllbkqg40,894
|
157
158
|
gradientai/types/agents/evaluation_metrics/workspace_create_params.py,sha256=LrccBST52BUMlIidiba8K_7vU9HLZW8TTQ2E227UF8Y,343
|
@@ -167,8 +168,9 @@ gradientai/types/agents/evaluation_metrics/workspaces/agent_list_params.py,sha25
|
|
167
168
|
gradientai/types/agents/evaluation_metrics/workspaces/agent_list_response.py,sha256=W4O5v1LoWh2hQJTpUm5SfQCYcv6Q9Yz1Id5Pm1sPQNA,503
|
168
169
|
gradientai/types/agents/evaluation_metrics/workspaces/agent_move_params.py,sha256=4INiLEvgT9UDqFbrGwp3nuWOzFhwv7sX_YCr1Um1RaQ,422
|
169
170
|
gradientai/types/agents/evaluation_metrics/workspaces/agent_move_response.py,sha256=j2uoTmFwnLNU7kGI5LZdPpMUxWmUk-HdQIVVDOwSy4Y,350
|
170
|
-
gradientai/types/chat/__init__.py,sha256=
|
171
|
-
gradientai/types/chat/
|
171
|
+
gradientai/types/chat/__init__.py,sha256=c-PmEwuvWZQ4CRBTs9gzbKAq2sxL7V7JlVxddeoaGl0,381
|
172
|
+
gradientai/types/chat/chat_completion_chunk.py,sha256=o1gDgYtzM477RmKWg-q5CE0tP3p0J7YKlZWaoqjCJOU,3046
|
173
|
+
gradientai/types/chat/completion_create_params.py,sha256=ADEJ0N3MMsouT9AqBLE1-rho4FVVhlp9U9E-buqIAYs,7165
|
172
174
|
gradientai/types/chat/completion_create_response.py,sha256=nNPWSXZYbyYLjT_ikVvDcjRw3f9eRGHFsUrLKtQHYGI,2413
|
173
175
|
gradientai/types/inference/__init__.py,sha256=4Dt7-03NeP9ehdHLkLsZMiL_YLQwZsl92D0mMoDQ5g0,857
|
174
176
|
gradientai/types/inference/api_key_create_params.py,sha256=MOy5Bdr1wNBqCvqzyZ0FLfFY2a97q6eXCzgCR1wcLAE,263
|
@@ -231,7 +233,7 @@ gradientai/types/shared/__init__.py,sha256=YA2_qLkZLySOac1HrqOfCTEz6GeipnjIJh1mK
|
|
231
233
|
gradientai/types/shared/api_links.py,sha256=Iq5iQwOkRYuwLcuDLk54dUfrq0f2ZVEOXSpF744gYgA,403
|
232
234
|
gradientai/types/shared/api_meta.py,sha256=-KyinzQqM5GSjD7E5xm7A4UALXAvLOyVNR1SYVOUFJM,297
|
233
235
|
gradientai/types/shared/chat_completion_token_logprob.py,sha256=6-ipUFfsXMf5L7FDFi127NaVkDtmEooVgGBF6Ts965A,1769
|
234
|
-
c63a5cfe_b235_4fbe_8bbb_82a9e02a482a_python-0.1.
|
235
|
-
c63a5cfe_b235_4fbe_8bbb_82a9e02a482a_python-0.1.
|
236
|
-
c63a5cfe_b235_4fbe_8bbb_82a9e02a482a_python-0.1.
|
237
|
-
c63a5cfe_b235_4fbe_8bbb_82a9e02a482a_python-0.1.
|
236
|
+
c63a5cfe_b235_4fbe_8bbb_82a9e02a482a_python-0.1.0a9.dist-info/METADATA,sha256=knvT5XUviLOr5lmtTU4M4N1a1_opUZDVrfNKXZM1nqM,15049
|
237
|
+
c63a5cfe_b235_4fbe_8bbb_82a9e02a482a_python-0.1.0a9.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
|
238
|
+
c63a5cfe_b235_4fbe_8bbb_82a9e02a482a_python-0.1.0a9.dist-info/licenses/LICENSE,sha256=AzxEF8mEks6hu5V_87CXF8gLdL875WeO8FmQtEZTFok,11341
|
239
|
+
c63a5cfe_b235_4fbe_8bbb_82a9e02a482a_python-0.1.0a9.dist-info/RECORD,,
|
gradientai/_client.py
CHANGED
@@ -117,6 +117,8 @@ class GradientAI(SyncAPIClient):
|
|
117
117
|
_strict_response_validation=_strict_response_validation,
|
118
118
|
)
|
119
119
|
|
120
|
+
self._default_stream_cls = Stream
|
121
|
+
|
120
122
|
@cached_property
|
121
123
|
def agents(self) -> AgentsResource:
|
122
124
|
from .resources.agents import AgentsResource
|
@@ -355,6 +357,8 @@ class AsyncGradientAI(AsyncAPIClient):
|
|
355
357
|
_strict_response_validation=_strict_response_validation,
|
356
358
|
)
|
357
359
|
|
360
|
+
self._default_stream_cls = AsyncStream
|
361
|
+
|
358
362
|
@cached_property
|
359
363
|
def agents(self) -> AsyncAgentsResource:
|
360
364
|
from .resources.agents import AsyncAgentsResource
|
gradientai/_streaming.py
CHANGED
@@ -9,7 +9,8 @@ from typing_extensions import Self, Protocol, TypeGuard, override, get_origin, r
|
|
9
9
|
|
10
10
|
import httpx
|
11
11
|
|
12
|
-
from ._utils import extract_type_var_from_base
|
12
|
+
from ._utils import is_mapping, extract_type_var_from_base
|
13
|
+
from ._exceptions import APIError
|
13
14
|
|
14
15
|
if TYPE_CHECKING:
|
15
16
|
from ._client import GradientAI, AsyncGradientAI
|
@@ -55,7 +56,25 @@ class Stream(Generic[_T]):
|
|
55
56
|
iterator = self._iter_events()
|
56
57
|
|
57
58
|
for sse in iterator:
|
58
|
-
|
59
|
+
if sse.data.startswith("[DONE]"):
|
60
|
+
break
|
61
|
+
|
62
|
+
data = sse.json()
|
63
|
+
if is_mapping(data) and data.get("error"):
|
64
|
+
message = None
|
65
|
+
error = data.get("error")
|
66
|
+
if is_mapping(error):
|
67
|
+
message = error.get("message")
|
68
|
+
if not message or not isinstance(message, str):
|
69
|
+
message = "An error occurred during streaming"
|
70
|
+
|
71
|
+
raise APIError(
|
72
|
+
message=message,
|
73
|
+
request=self.response.request,
|
74
|
+
body=data["error"],
|
75
|
+
)
|
76
|
+
|
77
|
+
yield process_data(data=data, cast_to=cast_to, response=response)
|
59
78
|
|
60
79
|
# Ensure the entire stream is consumed
|
61
80
|
for _sse in iterator:
|
@@ -119,7 +138,25 @@ class AsyncStream(Generic[_T]):
|
|
119
138
|
iterator = self._iter_events()
|
120
139
|
|
121
140
|
async for sse in iterator:
|
122
|
-
|
141
|
+
if sse.data.startswith("[DONE]"):
|
142
|
+
break
|
143
|
+
|
144
|
+
data = sse.json()
|
145
|
+
if is_mapping(data) and data.get("error"):
|
146
|
+
message = None
|
147
|
+
error = data.get("error")
|
148
|
+
if is_mapping(error):
|
149
|
+
message = error.get("message")
|
150
|
+
if not message or not isinstance(message, str):
|
151
|
+
message = "An error occurred during streaming"
|
152
|
+
|
153
|
+
raise APIError(
|
154
|
+
message=message,
|
155
|
+
request=self.response.request,
|
156
|
+
body=data["error"],
|
157
|
+
)
|
158
|
+
|
159
|
+
yield process_data(data=data, cast_to=cast_to, response=response)
|
123
160
|
|
124
161
|
# Ensure the entire stream is consumed
|
125
162
|
async for _sse in iterator:
|
gradientai/_version.py
CHANGED