102 lines
3.1 KiB
Python
102 lines
3.1 KiB
Python
from letta.constants import DEFAULT_MAX_STEPS
|
|
from letta.schemas.agent import AgentState
|
|
from letta.schemas.enums import DuplicateFileHandling
|
|
from letta.schemas.letta_message import MessageType
|
|
from letta.schemas.message import MessageCreate
|
|
from letta.schemas.user import User
|
|
|
|
|
|
class LettuceClient:
|
|
"""Base class for LettuceClient."""
|
|
|
|
def __init__(self):
|
|
"""Initialize the LettuceClient."""
|
|
self.client: None = None
|
|
|
|
@classmethod
|
|
async def create(cls) -> "LettuceClient":
|
|
"""
|
|
Asynchronously creates the client.
|
|
|
|
Returns:
|
|
LettuceClient: The created LettuceClient instance.
|
|
"""
|
|
instance = cls()
|
|
return instance
|
|
|
|
def get_client(self) -> None:
|
|
"""
|
|
Get the inner client.
|
|
|
|
Returns:
|
|
None: The inner client.
|
|
"""
|
|
return self.client
|
|
|
|
async def get_status(self, run_id: str) -> str | None:
|
|
"""
|
|
Get the status of a run.
|
|
|
|
Args:
|
|
run_id (str): The ID of the run.
|
|
|
|
Returns:
|
|
str | None: The status of the run or None if not available.
|
|
"""
|
|
return None
|
|
|
|
async def cancel(self, run_id: str) -> str | None:
|
|
"""
|
|
Cancel a run.
|
|
|
|
Args:
|
|
run_id (str): The ID of the run to cancel.
|
|
|
|
Returns:
|
|
str | None: The ID of the canceled run or None if not available.
|
|
"""
|
|
return None
|
|
|
|
async def step(
|
|
self,
|
|
agent_state: AgentState,
|
|
actor: User,
|
|
input_messages: list[MessageCreate],
|
|
max_steps: int = DEFAULT_MAX_STEPS,
|
|
run_id: str | None = None,
|
|
use_assistant_message: bool = True,
|
|
include_return_message_types: list[MessageType] | None = None,
|
|
request_start_timestamp_ns: int | None = None,
|
|
) -> str | None:
|
|
"""
|
|
Execute the agent loop on Lettuce service.
|
|
|
|
Args:
|
|
agent_state (AgentState): The state of the agent.
|
|
actor (User): The actor.
|
|
input_messages (list[MessageCreate]): The input messages.
|
|
max_steps (int, optional): The maximum number of steps. Defaults to DEFAULT_MAX_STEPS.
|
|
run_id (str | None, optional): The ID of the run. Defaults to None.
|
|
use_assistant_message (bool, optional): Whether to use the assistant message. Defaults to True.
|
|
include_return_message_types (list[MessageType] | None, optional): The message types to include in the return. Defaults to None.
|
|
request_start_timestamp_ns (int | None, optional): The start timestamp of the request. Defaults to None.
|
|
|
|
Returns:
|
|
str | None: The ID of the run or None if client is not available.
|
|
"""
|
|
return None
|
|
|
|
async def upload_file_to_folder(
|
|
self,
|
|
*,
|
|
folder_id: str,
|
|
actor_id: str,
|
|
file_name: str,
|
|
content: bytes,
|
|
content_type: str | None = None,
|
|
duplicate_handling: DuplicateFileHandling | None = None,
|
|
override_name: str | None = None,
|
|
):
|
|
"""Kick off upload workflow. Base client does nothing and returns None."""
|
|
return None
|