letta-client 0.1.319__py3-none-any.whl → 0.1.321__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 letta-client might be problematic. Click here for more details.
- letta_client/__init__.py +51 -9
- letta_client/agents/__init__.py +6 -2
- letta_client/agents/client.py +50 -213
- letta_client/agents/files/client.py +51 -6
- letta_client/agents/files/raw_client.py +94 -9
- letta_client/agents/messages/__init__.py +2 -2
- letta_client/agents/messages/client.py +104 -24
- letta_client/agents/messages/raw_client.py +109 -17
- letta_client/agents/messages/types/__init__.py +2 -2
- letta_client/agents/messages/types/{messages_preview_raw_payload_request.py → messages_preview_request.py} +1 -1
- letta_client/agents/raw_client.py +50 -253
- letta_client/agents/types/__init__.py +4 -0
- letta_client/agents/types/agents_list_request_order.py +5 -0
- letta_client/agents/types/agents_list_request_order_by.py +5 -0
- letta_client/archives/__init__.py +7 -0
- letta_client/archives/client.py +362 -0
- letta_client/archives/raw_client.py +448 -0
- letta_client/archives/types/__init__.py +7 -0
- letta_client/archives/types/list_archives_request_order.py +5 -0
- letta_client/base_client.py +3 -6
- letta_client/batches/__init__.py +5 -0
- letta_client/batches/client.py +68 -8
- letta_client/batches/messages/__init__.py +7 -0
- letta_client/{messages → batches/messages}/client.py +50 -43
- letta_client/{messages → batches/messages}/raw_client.py +52 -45
- letta_client/batches/messages/types/__init__.py +7 -0
- letta_client/batches/messages/types/messages_list_request_order.py +5 -0
- letta_client/batches/raw_client.py +71 -6
- letta_client/batches/types/__init__.py +7 -0
- letta_client/batches/types/batches_list_request_order.py +5 -0
- letta_client/blocks/__init__.py +3 -1
- letta_client/blocks/agents/__init__.py +3 -0
- letta_client/blocks/agents/client.py +57 -2
- letta_client/blocks/agents/raw_client.py +51 -0
- letta_client/blocks/agents/types/__init__.py +7 -0
- letta_client/blocks/agents/types/agents_list_request_order.py +5 -0
- letta_client/blocks/client.py +25 -4
- letta_client/blocks/raw_client.py +25 -4
- letta_client/blocks/types/__init__.py +7 -0
- letta_client/blocks/types/blocks_list_request_order.py +5 -0
- letta_client/core/client_wrapper.py +2 -2
- letta_client/errors/__init__.py +9 -1
- letta_client/errors/internal_server_error.py +10 -0
- letta_client/folders/__init__.py +14 -2
- letta_client/folders/agents/__init__.py +7 -0
- letta_client/folders/agents/client.py +176 -0
- letta_client/folders/agents/raw_client.py +182 -0
- letta_client/folders/agents/types/__init__.py +7 -0
- letta_client/folders/agents/types/agents_list_request_order.py +5 -0
- letta_client/folders/client.py +96 -86
- letta_client/folders/files/__init__.py +3 -0
- letta_client/folders/files/client.py +49 -10
- letta_client/folders/files/raw_client.py +41 -10
- letta_client/folders/files/types/__init__.py +7 -0
- letta_client/folders/files/types/files_list_request_order.py +5 -0
- letta_client/folders/passages/__init__.py +3 -0
- letta_client/folders/passages/client.py +43 -14
- letta_client/folders/passages/raw_client.py +35 -14
- letta_client/folders/passages/types/__init__.py +7 -0
- letta_client/folders/passages/types/passages_list_request_order.py +5 -0
- letta_client/folders/raw_client.py +83 -104
- letta_client/folders/types/__init__.py +7 -0
- letta_client/folders/types/folders_list_request_order.py +5 -0
- letta_client/groups/__init__.py +4 -2
- letta_client/groups/client.py +27 -6
- letta_client/groups/messages/__init__.py +2 -2
- letta_client/groups/messages/client.py +39 -18
- letta_client/groups/messages/raw_client.py +35 -14
- letta_client/groups/messages/types/__init__.py +2 -1
- letta_client/groups/messages/types/messages_list_request_order.py +5 -0
- letta_client/groups/raw_client.py +27 -6
- letta_client/groups/types/__init__.py +2 -1
- letta_client/groups/types/groups_list_request_order.py +5 -0
- letta_client/identities/__init__.py +12 -2
- letta_client/identities/agents/__init__.py +7 -0
- letta_client/identities/agents/client.py +177 -0
- letta_client/identities/agents/raw_client.py +183 -0
- letta_client/identities/agents/types/__init__.py +7 -0
- letta_client/identities/agents/types/agents_list_request_order.py +5 -0
- letta_client/identities/blocks/__init__.py +7 -0
- letta_client/identities/blocks/client.py +177 -0
- letta_client/identities/blocks/raw_client.py +183 -0
- letta_client/identities/blocks/types/__init__.py +7 -0
- letta_client/identities/blocks/types/blocks_list_request_order.py +5 -0
- letta_client/identities/client.py +37 -0
- letta_client/identities/raw_client.py +27 -0
- letta_client/identities/types/__init__.py +7 -0
- letta_client/identities/types/identities_list_request_order.py +5 -0
- letta_client/jobs/client.py +10 -2
- letta_client/jobs/raw_client.py +10 -2
- letta_client/models/__init__.py +3 -0
- letta_client/models/client.py +3 -0
- letta_client/{embedding_models → models/embeddings}/client.py +14 -14
- letta_client/{embedding_models → models/embeddings}/raw_client.py +10 -10
- letta_client/providers/__init__.py +3 -0
- letta_client/providers/client.py +151 -82
- letta_client/providers/raw_client.py +165 -72
- letta_client/providers/types/__init__.py +7 -0
- letta_client/providers/types/providers_list_request_order.py +5 -0
- letta_client/runs/__init__.py +2 -1
- letta_client/runs/client.py +39 -8
- letta_client/runs/messages/__init__.py +3 -0
- letta_client/runs/messages/client.py +15 -49
- letta_client/runs/messages/raw_client.py +13 -49
- letta_client/runs/messages/types/__init__.py +7 -0
- letta_client/runs/messages/types/messages_list_request_order.py +5 -0
- letta_client/runs/raw_client.py +39 -8
- letta_client/steps/__init__.py +13 -3
- letta_client/steps/client.py +32 -83
- letta_client/steps/feedback/client.py +21 -6
- letta_client/steps/feedback/raw_client.py +29 -6
- letta_client/steps/messages/__init__.py +7 -0
- letta_client/steps/messages/client.py +177 -0
- letta_client/steps/messages/raw_client.py +183 -0
- letta_client/steps/messages/types/__init__.py +8 -0
- letta_client/steps/messages/types/messages_list_request_order.py +5 -0
- letta_client/steps/messages/types/messages_list_response_item.py +25 -0
- letta_client/steps/metrics/client.py +110 -0
- letta_client/steps/metrics/raw_client.py +122 -0
- letta_client/steps/raw_client.py +17 -107
- letta_client/steps/trace/__init__.py +4 -0
- letta_client/steps/trace/client.py +110 -0
- letta_client/steps/trace/raw_client.py +122 -0
- letta_client/steps/types/__init__.py +2 -1
- letta_client/steps/types/steps_list_request_order.py +5 -0
- letta_client/tags/__init__.py +3 -0
- letta_client/tags/client.py +57 -4
- letta_client/tags/raw_client.py +49 -2
- letta_client/tags/types/__init__.py +7 -0
- letta_client/tags/types/tags_list_request_order.py +5 -0
- letta_client/telemetry/client.py +8 -0
- letta_client/telemetry/raw_client.py +8 -0
- letta_client/templates/__init__.py +64 -0
- letta_client/templates/agents/__init__.py +58 -0
- letta_client/templates/agents/types/__init__.py +66 -0
- letta_client/templates/agents/types/agents_create_response.py +6 -0
- letta_client/templates/agents/types/agents_create_response_group.py +52 -0
- letta_client/templates/agents/types/agents_create_response_group_base_template_id.py +12 -0
- letta_client/templates/agents/types/agents_create_response_group_base_template_id_item.py +5 -0
- letta_client/templates/agents/types/agents_create_response_group_deployment_id.py +12 -0
- letta_client/templates/agents/types/agents_create_response_group_deployment_id_item.py +5 -0
- letta_client/templates/agents/types/agents_create_response_group_hidden.py +12 -0
- letta_client/templates/agents/types/agents_create_response_group_hidden_item.py +5 -0
- letta_client/templates/agents/types/agents_create_response_group_last_processed_message_id.py +14 -0
- letta_client/templates/agents/types/agents_create_response_group_last_processed_message_id_item.py +5 -0
- letta_client/templates/agents/types/agents_create_response_group_manager_agent_id.py +12 -0
- letta_client/templates/agents/types/agents_create_response_group_manager_agent_id_item.py +5 -0
- letta_client/templates/agents/types/agents_create_response_group_manager_type.py +7 -0
- letta_client/templates/agents/types/agents_create_response_group_max_message_buffer_length.py +14 -0
- letta_client/templates/agents/types/agents_create_response_group_max_message_buffer_length_item.py +5 -0
- letta_client/templates/agents/types/agents_create_response_group_max_turns.py +12 -0
- letta_client/templates/agents/types/agents_create_response_group_max_turns_item.py +5 -0
- letta_client/templates/agents/types/agents_create_response_group_min_message_buffer_length.py +14 -0
- letta_client/templates/agents/types/agents_create_response_group_min_message_buffer_length_item.py +5 -0
- letta_client/templates/agents/types/agents_create_response_group_project_id.py +12 -0
- letta_client/templates/agents/types/agents_create_response_group_project_id_item.py +5 -0
- letta_client/templates/agents/types/agents_create_response_group_shared_block_ids.py +5 -0
- letta_client/templates/agents/types/agents_create_response_group_sleeptime_agent_frequency.py +14 -0
- letta_client/templates/agents/types/agents_create_response_group_sleeptime_agent_frequency_item.py +5 -0
- letta_client/templates/agents/types/agents_create_response_group_template_id.py +12 -0
- letta_client/templates/agents/types/agents_create_response_group_template_id_item.py +5 -0
- letta_client/templates/agents/types/agents_create_response_group_termination_token.py +12 -0
- letta_client/templates/agents/types/agents_create_response_group_termination_token_item.py +5 -0
- letta_client/templates/agents/types/agents_create_response_group_turns_counter.py +12 -0
- letta_client/templates/agents/types/agents_create_response_group_turns_counter_item.py +5 -0
- letta_client/templates/client.py +260 -0
- letta_client/templates/raw_client.py +395 -0
- letta_client/templates/types/__init__.py +8 -0
- letta_client/templates/types/templates_get_template_snapshot_response.py +4 -0
- letta_client/templates/types/templates_get_template_snapshot_response_blocks_item.py +1 -0
- letta_client/templates/types/templates_get_template_snapshot_response_relationships_item.py +23 -0
- letta_client/templates/types/templates_migrate_deployment_response.py +21 -0
- letta_client/templates/types/templates_set_current_template_from_snapshot_response.py +21 -0
- letta_client/tools/__init__.py +2 -0
- letta_client/tools/client.py +47 -20
- letta_client/tools/raw_client.py +43 -26
- letta_client/tools/types/__init__.py +2 -0
- letta_client/tools/types/tools_list_request_order.py +5 -0
- letta_client/types/__init__.py +10 -2
- letta_client/types/agent_state.py +5 -0
- letta_client/types/archive.py +77 -0
- letta_client/types/batch_job.py +16 -0
- letta_client/types/{body_export_agent_serialized.py → body_export_agent.py} +1 -1
- letta_client/types/child_tool_rule.py +1 -1
- letta_client/types/conditional_tool_rule.py +1 -1
- letta_client/types/continue_tool_rule.py +1 -1
- letta_client/types/deployment_entity.py +2 -0
- letta_client/types/init_tool_rule.py +1 -1
- letta_client/types/internal_server_error_body.py +20 -0
- letta_client/types/internal_template_agent_create.py +5 -0
- letta_client/types/job.py +16 -0
- letta_client/types/letta_schemas_agent_file_agent_schema.py +5 -0
- letta_client/types/max_count_per_step_tool_rule.py +1 -1
- letta_client/types/memory.py +7 -1
- letta_client/types/memory_agent_type.py +7 -0
- letta_client/types/parent_tool_rule.py +1 -1
- letta_client/types/required_before_exit_tool_rule.py +1 -1
- letta_client/types/requires_approval_tool_rule.py +1 -1
- letta_client/types/run.py +16 -0
- letta_client/types/source.py +6 -0
- letta_client/types/step.py +1 -1
- letta_client/types/stop_reason_type.py +1 -0
- letta_client/types/terminal_tool_rule.py +1 -1
- letta_client/types/vector_db_provider.py +5 -0
- letta_client/voice/client.py +2 -8
- letta_client/voice/raw_client.py +0 -8
- {letta_client-0.1.319.dist-info → letta_client-0.1.321.dist-info}/METADATA +9 -9
- {letta_client-0.1.319.dist-info → letta_client-0.1.321.dist-info}/RECORD +211 -114
- /letta_client/{embedding_models → models/embeddings}/__init__.py +0 -0
- /letta_client/{messages → steps/metrics}/__init__.py +0 -0
- {letta_client-0.1.319.dist-info → letta_client-0.1.321.dist-info}/WHEEL +0 -0
|
@@ -11,6 +11,7 @@ from ...core.request_options import RequestOptions
|
|
|
11
11
|
from ...core.unchecked_base_model import construct_type
|
|
12
12
|
from ...errors.unprocessable_entity_error import UnprocessableEntityError
|
|
13
13
|
from ...types.http_validation_error import HttpValidationError
|
|
14
|
+
from ...types.paginated_agent_files import PaginatedAgentFiles
|
|
14
15
|
|
|
15
16
|
|
|
16
17
|
class RawFilesClient:
|
|
@@ -180,27 +181,70 @@ class RawFilesClient:
|
|
|
180
181
|
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
181
182
|
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
182
183
|
|
|
183
|
-
def list(
|
|
184
|
+
def list(
|
|
185
|
+
self,
|
|
186
|
+
agent_id: str,
|
|
187
|
+
*,
|
|
188
|
+
cursor: typing.Optional[str] = None,
|
|
189
|
+
limit: typing.Optional[int] = None,
|
|
190
|
+
is_open: typing.Optional[bool] = None,
|
|
191
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
192
|
+
) -> HttpResponse[PaginatedAgentFiles]:
|
|
184
193
|
"""
|
|
194
|
+
Get the files attached to an agent with their open/closed status (paginated).
|
|
195
|
+
|
|
185
196
|
Parameters
|
|
186
197
|
----------
|
|
187
198
|
agent_id : str
|
|
188
199
|
|
|
200
|
+
cursor : typing.Optional[str]
|
|
201
|
+
Pagination cursor from previous response
|
|
202
|
+
|
|
203
|
+
limit : typing.Optional[int]
|
|
204
|
+
Number of items to return (1-100)
|
|
205
|
+
|
|
206
|
+
is_open : typing.Optional[bool]
|
|
207
|
+
Filter by open status (true for open files, false for closed files)
|
|
208
|
+
|
|
189
209
|
request_options : typing.Optional[RequestOptions]
|
|
190
210
|
Request-specific configuration.
|
|
191
211
|
|
|
192
212
|
Returns
|
|
193
213
|
-------
|
|
194
|
-
HttpResponse[
|
|
214
|
+
HttpResponse[PaginatedAgentFiles]
|
|
215
|
+
Successful Response
|
|
195
216
|
"""
|
|
196
217
|
_response = self._client_wrapper.httpx_client.request(
|
|
197
218
|
f"v1/agents/{jsonable_encoder(agent_id)}/files",
|
|
198
|
-
method="
|
|
219
|
+
method="GET",
|
|
220
|
+
params={
|
|
221
|
+
"cursor": cursor,
|
|
222
|
+
"limit": limit,
|
|
223
|
+
"is_open": is_open,
|
|
224
|
+
},
|
|
199
225
|
request_options=request_options,
|
|
200
226
|
)
|
|
201
227
|
try:
|
|
202
228
|
if 200 <= _response.status_code < 300:
|
|
203
|
-
|
|
229
|
+
_data = typing.cast(
|
|
230
|
+
PaginatedAgentFiles,
|
|
231
|
+
construct_type(
|
|
232
|
+
type_=PaginatedAgentFiles, # type: ignore
|
|
233
|
+
object_=_response.json(),
|
|
234
|
+
),
|
|
235
|
+
)
|
|
236
|
+
return HttpResponse(response=_response, data=_data)
|
|
237
|
+
if _response.status_code == 422:
|
|
238
|
+
raise UnprocessableEntityError(
|
|
239
|
+
headers=dict(_response.headers),
|
|
240
|
+
body=typing.cast(
|
|
241
|
+
HttpValidationError,
|
|
242
|
+
construct_type(
|
|
243
|
+
type_=HttpValidationError, # type: ignore
|
|
244
|
+
object_=_response.json(),
|
|
245
|
+
),
|
|
246
|
+
),
|
|
247
|
+
)
|
|
204
248
|
_response_json = _response.json()
|
|
205
249
|
except JSONDecodeError:
|
|
206
250
|
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
@@ -375,28 +419,69 @@ class AsyncRawFilesClient:
|
|
|
375
419
|
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
376
420
|
|
|
377
421
|
async def list(
|
|
378
|
-
self,
|
|
379
|
-
|
|
422
|
+
self,
|
|
423
|
+
agent_id: str,
|
|
424
|
+
*,
|
|
425
|
+
cursor: typing.Optional[str] = None,
|
|
426
|
+
limit: typing.Optional[int] = None,
|
|
427
|
+
is_open: typing.Optional[bool] = None,
|
|
428
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
429
|
+
) -> AsyncHttpResponse[PaginatedAgentFiles]:
|
|
380
430
|
"""
|
|
431
|
+
Get the files attached to an agent with their open/closed status (paginated).
|
|
432
|
+
|
|
381
433
|
Parameters
|
|
382
434
|
----------
|
|
383
435
|
agent_id : str
|
|
384
436
|
|
|
437
|
+
cursor : typing.Optional[str]
|
|
438
|
+
Pagination cursor from previous response
|
|
439
|
+
|
|
440
|
+
limit : typing.Optional[int]
|
|
441
|
+
Number of items to return (1-100)
|
|
442
|
+
|
|
443
|
+
is_open : typing.Optional[bool]
|
|
444
|
+
Filter by open status (true for open files, false for closed files)
|
|
445
|
+
|
|
385
446
|
request_options : typing.Optional[RequestOptions]
|
|
386
447
|
Request-specific configuration.
|
|
387
448
|
|
|
388
449
|
Returns
|
|
389
450
|
-------
|
|
390
|
-
AsyncHttpResponse[
|
|
451
|
+
AsyncHttpResponse[PaginatedAgentFiles]
|
|
452
|
+
Successful Response
|
|
391
453
|
"""
|
|
392
454
|
_response = await self._client_wrapper.httpx_client.request(
|
|
393
455
|
f"v1/agents/{jsonable_encoder(agent_id)}/files",
|
|
394
|
-
method="
|
|
456
|
+
method="GET",
|
|
457
|
+
params={
|
|
458
|
+
"cursor": cursor,
|
|
459
|
+
"limit": limit,
|
|
460
|
+
"is_open": is_open,
|
|
461
|
+
},
|
|
395
462
|
request_options=request_options,
|
|
396
463
|
)
|
|
397
464
|
try:
|
|
398
465
|
if 200 <= _response.status_code < 300:
|
|
399
|
-
|
|
466
|
+
_data = typing.cast(
|
|
467
|
+
PaginatedAgentFiles,
|
|
468
|
+
construct_type(
|
|
469
|
+
type_=PaginatedAgentFiles, # type: ignore
|
|
470
|
+
object_=_response.json(),
|
|
471
|
+
),
|
|
472
|
+
)
|
|
473
|
+
return AsyncHttpResponse(response=_response, data=_data)
|
|
474
|
+
if _response.status_code == 422:
|
|
475
|
+
raise UnprocessableEntityError(
|
|
476
|
+
headers=dict(_response.headers),
|
|
477
|
+
body=typing.cast(
|
|
478
|
+
HttpValidationError,
|
|
479
|
+
construct_type(
|
|
480
|
+
type_=HttpValidationError, # type: ignore
|
|
481
|
+
object_=_response.json(),
|
|
482
|
+
),
|
|
483
|
+
),
|
|
484
|
+
)
|
|
400
485
|
_response_json = _response.json()
|
|
401
486
|
except JSONDecodeError:
|
|
402
487
|
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
@@ -8,7 +8,7 @@ from .types import (
|
|
|
8
8
|
MessageSearchRequestSearchMode,
|
|
9
9
|
MessagesModifyRequest,
|
|
10
10
|
MessagesModifyResponse,
|
|
11
|
-
|
|
11
|
+
MessagesPreviewRequest,
|
|
12
12
|
)
|
|
13
13
|
|
|
14
14
|
__all__ = [
|
|
@@ -17,5 +17,5 @@ __all__ = [
|
|
|
17
17
|
"MessageSearchRequestSearchMode",
|
|
18
18
|
"MessagesModifyRequest",
|
|
19
19
|
"MessagesModifyResponse",
|
|
20
|
-
"
|
|
20
|
+
"MessagesPreviewRequest",
|
|
21
21
|
]
|
|
@@ -20,7 +20,7 @@ from .types.letta_streaming_response import LettaStreamingResponse
|
|
|
20
20
|
from .types.message_search_request_search_mode import MessageSearchRequestSearchMode
|
|
21
21
|
from .types.messages_modify_request import MessagesModifyRequest
|
|
22
22
|
from .types.messages_modify_response import MessagesModifyResponse
|
|
23
|
-
from .types.
|
|
23
|
+
from .types.messages_preview_request import MessagesPreviewRequest
|
|
24
24
|
|
|
25
25
|
# this is used as the default value for optional parameters
|
|
26
26
|
OMIT = typing.cast(typing.Any, ...)
|
|
@@ -185,7 +185,7 @@ class MessagesClient:
|
|
|
185
185
|
role="user",
|
|
186
186
|
content=[
|
|
187
187
|
TextContent(
|
|
188
|
-
text="
|
|
188
|
+
text="The sky above the port was the color of television, tuned to a dead channel.",
|
|
189
189
|
)
|
|
190
190
|
],
|
|
191
191
|
)
|
|
@@ -329,7 +329,7 @@ class MessagesClient:
|
|
|
329
329
|
role="user",
|
|
330
330
|
content=[
|
|
331
331
|
TextContent(
|
|
332
|
-
text="
|
|
332
|
+
text="The sky above the port was the color of television, tuned to a dead channel.",
|
|
333
333
|
)
|
|
334
334
|
],
|
|
335
335
|
)
|
|
@@ -606,12 +606,8 @@ class MessagesClient:
|
|
|
606
606
|
)
|
|
607
607
|
return _response.data
|
|
608
608
|
|
|
609
|
-
def
|
|
610
|
-
self,
|
|
611
|
-
agent_id: str,
|
|
612
|
-
*,
|
|
613
|
-
request: MessagesPreviewRawPayloadRequest,
|
|
614
|
-
request_options: typing.Optional[RequestOptions] = None,
|
|
609
|
+
def preview(
|
|
610
|
+
self, agent_id: str, *, request: MessagesPreviewRequest, request_options: typing.Optional[RequestOptions] = None
|
|
615
611
|
) -> typing.Dict[str, typing.Optional[typing.Any]]:
|
|
616
612
|
"""
|
|
617
613
|
Inspect the raw LLM request payload without sending it.
|
|
@@ -624,7 +620,7 @@ class MessagesClient:
|
|
|
624
620
|
----------
|
|
625
621
|
agent_id : str
|
|
626
622
|
|
|
627
|
-
request :
|
|
623
|
+
request : MessagesPreviewRequest
|
|
628
624
|
|
|
629
625
|
request_options : typing.Optional[RequestOptions]
|
|
630
626
|
Request-specific configuration.
|
|
@@ -642,7 +638,7 @@ class MessagesClient:
|
|
|
642
638
|
project="YOUR_PROJECT",
|
|
643
639
|
token="YOUR_TOKEN",
|
|
644
640
|
)
|
|
645
|
-
client.agents.messages.
|
|
641
|
+
client.agents.messages.preview(
|
|
646
642
|
agent_id="agent_id",
|
|
647
643
|
request=LettaRequest(
|
|
648
644
|
messages=[
|
|
@@ -658,7 +654,48 @@ class MessagesClient:
|
|
|
658
654
|
),
|
|
659
655
|
)
|
|
660
656
|
"""
|
|
661
|
-
_response = self._raw_client.
|
|
657
|
+
_response = self._raw_client.preview(agent_id, request=request, request_options=request_options)
|
|
658
|
+
return _response.data
|
|
659
|
+
|
|
660
|
+
def summarize(
|
|
661
|
+
self, agent_id: str, *, max_message_length: int, request_options: typing.Optional[RequestOptions] = None
|
|
662
|
+
) -> None:
|
|
663
|
+
"""
|
|
664
|
+
Summarize an agent's conversation history to a target message length.
|
|
665
|
+
|
|
666
|
+
This endpoint summarizes the current message history for a given agent,
|
|
667
|
+
truncating and compressing it down to the specified `max_message_length`.
|
|
668
|
+
|
|
669
|
+
Parameters
|
|
670
|
+
----------
|
|
671
|
+
agent_id : str
|
|
672
|
+
|
|
673
|
+
max_message_length : int
|
|
674
|
+
Maximum number of messages to retain after summarization.
|
|
675
|
+
|
|
676
|
+
request_options : typing.Optional[RequestOptions]
|
|
677
|
+
Request-specific configuration.
|
|
678
|
+
|
|
679
|
+
Returns
|
|
680
|
+
-------
|
|
681
|
+
None
|
|
682
|
+
|
|
683
|
+
Examples
|
|
684
|
+
--------
|
|
685
|
+
from letta_client import Letta
|
|
686
|
+
|
|
687
|
+
client = Letta(
|
|
688
|
+
project="YOUR_PROJECT",
|
|
689
|
+
token="YOUR_TOKEN",
|
|
690
|
+
)
|
|
691
|
+
client.agents.messages.summarize(
|
|
692
|
+
agent_id="agent_id",
|
|
693
|
+
max_message_length=1,
|
|
694
|
+
)
|
|
695
|
+
"""
|
|
696
|
+
_response = self._raw_client.summarize(
|
|
697
|
+
agent_id, max_message_length=max_message_length, request_options=request_options
|
|
698
|
+
)
|
|
662
699
|
return _response.data
|
|
663
700
|
|
|
664
701
|
|
|
@@ -834,7 +871,7 @@ class AsyncMessagesClient:
|
|
|
834
871
|
role="user",
|
|
835
872
|
content=[
|
|
836
873
|
TextContent(
|
|
837
|
-
text="
|
|
874
|
+
text="The sky above the port was the color of television, tuned to a dead channel.",
|
|
838
875
|
)
|
|
839
876
|
],
|
|
840
877
|
)
|
|
@@ -996,7 +1033,7 @@ class AsyncMessagesClient:
|
|
|
996
1033
|
role="user",
|
|
997
1034
|
content=[
|
|
998
1035
|
TextContent(
|
|
999
|
-
text="
|
|
1036
|
+
text="The sky above the port was the color of television, tuned to a dead channel.",
|
|
1000
1037
|
)
|
|
1001
1038
|
],
|
|
1002
1039
|
)
|
|
@@ -1309,12 +1346,8 @@ class AsyncMessagesClient:
|
|
|
1309
1346
|
)
|
|
1310
1347
|
return _response.data
|
|
1311
1348
|
|
|
1312
|
-
async def
|
|
1313
|
-
self,
|
|
1314
|
-
agent_id: str,
|
|
1315
|
-
*,
|
|
1316
|
-
request: MessagesPreviewRawPayloadRequest,
|
|
1317
|
-
request_options: typing.Optional[RequestOptions] = None,
|
|
1349
|
+
async def preview(
|
|
1350
|
+
self, agent_id: str, *, request: MessagesPreviewRequest, request_options: typing.Optional[RequestOptions] = None
|
|
1318
1351
|
) -> typing.Dict[str, typing.Optional[typing.Any]]:
|
|
1319
1352
|
"""
|
|
1320
1353
|
Inspect the raw LLM request payload without sending it.
|
|
@@ -1327,7 +1360,7 @@ class AsyncMessagesClient:
|
|
|
1327
1360
|
----------
|
|
1328
1361
|
agent_id : str
|
|
1329
1362
|
|
|
1330
|
-
request :
|
|
1363
|
+
request : MessagesPreviewRequest
|
|
1331
1364
|
|
|
1332
1365
|
request_options : typing.Optional[RequestOptions]
|
|
1333
1366
|
Request-specific configuration.
|
|
@@ -1350,7 +1383,7 @@ class AsyncMessagesClient:
|
|
|
1350
1383
|
|
|
1351
1384
|
|
|
1352
1385
|
async def main() -> None:
|
|
1353
|
-
await client.agents.messages.
|
|
1386
|
+
await client.agents.messages.preview(
|
|
1354
1387
|
agent_id="agent_id",
|
|
1355
1388
|
request=LettaRequest(
|
|
1356
1389
|
messages=[
|
|
@@ -1369,7 +1402,54 @@ class AsyncMessagesClient:
|
|
|
1369
1402
|
|
|
1370
1403
|
asyncio.run(main())
|
|
1371
1404
|
"""
|
|
1372
|
-
_response = await self._raw_client.
|
|
1373
|
-
|
|
1405
|
+
_response = await self._raw_client.preview(agent_id, request=request, request_options=request_options)
|
|
1406
|
+
return _response.data
|
|
1407
|
+
|
|
1408
|
+
async def summarize(
|
|
1409
|
+
self, agent_id: str, *, max_message_length: int, request_options: typing.Optional[RequestOptions] = None
|
|
1410
|
+
) -> None:
|
|
1411
|
+
"""
|
|
1412
|
+
Summarize an agent's conversation history to a target message length.
|
|
1413
|
+
|
|
1414
|
+
This endpoint summarizes the current message history for a given agent,
|
|
1415
|
+
truncating and compressing it down to the specified `max_message_length`.
|
|
1416
|
+
|
|
1417
|
+
Parameters
|
|
1418
|
+
----------
|
|
1419
|
+
agent_id : str
|
|
1420
|
+
|
|
1421
|
+
max_message_length : int
|
|
1422
|
+
Maximum number of messages to retain after summarization.
|
|
1423
|
+
|
|
1424
|
+
request_options : typing.Optional[RequestOptions]
|
|
1425
|
+
Request-specific configuration.
|
|
1426
|
+
|
|
1427
|
+
Returns
|
|
1428
|
+
-------
|
|
1429
|
+
None
|
|
1430
|
+
|
|
1431
|
+
Examples
|
|
1432
|
+
--------
|
|
1433
|
+
import asyncio
|
|
1434
|
+
|
|
1435
|
+
from letta_client import AsyncLetta
|
|
1436
|
+
|
|
1437
|
+
client = AsyncLetta(
|
|
1438
|
+
project="YOUR_PROJECT",
|
|
1439
|
+
token="YOUR_TOKEN",
|
|
1440
|
+
)
|
|
1441
|
+
|
|
1442
|
+
|
|
1443
|
+
async def main() -> None:
|
|
1444
|
+
await client.agents.messages.summarize(
|
|
1445
|
+
agent_id="agent_id",
|
|
1446
|
+
max_message_length=1,
|
|
1447
|
+
)
|
|
1448
|
+
|
|
1449
|
+
|
|
1450
|
+
asyncio.run(main())
|
|
1451
|
+
"""
|
|
1452
|
+
_response = await self._raw_client.summarize(
|
|
1453
|
+
agent_id, max_message_length=max_message_length, request_options=request_options
|
|
1374
1454
|
)
|
|
1375
1455
|
return _response.data
|
|
@@ -30,7 +30,7 @@ from .types.letta_streaming_response import LettaStreamingResponse
|
|
|
30
30
|
from .types.message_search_request_search_mode import MessageSearchRequestSearchMode
|
|
31
31
|
from .types.messages_modify_request import MessagesModifyRequest
|
|
32
32
|
from .types.messages_modify_response import MessagesModifyResponse
|
|
33
|
-
from .types.
|
|
33
|
+
from .types.messages_preview_request import MessagesPreviewRequest
|
|
34
34
|
|
|
35
35
|
# this is used as the default value for optional parameters
|
|
36
36
|
OMIT = typing.cast(typing.Any, ...)
|
|
@@ -751,12 +751,8 @@ class RawMessagesClient:
|
|
|
751
751
|
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
752
752
|
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
753
753
|
|
|
754
|
-
def
|
|
755
|
-
self,
|
|
756
|
-
agent_id: str,
|
|
757
|
-
*,
|
|
758
|
-
request: MessagesPreviewRawPayloadRequest,
|
|
759
|
-
request_options: typing.Optional[RequestOptions] = None,
|
|
754
|
+
def preview(
|
|
755
|
+
self, agent_id: str, *, request: MessagesPreviewRequest, request_options: typing.Optional[RequestOptions] = None
|
|
760
756
|
) -> HttpResponse[typing.Dict[str, typing.Optional[typing.Any]]]:
|
|
761
757
|
"""
|
|
762
758
|
Inspect the raw LLM request payload without sending it.
|
|
@@ -769,7 +765,7 @@ class RawMessagesClient:
|
|
|
769
765
|
----------
|
|
770
766
|
agent_id : str
|
|
771
767
|
|
|
772
|
-
request :
|
|
768
|
+
request : MessagesPreviewRequest
|
|
773
769
|
|
|
774
770
|
request_options : typing.Optional[RequestOptions]
|
|
775
771
|
Request-specific configuration.
|
|
@@ -783,7 +779,7 @@ class RawMessagesClient:
|
|
|
783
779
|
f"v1/agents/{jsonable_encoder(agent_id)}/messages/preview-raw-payload",
|
|
784
780
|
method="POST",
|
|
785
781
|
json=convert_and_respect_annotation_metadata(
|
|
786
|
-
object_=request, annotation=
|
|
782
|
+
object_=request, annotation=MessagesPreviewRequest, direction="write"
|
|
787
783
|
),
|
|
788
784
|
headers={
|
|
789
785
|
"content-type": "application/json",
|
|
@@ -817,6 +813,56 @@ class RawMessagesClient:
|
|
|
817
813
|
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
818
814
|
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
819
815
|
|
|
816
|
+
def summarize(
|
|
817
|
+
self, agent_id: str, *, max_message_length: int, request_options: typing.Optional[RequestOptions] = None
|
|
818
|
+
) -> HttpResponse[None]:
|
|
819
|
+
"""
|
|
820
|
+
Summarize an agent's conversation history to a target message length.
|
|
821
|
+
|
|
822
|
+
This endpoint summarizes the current message history for a given agent,
|
|
823
|
+
truncating and compressing it down to the specified `max_message_length`.
|
|
824
|
+
|
|
825
|
+
Parameters
|
|
826
|
+
----------
|
|
827
|
+
agent_id : str
|
|
828
|
+
|
|
829
|
+
max_message_length : int
|
|
830
|
+
Maximum number of messages to retain after summarization.
|
|
831
|
+
|
|
832
|
+
request_options : typing.Optional[RequestOptions]
|
|
833
|
+
Request-specific configuration.
|
|
834
|
+
|
|
835
|
+
Returns
|
|
836
|
+
-------
|
|
837
|
+
HttpResponse[None]
|
|
838
|
+
"""
|
|
839
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
840
|
+
f"v1/agents/{jsonable_encoder(agent_id)}/summarize",
|
|
841
|
+
method="POST",
|
|
842
|
+
params={
|
|
843
|
+
"max_message_length": max_message_length,
|
|
844
|
+
},
|
|
845
|
+
request_options=request_options,
|
|
846
|
+
)
|
|
847
|
+
try:
|
|
848
|
+
if 200 <= _response.status_code < 300:
|
|
849
|
+
return HttpResponse(response=_response, data=None)
|
|
850
|
+
if _response.status_code == 422:
|
|
851
|
+
raise UnprocessableEntityError(
|
|
852
|
+
headers=dict(_response.headers),
|
|
853
|
+
body=typing.cast(
|
|
854
|
+
HttpValidationError,
|
|
855
|
+
construct_type(
|
|
856
|
+
type_=HttpValidationError, # type: ignore
|
|
857
|
+
object_=_response.json(),
|
|
858
|
+
),
|
|
859
|
+
),
|
|
860
|
+
)
|
|
861
|
+
_response_json = _response.json()
|
|
862
|
+
except JSONDecodeError:
|
|
863
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
864
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
865
|
+
|
|
820
866
|
|
|
821
867
|
class AsyncRawMessagesClient:
|
|
822
868
|
def __init__(self, *, client_wrapper: AsyncClientWrapper):
|
|
@@ -1533,12 +1579,8 @@ class AsyncRawMessagesClient:
|
|
|
1533
1579
|
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
1534
1580
|
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
1535
1581
|
|
|
1536
|
-
async def
|
|
1537
|
-
self,
|
|
1538
|
-
agent_id: str,
|
|
1539
|
-
*,
|
|
1540
|
-
request: MessagesPreviewRawPayloadRequest,
|
|
1541
|
-
request_options: typing.Optional[RequestOptions] = None,
|
|
1582
|
+
async def preview(
|
|
1583
|
+
self, agent_id: str, *, request: MessagesPreviewRequest, request_options: typing.Optional[RequestOptions] = None
|
|
1542
1584
|
) -> AsyncHttpResponse[typing.Dict[str, typing.Optional[typing.Any]]]:
|
|
1543
1585
|
"""
|
|
1544
1586
|
Inspect the raw LLM request payload without sending it.
|
|
@@ -1551,7 +1593,7 @@ class AsyncRawMessagesClient:
|
|
|
1551
1593
|
----------
|
|
1552
1594
|
agent_id : str
|
|
1553
1595
|
|
|
1554
|
-
request :
|
|
1596
|
+
request : MessagesPreviewRequest
|
|
1555
1597
|
|
|
1556
1598
|
request_options : typing.Optional[RequestOptions]
|
|
1557
1599
|
Request-specific configuration.
|
|
@@ -1565,7 +1607,7 @@ class AsyncRawMessagesClient:
|
|
|
1565
1607
|
f"v1/agents/{jsonable_encoder(agent_id)}/messages/preview-raw-payload",
|
|
1566
1608
|
method="POST",
|
|
1567
1609
|
json=convert_and_respect_annotation_metadata(
|
|
1568
|
-
object_=request, annotation=
|
|
1610
|
+
object_=request, annotation=MessagesPreviewRequest, direction="write"
|
|
1569
1611
|
),
|
|
1570
1612
|
headers={
|
|
1571
1613
|
"content-type": "application/json",
|
|
@@ -1598,3 +1640,53 @@ class AsyncRawMessagesClient:
|
|
|
1598
1640
|
except JSONDecodeError:
|
|
1599
1641
|
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
1600
1642
|
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
1643
|
+
|
|
1644
|
+
async def summarize(
|
|
1645
|
+
self, agent_id: str, *, max_message_length: int, request_options: typing.Optional[RequestOptions] = None
|
|
1646
|
+
) -> AsyncHttpResponse[None]:
|
|
1647
|
+
"""
|
|
1648
|
+
Summarize an agent's conversation history to a target message length.
|
|
1649
|
+
|
|
1650
|
+
This endpoint summarizes the current message history for a given agent,
|
|
1651
|
+
truncating and compressing it down to the specified `max_message_length`.
|
|
1652
|
+
|
|
1653
|
+
Parameters
|
|
1654
|
+
----------
|
|
1655
|
+
agent_id : str
|
|
1656
|
+
|
|
1657
|
+
max_message_length : int
|
|
1658
|
+
Maximum number of messages to retain after summarization.
|
|
1659
|
+
|
|
1660
|
+
request_options : typing.Optional[RequestOptions]
|
|
1661
|
+
Request-specific configuration.
|
|
1662
|
+
|
|
1663
|
+
Returns
|
|
1664
|
+
-------
|
|
1665
|
+
AsyncHttpResponse[None]
|
|
1666
|
+
"""
|
|
1667
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
1668
|
+
f"v1/agents/{jsonable_encoder(agent_id)}/summarize",
|
|
1669
|
+
method="POST",
|
|
1670
|
+
params={
|
|
1671
|
+
"max_message_length": max_message_length,
|
|
1672
|
+
},
|
|
1673
|
+
request_options=request_options,
|
|
1674
|
+
)
|
|
1675
|
+
try:
|
|
1676
|
+
if 200 <= _response.status_code < 300:
|
|
1677
|
+
return AsyncHttpResponse(response=_response, data=None)
|
|
1678
|
+
if _response.status_code == 422:
|
|
1679
|
+
raise UnprocessableEntityError(
|
|
1680
|
+
headers=dict(_response.headers),
|
|
1681
|
+
body=typing.cast(
|
|
1682
|
+
HttpValidationError,
|
|
1683
|
+
construct_type(
|
|
1684
|
+
type_=HttpValidationError, # type: ignore
|
|
1685
|
+
object_=_response.json(),
|
|
1686
|
+
),
|
|
1687
|
+
),
|
|
1688
|
+
)
|
|
1689
|
+
_response_json = _response.json()
|
|
1690
|
+
except JSONDecodeError:
|
|
1691
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
1692
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
@@ -7,7 +7,7 @@ from .letta_streaming_response import LettaStreamingResponse
|
|
|
7
7
|
from .message_search_request_search_mode import MessageSearchRequestSearchMode
|
|
8
8
|
from .messages_modify_request import MessagesModifyRequest
|
|
9
9
|
from .messages_modify_response import MessagesModifyResponse
|
|
10
|
-
from .
|
|
10
|
+
from .messages_preview_request import MessagesPreviewRequest
|
|
11
11
|
|
|
12
12
|
__all__ = [
|
|
13
13
|
"LettaAsyncRequestMessagesItem",
|
|
@@ -15,5 +15,5 @@ __all__ = [
|
|
|
15
15
|
"MessageSearchRequestSearchMode",
|
|
16
16
|
"MessagesModifyRequest",
|
|
17
17
|
"MessagesModifyResponse",
|
|
18
|
-
"
|
|
18
|
+
"MessagesPreviewRequest",
|
|
19
19
|
]
|
|
@@ -5,4 +5,4 @@ import typing
|
|
|
5
5
|
from ....types.letta_request import LettaRequest
|
|
6
6
|
from ....types.letta_streaming_request import LettaStreamingRequest
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
MessagesPreviewRequest = typing.Union[LettaRequest, LettaStreamingRequest]
|