letta-client 0.1.318__py3-none-any.whl → 0.1.320__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 +116 -26
- letta_client/agents/messages/raw_client.py +121 -19
- 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 +21 -0
- 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 +21 -0
- 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 +6 -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 +6 -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 +6 -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.318.dist-info → letta_client-0.1.320.dist-info}/METADATA +9 -9
- {letta_client-0.1.318.dist-info → letta_client-0.1.320.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.318.dist-info → letta_client-0.1.320.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
|
)
|
|
@@ -403,13 +403,14 @@ class MessagesClient:
|
|
|
403
403
|
search_mode: typing.Optional[MessageSearchRequestSearchMode] = OMIT,
|
|
404
404
|
roles: typing.Optional[typing.Sequence[MessageRole]] = OMIT,
|
|
405
405
|
project_id: typing.Optional[str] = OMIT,
|
|
406
|
+
template_id: typing.Optional[str] = OMIT,
|
|
406
407
|
limit: typing.Optional[int] = OMIT,
|
|
407
408
|
start_date: typing.Optional[dt.datetime] = OMIT,
|
|
408
409
|
end_date: typing.Optional[dt.datetime] = OMIT,
|
|
409
410
|
request_options: typing.Optional[RequestOptions] = None,
|
|
410
411
|
) -> typing.List[MessageSearchResult]:
|
|
411
412
|
"""
|
|
412
|
-
Search messages across the entire organization with optional project filtering. Returns messages with FTS/vector ranks and total RRF score.
|
|
413
|
+
Search messages across the entire organization with optional project and template filtering. Returns messages with FTS/vector ranks and total RRF score.
|
|
413
414
|
|
|
414
415
|
This is a cloud-only feature.
|
|
415
416
|
|
|
@@ -427,6 +428,9 @@ class MessagesClient:
|
|
|
427
428
|
project_id : typing.Optional[str]
|
|
428
429
|
Filter messages by project ID
|
|
429
430
|
|
|
431
|
+
template_id : typing.Optional[str]
|
|
432
|
+
Filter messages by template ID
|
|
433
|
+
|
|
430
434
|
limit : typing.Optional[int]
|
|
431
435
|
Maximum number of results to return
|
|
432
436
|
|
|
@@ -459,6 +463,7 @@ class MessagesClient:
|
|
|
459
463
|
search_mode=search_mode,
|
|
460
464
|
roles=roles,
|
|
461
465
|
project_id=project_id,
|
|
466
|
+
template_id=template_id,
|
|
462
467
|
limit=limit,
|
|
463
468
|
start_date=start_date,
|
|
464
469
|
end_date=end_date,
|
|
@@ -601,12 +606,8 @@ class MessagesClient:
|
|
|
601
606
|
)
|
|
602
607
|
return _response.data
|
|
603
608
|
|
|
604
|
-
def
|
|
605
|
-
self,
|
|
606
|
-
agent_id: str,
|
|
607
|
-
*,
|
|
608
|
-
request: MessagesPreviewRawPayloadRequest,
|
|
609
|
-
request_options: typing.Optional[RequestOptions] = None,
|
|
609
|
+
def preview(
|
|
610
|
+
self, agent_id: str, *, request: MessagesPreviewRequest, request_options: typing.Optional[RequestOptions] = None
|
|
610
611
|
) -> typing.Dict[str, typing.Optional[typing.Any]]:
|
|
611
612
|
"""
|
|
612
613
|
Inspect the raw LLM request payload without sending it.
|
|
@@ -619,7 +620,7 @@ class MessagesClient:
|
|
|
619
620
|
----------
|
|
620
621
|
agent_id : str
|
|
621
622
|
|
|
622
|
-
request :
|
|
623
|
+
request : MessagesPreviewRequest
|
|
623
624
|
|
|
624
625
|
request_options : typing.Optional[RequestOptions]
|
|
625
626
|
Request-specific configuration.
|
|
@@ -637,7 +638,7 @@ class MessagesClient:
|
|
|
637
638
|
project="YOUR_PROJECT",
|
|
638
639
|
token="YOUR_TOKEN",
|
|
639
640
|
)
|
|
640
|
-
client.agents.messages.
|
|
641
|
+
client.agents.messages.preview(
|
|
641
642
|
agent_id="agent_id",
|
|
642
643
|
request=LettaRequest(
|
|
643
644
|
messages=[
|
|
@@ -653,7 +654,48 @@ class MessagesClient:
|
|
|
653
654
|
),
|
|
654
655
|
)
|
|
655
656
|
"""
|
|
656
|
-
_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
|
+
)
|
|
657
699
|
return _response.data
|
|
658
700
|
|
|
659
701
|
|
|
@@ -829,7 +871,7 @@ class AsyncMessagesClient:
|
|
|
829
871
|
role="user",
|
|
830
872
|
content=[
|
|
831
873
|
TextContent(
|
|
832
|
-
text="
|
|
874
|
+
text="The sky above the port was the color of television, tuned to a dead channel.",
|
|
833
875
|
)
|
|
834
876
|
],
|
|
835
877
|
)
|
|
@@ -991,7 +1033,7 @@ class AsyncMessagesClient:
|
|
|
991
1033
|
role="user",
|
|
992
1034
|
content=[
|
|
993
1035
|
TextContent(
|
|
994
|
-
text="
|
|
1036
|
+
text="The sky above the port was the color of television, tuned to a dead channel.",
|
|
995
1037
|
)
|
|
996
1038
|
],
|
|
997
1039
|
)
|
|
@@ -1077,13 +1119,14 @@ class AsyncMessagesClient:
|
|
|
1077
1119
|
search_mode: typing.Optional[MessageSearchRequestSearchMode] = OMIT,
|
|
1078
1120
|
roles: typing.Optional[typing.Sequence[MessageRole]] = OMIT,
|
|
1079
1121
|
project_id: typing.Optional[str] = OMIT,
|
|
1122
|
+
template_id: typing.Optional[str] = OMIT,
|
|
1080
1123
|
limit: typing.Optional[int] = OMIT,
|
|
1081
1124
|
start_date: typing.Optional[dt.datetime] = OMIT,
|
|
1082
1125
|
end_date: typing.Optional[dt.datetime] = OMIT,
|
|
1083
1126
|
request_options: typing.Optional[RequestOptions] = None,
|
|
1084
1127
|
) -> typing.List[MessageSearchResult]:
|
|
1085
1128
|
"""
|
|
1086
|
-
Search messages across the entire organization with optional project filtering. Returns messages with FTS/vector ranks and total RRF score.
|
|
1129
|
+
Search messages across the entire organization with optional project and template filtering. Returns messages with FTS/vector ranks and total RRF score.
|
|
1087
1130
|
|
|
1088
1131
|
This is a cloud-only feature.
|
|
1089
1132
|
|
|
@@ -1101,6 +1144,9 @@ class AsyncMessagesClient:
|
|
|
1101
1144
|
project_id : typing.Optional[str]
|
|
1102
1145
|
Filter messages by project ID
|
|
1103
1146
|
|
|
1147
|
+
template_id : typing.Optional[str]
|
|
1148
|
+
Filter messages by template ID
|
|
1149
|
+
|
|
1104
1150
|
limit : typing.Optional[int]
|
|
1105
1151
|
Maximum number of results to return
|
|
1106
1152
|
|
|
@@ -1141,6 +1187,7 @@ class AsyncMessagesClient:
|
|
|
1141
1187
|
search_mode=search_mode,
|
|
1142
1188
|
roles=roles,
|
|
1143
1189
|
project_id=project_id,
|
|
1190
|
+
template_id=template_id,
|
|
1144
1191
|
limit=limit,
|
|
1145
1192
|
start_date=start_date,
|
|
1146
1193
|
end_date=end_date,
|
|
@@ -1299,12 +1346,8 @@ class AsyncMessagesClient:
|
|
|
1299
1346
|
)
|
|
1300
1347
|
return _response.data
|
|
1301
1348
|
|
|
1302
|
-
async def
|
|
1303
|
-
self,
|
|
1304
|
-
agent_id: str,
|
|
1305
|
-
*,
|
|
1306
|
-
request: MessagesPreviewRawPayloadRequest,
|
|
1307
|
-
request_options: typing.Optional[RequestOptions] = None,
|
|
1349
|
+
async def preview(
|
|
1350
|
+
self, agent_id: str, *, request: MessagesPreviewRequest, request_options: typing.Optional[RequestOptions] = None
|
|
1308
1351
|
) -> typing.Dict[str, typing.Optional[typing.Any]]:
|
|
1309
1352
|
"""
|
|
1310
1353
|
Inspect the raw LLM request payload without sending it.
|
|
@@ -1317,7 +1360,7 @@ class AsyncMessagesClient:
|
|
|
1317
1360
|
----------
|
|
1318
1361
|
agent_id : str
|
|
1319
1362
|
|
|
1320
|
-
request :
|
|
1363
|
+
request : MessagesPreviewRequest
|
|
1321
1364
|
|
|
1322
1365
|
request_options : typing.Optional[RequestOptions]
|
|
1323
1366
|
Request-specific configuration.
|
|
@@ -1340,7 +1383,7 @@ class AsyncMessagesClient:
|
|
|
1340
1383
|
|
|
1341
1384
|
|
|
1342
1385
|
async def main() -> None:
|
|
1343
|
-
await client.agents.messages.
|
|
1386
|
+
await client.agents.messages.preview(
|
|
1344
1387
|
agent_id="agent_id",
|
|
1345
1388
|
request=LettaRequest(
|
|
1346
1389
|
messages=[
|
|
@@ -1359,7 +1402,54 @@ class AsyncMessagesClient:
|
|
|
1359
1402
|
|
|
1360
1403
|
asyncio.run(main())
|
|
1361
1404
|
"""
|
|
1362
|
-
_response = await self._raw_client.
|
|
1363
|
-
|
|
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
|
|
1364
1454
|
)
|
|
1365
1455
|
return _response.data
|