agent-lab-sdk 0.1.39__tar.gz → 0.1.40__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.

Potentially problematic release.


This version of agent-lab-sdk might be problematic. Click here for more details.

Files changed (28) hide show
  1. {agent_lab_sdk-0.1.39 → agent_lab_sdk-0.1.40}/PKG-INFO +27 -2
  2. {agent_lab_sdk-0.1.39 → agent_lab_sdk-0.1.40}/README.md +26 -1
  3. agent_lab_sdk-0.1.40/agent_lab_sdk/storage/__init__.py +4 -0
  4. agent_lab_sdk-0.1.40/agent_lab_sdk/storage/storage_v2.py +66 -0
  5. {agent_lab_sdk-0.1.39 → agent_lab_sdk-0.1.40}/agent_lab_sdk.egg-info/PKG-INFO +27 -2
  6. {agent_lab_sdk-0.1.39 → agent_lab_sdk-0.1.40}/agent_lab_sdk.egg-info/SOURCES.txt +2 -1
  7. {agent_lab_sdk-0.1.39 → agent_lab_sdk-0.1.40}/pyproject.toml +1 -1
  8. agent_lab_sdk-0.1.39/agent_lab_sdk/storage/__init__.py +0 -3
  9. {agent_lab_sdk-0.1.39 → agent_lab_sdk-0.1.40}/LICENSE +0 -0
  10. {agent_lab_sdk-0.1.39 → agent_lab_sdk-0.1.40}/agent_lab_sdk/__init__.py +0 -0
  11. {agent_lab_sdk-0.1.39 → agent_lab_sdk-0.1.40}/agent_lab_sdk/langgraph/checkpoint/__init__.py +0 -0
  12. {agent_lab_sdk-0.1.39 → agent_lab_sdk-0.1.40}/agent_lab_sdk/langgraph/checkpoint/agw_saver.py +0 -0
  13. {agent_lab_sdk-0.1.39 → agent_lab_sdk-0.1.40}/agent_lab_sdk/langgraph/checkpoint/serde.py +0 -0
  14. {agent_lab_sdk-0.1.39 → agent_lab_sdk-0.1.40}/agent_lab_sdk/llm/__init__.py +0 -0
  15. {agent_lab_sdk-0.1.39 → agent_lab_sdk-0.1.40}/agent_lab_sdk/llm/agw_token_manager.py +0 -0
  16. {agent_lab_sdk-0.1.39 → agent_lab_sdk-0.1.40}/agent_lab_sdk/llm/gigachat_token_manager.py +0 -0
  17. {agent_lab_sdk-0.1.39 → agent_lab_sdk-0.1.40}/agent_lab_sdk/llm/llm.py +0 -0
  18. {agent_lab_sdk-0.1.39 → agent_lab_sdk-0.1.40}/agent_lab_sdk/llm/throttled.py +0 -0
  19. {agent_lab_sdk-0.1.39 → agent_lab_sdk-0.1.40}/agent_lab_sdk/metrics/__init__.py +0 -0
  20. {agent_lab_sdk-0.1.39 → agent_lab_sdk-0.1.40}/agent_lab_sdk/metrics/metrics.py +0 -0
  21. {agent_lab_sdk-0.1.39 → agent_lab_sdk-0.1.40}/agent_lab_sdk/schema/__init__.py +0 -0
  22. {agent_lab_sdk-0.1.39 → agent_lab_sdk-0.1.40}/agent_lab_sdk/schema/input_types.py +0 -0
  23. {agent_lab_sdk-0.1.39 → agent_lab_sdk-0.1.40}/agent_lab_sdk/schema/log_message.py +0 -0
  24. {agent_lab_sdk-0.1.39 → agent_lab_sdk-0.1.40}/agent_lab_sdk/storage/storage.py +0 -0
  25. {agent_lab_sdk-0.1.39 → agent_lab_sdk-0.1.40}/agent_lab_sdk.egg-info/dependency_links.txt +0 -0
  26. {agent_lab_sdk-0.1.39 → agent_lab_sdk-0.1.40}/agent_lab_sdk.egg-info/requires.txt +0 -0
  27. {agent_lab_sdk-0.1.39 → agent_lab_sdk-0.1.40}/agent_lab_sdk.egg-info/top_level.txt +0 -0
  28. {agent_lab_sdk-0.1.39 → agent_lab_sdk-0.1.40}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agent-lab-sdk
3
- Version: 0.1.39
3
+ Version: 0.1.40
4
4
  Summary: SDK для работы с Agent Lab
5
5
  Author-email: Andrew Ohurtsov <andermirik@yandex.com>
6
6
  License: Proprietary and Confidential — All Rights Reserved
@@ -220,7 +220,32 @@ from agent_lab_sdk.storage import store_file_in_sd_asset
220
220
  store_file_in_storage("my-agent-name-filename.png", file_b64, "giga-agents")
221
221
  ```
222
222
 
223
- ### 4.2 AGW Checkpointer
223
+ ### 4.2 V2 File Upload
224
+
225
+ Новый v2 API для загрузки файлов через Agent Gateway с поддержкой бинарных данных и автоматическим выбором сервиса хранения.
226
+
227
+ ```python
228
+ from agent_lab_sdk.storage import upload_file, FileUploadResponse
229
+
230
+ # Загрузка из байтов
231
+ with open("document.pdf", "rb") as f:
232
+ file_bytes = f.read()
233
+ result: FileUploadResponse = upload_file("document.pdf", file_bytes)
234
+
235
+ # Результат - Pydantic модель с информацией о файле
236
+ print(f"File ID: {result.id}")
237
+ print(f"Absolute Path: {result.absolute_path}")
238
+ print(f"Storage: {result.storage}")
239
+ ```
240
+
241
+ #### Переменные окружения для V2 Upload
242
+
243
+ | Переменная | Описание | Значение по умолчанию |
244
+ | -------------------------- | ---------------------------------- | --------------------- |
245
+ | `AGENT_SERVICE_NAME` | Имя сервиса агента (обязательно) | - |
246
+ | `STORAGE_PROVIDER_AGW_URL` | URL Agent Gateway | `http://localhost` |
247
+
248
+ ### 4.3 AGW Checkpointer
224
249
 
225
250
  AGW поддерживает langgraph checkpoint API и в SDK представлен `AsyncAGWCheckpointSaver`, который позволяет сохранять состояние графа в AGW напрямую.
226
251
 
@@ -190,7 +190,32 @@ from agent_lab_sdk.storage import store_file_in_sd_asset
190
190
  store_file_in_storage("my-agent-name-filename.png", file_b64, "giga-agents")
191
191
  ```
192
192
 
193
- ### 4.2 AGW Checkpointer
193
+ ### 4.2 V2 File Upload
194
+
195
+ Новый v2 API для загрузки файлов через Agent Gateway с поддержкой бинарных данных и автоматическим выбором сервиса хранения.
196
+
197
+ ```python
198
+ from agent_lab_sdk.storage import upload_file, FileUploadResponse
199
+
200
+ # Загрузка из байтов
201
+ with open("document.pdf", "rb") as f:
202
+ file_bytes = f.read()
203
+ result: FileUploadResponse = upload_file("document.pdf", file_bytes)
204
+
205
+ # Результат - Pydantic модель с информацией о файле
206
+ print(f"File ID: {result.id}")
207
+ print(f"Absolute Path: {result.absolute_path}")
208
+ print(f"Storage: {result.storage}")
209
+ ```
210
+
211
+ #### Переменные окружения для V2 Upload
212
+
213
+ | Переменная | Описание | Значение по умолчанию |
214
+ | -------------------------- | ---------------------------------- | --------------------- |
215
+ | `AGENT_SERVICE_NAME` | Имя сервиса агента (обязательно) | - |
216
+ | `STORAGE_PROVIDER_AGW_URL` | URL Agent Gateway | `http://localhost` |
217
+
218
+ ### 4.3 AGW Checkpointer
194
219
 
195
220
  AGW поддерживает langgraph checkpoint API и в SDK представлен `AsyncAGWCheckpointSaver`, который позволяет сохранять состояние графа в AGW напрямую.
196
221
 
@@ -0,0 +1,4 @@
1
+ from .storage import store_file_in_sd_asset
2
+ from .storage_v2 import upload_file, FileUploadResponse
3
+
4
+ __all__ = ["store_file_in_sd_asset", "upload_file", "FileUploadResponse"]
@@ -0,0 +1,66 @@
1
+ import os
2
+ from typing import Optional
3
+ import requests
4
+ from pydantic import BaseModel
5
+
6
+
7
+ class FileUploadResponse(BaseModel):
8
+ """Ответ от сервиса загрузки файлов"""
9
+ id: Optional[str] = None
10
+ bucket: Optional[str] = None
11
+ key: Optional[str] = None
12
+ storage: Optional[str] = None
13
+ absolute_path: str
14
+
15
+
16
+ def upload_file(filename: str, file_bytes: bytes) -> Optional[FileUploadResponse]:
17
+ """
18
+ Загружает файл в бинарном формате через v2 API и возвращает информацию о загруженном файле.
19
+
20
+ Args:
21
+ filename: имя файла
22
+ file_bytes: содержимое файла в виде байтов
23
+
24
+ Returns:
25
+ FileUploadResponse с информацией о файле или None в случае ошибки
26
+ """
27
+
28
+ ai_agent = os.getenv("AGENT_SERVICE_NAME")
29
+ if not ai_agent:
30
+ raise ValueError("AGENT_SERVICE_NAME environment variable is required")
31
+
32
+ gateway_url = os.getenv("STORAGE_PROVIDER_AGW_URL", "http://localhost")
33
+ url = f"{gateway_url}/files/v2/upload"
34
+
35
+ headers = {
36
+ "x-agent-id": ai_agent,
37
+ "Content-Type": "application/octet-stream"
38
+ }
39
+
40
+ params = {
41
+ "name": filename
42
+ }
43
+
44
+ try:
45
+ response = requests.post(
46
+ url,
47
+ headers=headers,
48
+ params=params,
49
+ data=file_bytes
50
+ )
51
+ response.raise_for_status()
52
+
53
+ if response.status_code == 200:
54
+ data = response.json()
55
+ return FileUploadResponse(
56
+ id=data.get("id", ""),
57
+ bucket=data.get("bucket", ""),
58
+ key=data.get("key", ""),
59
+ storage=data.get("storage", ""),
60
+ absolute_path=data.get("absolutePath", "")
61
+ )
62
+
63
+ except requests.exceptions.RequestException as e:
64
+ print(f"Ошибка при загрузке файла через v2 API: {e}")
65
+
66
+ return None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agent-lab-sdk
3
- Version: 0.1.39
3
+ Version: 0.1.40
4
4
  Summary: SDK для работы с Agent Lab
5
5
  Author-email: Andrew Ohurtsov <andermirik@yandex.com>
6
6
  License: Proprietary and Confidential — All Rights Reserved
@@ -220,7 +220,32 @@ from agent_lab_sdk.storage import store_file_in_sd_asset
220
220
  store_file_in_storage("my-agent-name-filename.png", file_b64, "giga-agents")
221
221
  ```
222
222
 
223
- ### 4.2 AGW Checkpointer
223
+ ### 4.2 V2 File Upload
224
+
225
+ Новый v2 API для загрузки файлов через Agent Gateway с поддержкой бинарных данных и автоматическим выбором сервиса хранения.
226
+
227
+ ```python
228
+ from agent_lab_sdk.storage import upload_file, FileUploadResponse
229
+
230
+ # Загрузка из байтов
231
+ with open("document.pdf", "rb") as f:
232
+ file_bytes = f.read()
233
+ result: FileUploadResponse = upload_file("document.pdf", file_bytes)
234
+
235
+ # Результат - Pydantic модель с информацией о файле
236
+ print(f"File ID: {result.id}")
237
+ print(f"Absolute Path: {result.absolute_path}")
238
+ print(f"Storage: {result.storage}")
239
+ ```
240
+
241
+ #### Переменные окружения для V2 Upload
242
+
243
+ | Переменная | Описание | Значение по умолчанию |
244
+ | -------------------------- | ---------------------------------- | --------------------- |
245
+ | `AGENT_SERVICE_NAME` | Имя сервиса агента (обязательно) | - |
246
+ | `STORAGE_PROVIDER_AGW_URL` | URL Agent Gateway | `http://localhost` |
247
+
248
+ ### 4.3 AGW Checkpointer
224
249
 
225
250
  AGW поддерживает langgraph checkpoint API и в SDK представлен `AsyncAGWCheckpointSaver`, который позволяет сохранять состояние графа в AGW напрямую.
226
251
 
@@ -21,4 +21,5 @@ agent_lab_sdk/schema/__init__.py
21
21
  agent_lab_sdk/schema/input_types.py
22
22
  agent_lab_sdk/schema/log_message.py
23
23
  agent_lab_sdk/storage/__init__.py
24
- agent_lab_sdk/storage/storage.py
24
+ agent_lab_sdk/storage/storage.py
25
+ agent_lab_sdk/storage/storage_v2.py
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "agent-lab-sdk"
7
- version = "0.1.39"
7
+ version = "0.1.40"
8
8
  description = "SDK для работы с Agent Lab"
9
9
  readme = "README.md"
10
10
  license = { text = "Proprietary and Confidential — All Rights Reserved" }
@@ -1,3 +0,0 @@
1
- from .storage import store_file_in_sd_asset
2
-
3
- __all__ = ["store_file_in_sd_asset"]
File without changes
File without changes