visionai-sdk-python 2.2.0.dev1__py3-none-any.whl → 2.2.0.dev3__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.
- visionai_sdk_python/_base.py +46 -61
- visionai_sdk_python/async_client.py +50 -20
- visionai_sdk_python/auth/_mixin.py +1 -1
- visionai_sdk_python/auth/async_resource.py +15 -13
- visionai_sdk_python/auth/credentials.py +126 -68
- visionai_sdk_python/auth/resource.py +17 -13
- visionai_sdk_python/client.py +50 -20
- visionai_sdk_python/exceptions.py +51 -1
- visionai_sdk_python/relay/__init__.py +67 -0
- visionai_sdk_python/relay/protocol.py +178 -0
- visionai_sdk_python/vlm/async_resource.py +12 -18
- visionai_sdk_python/vlm/resource.py +12 -18
- {visionai_sdk_python-2.2.0.dev1.dist-info → visionai_sdk_python-2.2.0.dev3.dist-info}/METADATA +25 -10
- visionai_sdk_python-2.2.0.dev3.dist-info/RECORD +30 -0
- visionai_sdk_python-2.2.0.dev1.dist-info/RECORD +0 -28
- {visionai_sdk_python-2.2.0.dev1.dist-info → visionai_sdk_python-2.2.0.dev3.dist-info}/WHEEL +0 -0
- {visionai_sdk_python-2.2.0.dev1.dist-info → visionai_sdk_python-2.2.0.dev3.dist-info}/top_level.txt +0 -0
{visionai_sdk_python-2.2.0.dev1.dist-info → visionai_sdk_python-2.2.0.dev3.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: visionai-sdk-python
|
|
3
|
-
Version: 2.2.0.
|
|
3
|
+
Version: 2.2.0.dev3
|
|
4
4
|
Summary: VisionAI SDK for Python
|
|
5
5
|
Author-email: Tony Yang <tonyyang@linkervision.com>
|
|
6
6
|
Requires-Python: >=3.11
|
|
@@ -135,8 +135,8 @@ token = client.auth.login("user@example.com", "password")
|
|
|
135
135
|
### OAuth Client Credentials
|
|
136
136
|
|
|
137
137
|
A `ClientCredentials` (or `AsyncClientCredentials`) holds the token for one Platform
|
|
138
|
-
client: it is minted on first use, cached until
|
|
139
|
-
|
|
138
|
+
client: it is minted on first use, cached until shortly before it expires, and one
|
|
139
|
+
instance can serve any number of clients and your own requests.
|
|
140
140
|
|
|
141
141
|
```python
|
|
142
142
|
from visionai_sdk_python import Client, ClientCredentials
|
|
@@ -146,17 +146,32 @@ cred = ClientCredentials(
|
|
|
146
146
|
)
|
|
147
147
|
client = Client(auth_url="...", vlm_url="...", credential=cred) # vlm.chat() uses it
|
|
148
148
|
|
|
149
|
-
token = cred.get_token().token # for
|
|
149
|
+
token = cred.get_token().token # for a WebSocket upgrade or another library
|
|
150
|
+
|
|
151
|
+
# Any other HTTP call with the same token; a 401 gets one fresh token and one retry
|
|
152
|
+
nodes = client.request("GET", "https://vs.example.com/mgmt/nodes").json()
|
|
150
153
|
```
|
|
151
154
|
|
|
152
|
-
Platform
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
155
|
+
A mint is a Platform round trip and, on sites that cap client tokens, a scarce one:
|
|
156
|
+
concurrent callers share one mint, a refresh that fails keeps the current token while
|
|
157
|
+
Platform still accepts it, a 401 on a token minted more than 30 minutes ago buys a
|
|
158
|
+
replacement (`cred.invalidate(token)`; a younger one is kept, so a persistent 401
|
|
159
|
+
mints at most twice an hour), and after a 429 no mint is tried for an hour
|
|
160
|
+
(`RateLimitedError`). `get_token(force_refresh=True)` mints on demand.
|
|
157
161
|
|
|
158
162
|
`client.auth.get_access_token(client_id, client_secret)` still works and now builds a
|
|
159
|
-
`ClientCredentials` underneath
|
|
163
|
+
`ClientCredentials` underneath; it returns the cached token unless `force_refresh=True`.
|
|
164
|
+
A later `login()` or `set_token()` replaces the credential: the last explicit
|
|
165
|
+
authentication wins. `vlm_url` is optional for clients that only authenticate.
|
|
166
|
+
|
|
167
|
+
## Relay protocol (internal)
|
|
168
|
+
|
|
169
|
+
`visionai_sdk_python.relay` holds the wire format between platform-relay and
|
|
170
|
+
platform-edge-agent: the frame models, the constants and `parse_agent_frame()` /
|
|
171
|
+
`parse_relay_frame()` / `dump_frame()`. The spec is platform-service's
|
|
172
|
+
`docs/adr/0001-relay-protocol.md`; both sides import this module instead of keeping a
|
|
173
|
+
copy, and the ADR's JSON examples are this package's tests. It is internal to the
|
|
174
|
+
platform and not a public API.
|
|
160
175
|
|
|
161
176
|
## VLM Inference
|
|
162
177
|
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
visionai_sdk_python/__init__.py,sha256=EITFK0aQPAQN3BSnwTfrPAt1iu50pmuhXl0-jBSbiD4,774
|
|
2
|
+
visionai_sdk_python/_base.py,sha256=q8Ybwk9uEdaAFh85IRCHvsSpXEvYFosFYGhJAeQNIr4,9390
|
|
3
|
+
visionai_sdk_python/_jwt_verifier.py,sha256=h4CAK1iiDAJ-oKnXrLbCJw5rWcsVe94QNY12ne1Wzto,8442
|
|
4
|
+
visionai_sdk_python/_request_attribution.py,sha256=zQk_bSLsu1RTp1Fe3MGUUX8YRzq3iqfBTmhhjM7BuRU,1907
|
|
5
|
+
visionai_sdk_python/_source_header.py,sha256=DWiR-TGclET4UrqmAEO7bYPtf9XuLSE4FGQjZIgVWiY,5133
|
|
6
|
+
visionai_sdk_python/async_client.py,sha256=JHx7Kz3l84PdyHvgGPhpTKprRdSabXxjqazqUVj--rY,5542
|
|
7
|
+
visionai_sdk_python/client.py,sha256=0B3ut9iXsiZxveOIP8SEbTZwv3D0mDZ62D0ycIFOBC8,5352
|
|
8
|
+
visionai_sdk_python/constants.py,sha256=KWhoxZdlwqXwhUJDqERStq2mrms-MA8aRDqBwbIvNO0,1471
|
|
9
|
+
visionai_sdk_python/endpoints.py,sha256=CC-AoxXzg39sMAhqx1CTS3gRWKx_H7VOqBANRLVotoU,183
|
|
10
|
+
visionai_sdk_python/exceptions.py,sha256=BUpcoTgILc3z68lIQGyTYs7PCvu_BTSi228YMTx7ZWs,3020
|
|
11
|
+
visionai_sdk_python/instrumentation.py,sha256=tTTL5Op0fZULpmoOKW8dw8-2ReOQUEpMvHrf-R5C_yg,24512
|
|
12
|
+
visionai_sdk_python/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
13
|
+
visionai_sdk_python/auth/__init__.py,sha256=sWtanqUos5Q8P80IvjoyvOzXv6gYNkflop9qwDwsZk8,400
|
|
14
|
+
visionai_sdk_python/auth/_mixin.py,sha256=EDDhEB9jHc_7wEoLx_MprhToTVLekL5CyJuLTK8GhNM,5022
|
|
15
|
+
visionai_sdk_python/auth/async_resource.py,sha256=V6O51i7KyYSBkiQeKAbmw-EIKMVZIozO1gDexTX6tXw,5535
|
|
16
|
+
visionai_sdk_python/auth/credentials.py,sha256=nsZkavY8pDT39gZxFaKUcl-X_JfKKkc3Nkv9fSFFP4Y,10892
|
|
17
|
+
visionai_sdk_python/auth/models.py,sha256=u6MDFYaWMyf08XCrGZzwPHv43d6AElH9XO2QSjRsb3Q,449
|
|
18
|
+
visionai_sdk_python/auth/resource.py,sha256=3PgcxH8N6unKTs2jSQhMeJT_lg6bTce0hz0bzuID12U,5446
|
|
19
|
+
visionai_sdk_python/relay/__init__.py,sha256=N4DuhutN8P4EWZRFIaWTqvylNsLkzRSkHMRRF2pknFk,1296
|
|
20
|
+
visionai_sdk_python/relay/protocol.py,sha256=Hy7J4kgDxaKy0WOrtkmqD5xUFXgKAVXwTWX4NQ9yQHE,5561
|
|
21
|
+
visionai_sdk_python/vlm/__init__.py,sha256=EDd7ZG4k7inn8qqkyIhO3xI_4MPMWJT5Npsient-tTc,571
|
|
22
|
+
visionai_sdk_python/vlm/_mixin.py,sha256=TkqezNpW8QEe9pujsvx1APcylYQYr_PvHruEz4Le3JQ,1718
|
|
23
|
+
visionai_sdk_python/vlm/async_resource.py,sha256=meMUfBDa0g1hk7vFZq2fDuIQ1-QUpU0BUJtbvuG8UEY,3461
|
|
24
|
+
visionai_sdk_python/vlm/models.py,sha256=yDFjo4LfAxqXYBnl6ZW7YUJQoKKRkQWtqBJi2ruI6Jw,984
|
|
25
|
+
visionai_sdk_python/vlm/preprocess.py,sha256=ZpJJa13h8_YKwh_P7Pn8WIXV0x-r2xJi-ETgCFsGw-Y,7892
|
|
26
|
+
visionai_sdk_python/vlm/resource.py,sha256=4eMQ4ACcgd7nUfdRyADWmPd8yZ--uqQC4zwzBft68lg,3386
|
|
27
|
+
visionai_sdk_python-2.2.0.dev3.dist-info/METADATA,sha256=yaMgyrv9_edbxVHgdaOFTCc2EhV1YFjjZDaxa2D3Lt4,30403
|
|
28
|
+
visionai_sdk_python-2.2.0.dev3.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
|
|
29
|
+
visionai_sdk_python-2.2.0.dev3.dist-info/top_level.txt,sha256=79a5MCSLLv6Mbfun-8RS-G6O927hahBwDqJjeuWLdvM,20
|
|
30
|
+
visionai_sdk_python-2.2.0.dev3.dist-info/RECORD,,
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
visionai_sdk_python/__init__.py,sha256=EITFK0aQPAQN3BSnwTfrPAt1iu50pmuhXl0-jBSbiD4,774
|
|
2
|
-
visionai_sdk_python/_base.py,sha256=73Jq7OTNgY6naybpkdAIOyt-CHgEdtyD_TL5XBgERtU,9599
|
|
3
|
-
visionai_sdk_python/_jwt_verifier.py,sha256=h4CAK1iiDAJ-oKnXrLbCJw5rWcsVe94QNY12ne1Wzto,8442
|
|
4
|
-
visionai_sdk_python/_request_attribution.py,sha256=zQk_bSLsu1RTp1Fe3MGUUX8YRzq3iqfBTmhhjM7BuRU,1907
|
|
5
|
-
visionai_sdk_python/_source_header.py,sha256=DWiR-TGclET4UrqmAEO7bYPtf9XuLSE4FGQjZIgVWiY,5133
|
|
6
|
-
visionai_sdk_python/async_client.py,sha256=NbfWjAQcQ1xh53Q_Q9XQpQQSWGXhEge79cHHT6V2lnM,3924
|
|
7
|
-
visionai_sdk_python/client.py,sha256=5iyqh3jVX7iWG52dN0zzdFL05UJYs8yQAE9fOqkt55s,3768
|
|
8
|
-
visionai_sdk_python/constants.py,sha256=KWhoxZdlwqXwhUJDqERStq2mrms-MA8aRDqBwbIvNO0,1471
|
|
9
|
-
visionai_sdk_python/endpoints.py,sha256=CC-AoxXzg39sMAhqx1CTS3gRWKx_H7VOqBANRLVotoU,183
|
|
10
|
-
visionai_sdk_python/exceptions.py,sha256=UExz_lx7do154RyFobcYIaD_hDD-AExvMiOSDkKxe-0,1259
|
|
11
|
-
visionai_sdk_python/instrumentation.py,sha256=tTTL5Op0fZULpmoOKW8dw8-2ReOQUEpMvHrf-R5C_yg,24512
|
|
12
|
-
visionai_sdk_python/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
13
|
-
visionai_sdk_python/auth/__init__.py,sha256=sWtanqUos5Q8P80IvjoyvOzXv6gYNkflop9qwDwsZk8,400
|
|
14
|
-
visionai_sdk_python/auth/_mixin.py,sha256=qxn9wQxOtigcvbFGSmjv7Fu7-HCsIJVs1oqf-wfIN4w,5034
|
|
15
|
-
visionai_sdk_python/auth/async_resource.py,sha256=FnL9c4K7VFsXXMkY2mMPESYMS5fh08WvsqlY9tuvPSI,5341
|
|
16
|
-
visionai_sdk_python/auth/credentials.py,sha256=STuV_ygrvAZbqY6ElE_q612w65zRHAG8oXKBm8X0U1M,8471
|
|
17
|
-
visionai_sdk_python/auth/models.py,sha256=u6MDFYaWMyf08XCrGZzwPHv43d6AElH9XO2QSjRsb3Q,449
|
|
18
|
-
visionai_sdk_python/auth/resource.py,sha256=vFBf_27h2u6R1w3aXm5cDEpvS21RyiwgtDm0olZFpec,5238
|
|
19
|
-
visionai_sdk_python/vlm/__init__.py,sha256=EDd7ZG4k7inn8qqkyIhO3xI_4MPMWJT5Npsient-tTc,571
|
|
20
|
-
visionai_sdk_python/vlm/_mixin.py,sha256=TkqezNpW8QEe9pujsvx1APcylYQYr_PvHruEz4Le3JQ,1718
|
|
21
|
-
visionai_sdk_python/vlm/async_resource.py,sha256=2TlLFiyiiQBvGR1BQHZVH_swCdKLANPZTOOD4fRIa0Y,3703
|
|
22
|
-
visionai_sdk_python/vlm/models.py,sha256=yDFjo4LfAxqXYBnl6ZW7YUJQoKKRkQWtqBJi2ruI6Jw,984
|
|
23
|
-
visionai_sdk_python/vlm/preprocess.py,sha256=ZpJJa13h8_YKwh_P7Pn8WIXV0x-r2xJi-ETgCFsGw-Y,7892
|
|
24
|
-
visionai_sdk_python/vlm/resource.py,sha256=UK_FNkQbnXlIkq0MTVav4vRRNE-p6QnWg-RL_ACGZhc,3616
|
|
25
|
-
visionai_sdk_python-2.2.0.dev1.dist-info/METADATA,sha256=0_CPJjTYkmwvxCw5n3_V0vt0UzwhO2KdwrAmgNONtOk,29494
|
|
26
|
-
visionai_sdk_python-2.2.0.dev1.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
|
|
27
|
-
visionai_sdk_python-2.2.0.dev1.dist-info/top_level.txt,sha256=79a5MCSLLv6Mbfun-8RS-G6O927hahBwDqJjeuWLdvM,20
|
|
28
|
-
visionai_sdk_python-2.2.0.dev1.dist-info/RECORD,,
|
|
File without changes
|
{visionai_sdk_python-2.2.0.dev1.dist-info → visionai_sdk_python-2.2.0.dev3.dist-info}/top_level.txt
RENAMED
|
File without changes
|