run black, add isort config to pyproject.toml
This commit is contained in:
@@ -1,11 +1,12 @@
|
|||||||
import os
|
import os
|
||||||
from logging.config import fileConfig
|
from logging.config import fileConfig
|
||||||
|
|
||||||
|
from sqlalchemy import engine_from_config, pool
|
||||||
|
|
||||||
from alembic import context
|
from alembic import context
|
||||||
from letta.config import LettaConfig
|
from letta.config import LettaConfig
|
||||||
from letta.orm import Base
|
from letta.orm import Base
|
||||||
from letta.settings import settings
|
from letta.settings import settings
|
||||||
from sqlalchemy import engine_from_config, pool
|
|
||||||
|
|
||||||
letta_config = LettaConfig.load()
|
letta_config = LettaConfig.load()
|
||||||
|
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ Create Date: 2024-12-05 16:46:51.258831
|
|||||||
from typing import Sequence, Union
|
from typing import Sequence, Union
|
||||||
|
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
|
||||||
from alembic import op
|
from alembic import op
|
||||||
|
|
||||||
# revision identifiers, used by Alembic.
|
# revision identifiers, used by Alembic.
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ Create Date: 2024-11-22 15:42:47.209229
|
|||||||
from typing import Sequence, Union
|
from typing import Sequence, Union
|
||||||
|
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
|
||||||
from alembic import op
|
from alembic import op
|
||||||
|
|
||||||
# revision identifiers, used by Alembic.
|
# revision identifiers, used by Alembic.
|
||||||
|
|||||||
@@ -9,9 +9,10 @@ Create Date: 2024-12-04 15:59:41.708396
|
|||||||
from typing import Sequence, Union
|
from typing import Sequence, Union
|
||||||
|
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
from alembic import op
|
|
||||||
from sqlalchemy.dialects import postgresql
|
from sqlalchemy.dialects import postgresql
|
||||||
|
|
||||||
|
from alembic import op
|
||||||
|
|
||||||
# revision identifiers, used by Alembic.
|
# revision identifiers, used by Alembic.
|
||||||
revision: str = "3c683a662c82"
|
revision: str = "3c683a662c82"
|
||||||
down_revision: Union[str, None] = "5987401b40ae"
|
down_revision: Union[str, None] = "5987401b40ae"
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ Create Date: 2024-12-13 17:19:55.796210
|
|||||||
from typing import Sequence, Union
|
from typing import Sequence, Union
|
||||||
|
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
|
||||||
from alembic import op
|
from alembic import op
|
||||||
|
|
||||||
# revision identifiers, used by Alembic.
|
# revision identifiers, used by Alembic.
|
||||||
|
|||||||
@@ -9,11 +9,12 @@ Create Date: 2024-12-14 17:23:08.772554
|
|||||||
from typing import Sequence, Union
|
from typing import Sequence, Union
|
||||||
|
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
from alembic import op
|
|
||||||
from letta.orm.custom_columns import EmbeddingConfigColumn
|
|
||||||
from pgvector.sqlalchemy import Vector
|
from pgvector.sqlalchemy import Vector
|
||||||
from sqlalchemy.dialects import postgresql
|
from sqlalchemy.dialects import postgresql
|
||||||
|
|
||||||
|
from alembic import op
|
||||||
|
from letta.orm.custom_columns import EmbeddingConfigColumn
|
||||||
|
|
||||||
# revision identifiers, used by Alembic.
|
# revision identifiers, used by Alembic.
|
||||||
revision: str = "54dec07619c4"
|
revision: str = "54dec07619c4"
|
||||||
down_revision: Union[str, None] = "4e88e702f85e"
|
down_revision: Union[str, None] = "4e88e702f85e"
|
||||||
|
|||||||
@@ -9,9 +9,10 @@ Create Date: 2024-11-25 14:35:00.896507
|
|||||||
from typing import Sequence, Union
|
from typing import Sequence, Union
|
||||||
|
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
from alembic import op
|
|
||||||
from sqlalchemy.dialects import postgresql
|
from sqlalchemy.dialects import postgresql
|
||||||
|
|
||||||
|
from alembic import op
|
||||||
|
|
||||||
# revision identifiers, used by Alembic.
|
# revision identifiers, used by Alembic.
|
||||||
revision: str = "5987401b40ae"
|
revision: str = "5987401b40ae"
|
||||||
down_revision: Union[str, None] = "1c8880d671ee"
|
down_revision: Union[str, None] = "1c8880d671ee"
|
||||||
|
|||||||
@@ -9,9 +9,10 @@ Create Date: 2024-12-05 14:02:04.163150
|
|||||||
from typing import Sequence, Union
|
from typing import Sequence, Union
|
||||||
|
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
from alembic import op
|
|
||||||
from sqlalchemy.dialects import postgresql
|
from sqlalchemy.dialects import postgresql
|
||||||
|
|
||||||
|
from alembic import op
|
||||||
|
|
||||||
# revision identifiers, used by Alembic.
|
# revision identifiers, used by Alembic.
|
||||||
revision: str = "95badb46fdf9"
|
revision: str = "95badb46fdf9"
|
||||||
down_revision: Union[str, None] = "08b2f8225812"
|
down_revision: Union[str, None] = "08b2f8225812"
|
||||||
|
|||||||
@@ -8,12 +8,13 @@ Create Date: 2024-10-11 14:19:19.875656
|
|||||||
|
|
||||||
from typing import Sequence, Union
|
from typing import Sequence, Union
|
||||||
|
|
||||||
import letta.orm
|
|
||||||
import pgvector
|
import pgvector
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
from alembic import op
|
|
||||||
from sqlalchemy.dialects import postgresql
|
from sqlalchemy.dialects import postgresql
|
||||||
|
|
||||||
|
import letta.orm
|
||||||
|
from alembic import op
|
||||||
|
|
||||||
# revision identifiers, used by Alembic.
|
# revision identifiers, used by Alembic.
|
||||||
revision: str = "9a505cc7eca9"
|
revision: str = "9a505cc7eca9"
|
||||||
down_revision: Union[str, None] = None
|
down_revision: Union[str, None] = None
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ Create Date: 2024-12-09 18:27:25.650079
|
|||||||
from typing import Sequence, Union
|
from typing import Sequence, Union
|
||||||
|
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
|
||||||
from alembic import op
|
from alembic import op
|
||||||
from letta.constants import FUNCTION_RETURN_CHAR_LIMIT
|
from letta.constants import FUNCTION_RETURN_CHAR_LIMIT
|
||||||
|
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ Create Date: 2024-11-06 10:48:08.424108
|
|||||||
from typing import Sequence, Union
|
from typing import Sequence, Union
|
||||||
|
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
|
||||||
from alembic import op
|
from alembic import op
|
||||||
|
|
||||||
# revision identifiers, used by Alembic.
|
# revision identifiers, used by Alembic.
|
||||||
|
|||||||
@@ -9,9 +9,10 @@ Create Date: 2024-12-10 15:05:32.335519
|
|||||||
from typing import Sequence, Union
|
from typing import Sequence, Union
|
||||||
|
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
from alembic import op
|
|
||||||
from sqlalchemy.dialects import postgresql
|
from sqlalchemy.dialects import postgresql
|
||||||
|
|
||||||
|
from alembic import op
|
||||||
|
|
||||||
# revision identifiers, used by Alembic.
|
# revision identifiers, used by Alembic.
|
||||||
revision: str = "c5d964280dff"
|
revision: str = "c5d964280dff"
|
||||||
down_revision: Union[str, None] = "a91994b9752f"
|
down_revision: Union[str, None] = "a91994b9752f"
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ Create Date: 2024-11-12 13:58:57.221081
|
|||||||
from typing import Sequence, Union
|
from typing import Sequence, Union
|
||||||
|
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
|
||||||
from alembic import op
|
from alembic import op
|
||||||
|
|
||||||
# revision identifiers, used by Alembic.
|
# revision identifiers, used by Alembic.
|
||||||
|
|||||||
@@ -9,9 +9,10 @@ Create Date: 2024-11-07 13:29:57.186107
|
|||||||
from typing import Sequence, Union
|
from typing import Sequence, Union
|
||||||
|
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
from alembic import op
|
|
||||||
from sqlalchemy.dialects import postgresql
|
from sqlalchemy.dialects import postgresql
|
||||||
|
|
||||||
|
from alembic import op
|
||||||
|
|
||||||
# revision identifiers, used by Alembic.
|
# revision identifiers, used by Alembic.
|
||||||
revision: str = "cda66b6cb0d6"
|
revision: str = "cda66b6cb0d6"
|
||||||
down_revision: Union[str, None] = "b6d7ca024aa9"
|
down_revision: Union[str, None] = "b6d7ca024aa9"
|
||||||
|
|||||||
@@ -9,9 +9,10 @@ Create Date: 2024-12-12 10:25:31.825635
|
|||||||
from typing import Sequence, Union
|
from typing import Sequence, Union
|
||||||
|
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
from alembic import op
|
|
||||||
from sqlalchemy.dialects import postgresql
|
from sqlalchemy.dialects import postgresql
|
||||||
|
|
||||||
|
from alembic import op
|
||||||
|
|
||||||
# revision identifiers, used by Alembic.
|
# revision identifiers, used by Alembic.
|
||||||
revision: str = "d05669b60ebe"
|
revision: str = "d05669b60ebe"
|
||||||
down_revision: Union[str, None] = "c5d964280dff"
|
down_revision: Union[str, None] = "c5d964280dff"
|
||||||
|
|||||||
@@ -8,11 +8,12 @@ Create Date: 2024-11-05 15:03:12.350096
|
|||||||
|
|
||||||
from typing import Sequence, Union
|
from typing import Sequence, Union
|
||||||
|
|
||||||
import letta
|
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
from alembic import op
|
|
||||||
from sqlalchemy.dialects import postgresql
|
from sqlalchemy.dialects import postgresql
|
||||||
|
|
||||||
|
import letta
|
||||||
|
from alembic import op
|
||||||
|
|
||||||
# revision identifiers, used by Alembic.
|
# revision identifiers, used by Alembic.
|
||||||
revision: str = "d14ae606614c"
|
revision: str = "d14ae606614c"
|
||||||
down_revision: Union[str, None] = "9a505cc7eca9"
|
down_revision: Union[str, None] = "9a505cc7eca9"
|
||||||
|
|||||||
@@ -8,9 +8,10 @@ Create Date: 2024-12-07 14:28:27.643583
|
|||||||
|
|
||||||
from typing import Sequence, Union
|
from typing import Sequence, Union
|
||||||
|
|
||||||
from alembic import op
|
|
||||||
from sqlalchemy.dialects import postgresql
|
from sqlalchemy.dialects import postgresql
|
||||||
|
|
||||||
|
from alembic import op
|
||||||
|
|
||||||
# revision identifiers, used by Alembic.
|
# revision identifiers, used by Alembic.
|
||||||
revision: str = "e1a625072dbf"
|
revision: str = "e1a625072dbf"
|
||||||
down_revision: Union[str, None] = "95badb46fdf9"
|
down_revision: Union[str, None] = "95badb46fdf9"
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ Create Date: 2024-11-18 15:40:13.149438
|
|||||||
from typing import Sequence, Union
|
from typing import Sequence, Union
|
||||||
|
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
|
||||||
from alembic import op
|
from alembic import op
|
||||||
|
|
||||||
# revision identifiers, used by Alembic.
|
# revision identifiers, used by Alembic.
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ Create Date: 2024-11-14 17:51:27.263561
|
|||||||
from typing import Sequence, Union
|
from typing import Sequence, Union
|
||||||
|
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
|
||||||
from alembic import op
|
from alembic import op
|
||||||
|
|
||||||
# revision identifiers, used by Alembic.
|
# revision identifiers, used by Alembic.
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
import typer
|
import typer
|
||||||
from letta import EmbeddingConfig, LLMConfig
|
|
||||||
from swarm import Swarm
|
from swarm import Swarm
|
||||||
|
|
||||||
|
from letta import EmbeddingConfig, LLMConfig
|
||||||
|
|
||||||
"""
|
"""
|
||||||
This is an example of how to implement the basic example provided by OpenAI for tranferring a conversation between two agents:
|
This is an example of how to implement the basic example provided by OpenAI for tranferring a conversation between two agents:
|
||||||
https://github.com/openai/swarm/tree/main?tab=readme-ov-file#usage
|
https://github.com/openai/swarm/tree/main?tab=readme-ov-file#usage
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import json
|
|||||||
from typing import List, Optional
|
from typing import List, Optional
|
||||||
|
|
||||||
import typer
|
import typer
|
||||||
|
|
||||||
from letta import AgentState, EmbeddingConfig, LLMConfig, create_client
|
from letta import AgentState, EmbeddingConfig, LLMConfig, create_client
|
||||||
from letta.schemas.agent import AgentType
|
from letta.schemas.agent import AgentType
|
||||||
from letta.schemas.memory import BasicBlockMemory, Block
|
from letta.schemas.memory import BasicBlockMemory, Block
|
||||||
|
|||||||
@@ -4,10 +4,7 @@ import uuid
|
|||||||
from letta import create_client
|
from letta import create_client
|
||||||
from letta.schemas.letta_message import ToolCallMessage
|
from letta.schemas.letta_message import ToolCallMessage
|
||||||
from letta.schemas.tool_rule import ChildToolRule, InitToolRule, TerminalToolRule
|
from letta.schemas.tool_rule import ChildToolRule, InitToolRule, TerminalToolRule
|
||||||
from tests.helpers.endpoints_helper import (
|
from tests.helpers.endpoints_helper import assert_invoked_send_message_with_keyword, setup_agent
|
||||||
assert_invoked_send_message_with_keyword,
|
|
||||||
setup_agent,
|
|
||||||
)
|
|
||||||
from tests.helpers.utils import cleanup
|
from tests.helpers.utils import cleanup
|
||||||
from tests.test_model_letta_perfomance import llm_config_dir
|
from tests.test_model_letta_perfomance import llm_config_dir
|
||||||
|
|
||||||
|
|||||||
@@ -12,13 +12,7 @@ from letta.schemas.file import FileMetadata
|
|||||||
from letta.schemas.job import Job
|
from letta.schemas.job import Job
|
||||||
from letta.schemas.letta_message import LettaMessage
|
from letta.schemas.letta_message import LettaMessage
|
||||||
from letta.schemas.llm_config import LLMConfig
|
from letta.schemas.llm_config import LLMConfig
|
||||||
from letta.schemas.memory import (
|
from letta.schemas.memory import ArchivalMemorySummary, BasicBlockMemory, ChatMemory, Memory, RecallMemorySummary
|
||||||
ArchivalMemorySummary,
|
|
||||||
BasicBlockMemory,
|
|
||||||
ChatMemory,
|
|
||||||
Memory,
|
|
||||||
RecallMemorySummary,
|
|
||||||
)
|
|
||||||
from letta.schemas.message import Message
|
from letta.schemas.message import Message
|
||||||
from letta.schemas.openai.chat_completion_response import UsageStatistics
|
from letta.schemas.openai.chat_completion_response import UsageStatistics
|
||||||
from letta.schemas.organization import Organization
|
from letta.schemas.organization import Organization
|
||||||
|
|||||||
@@ -7,17 +7,17 @@ from abc import ABC, abstractmethod
|
|||||||
from typing import List, Optional, Tuple, Union
|
from typing import List, Optional, Tuple, Union
|
||||||
|
|
||||||
from letta.constants import (
|
from letta.constants import (
|
||||||
BASE_TOOLS,
|
BASE_TOOLS,
|
||||||
CLI_WARNING_PREFIX,
|
CLI_WARNING_PREFIX,
|
||||||
ERROR_MESSAGE_PREFIX,
|
ERROR_MESSAGE_PREFIX,
|
||||||
FIRST_MESSAGE_ATTEMPTS,
|
FIRST_MESSAGE_ATTEMPTS,
|
||||||
FUNC_FAILED_HEARTBEAT_MESSAGE,
|
FUNC_FAILED_HEARTBEAT_MESSAGE,
|
||||||
LLM_MAX_TOKENS,
|
LLM_MAX_TOKENS,
|
||||||
MESSAGE_SUMMARY_TRUNC_KEEP_N_LAST,
|
MESSAGE_SUMMARY_TRUNC_KEEP_N_LAST,
|
||||||
MESSAGE_SUMMARY_TRUNC_TOKEN_FRAC,
|
MESSAGE_SUMMARY_TRUNC_TOKEN_FRAC,
|
||||||
MESSAGE_SUMMARY_WARNING_FRAC,
|
MESSAGE_SUMMARY_WARNING_FRAC,
|
||||||
O1_BASE_TOOLS,
|
O1_BASE_TOOLS,
|
||||||
REQ_HEARTBEAT_MESSAGE,
|
REQ_HEARTBEAT_MESSAGE,
|
||||||
)
|
)
|
||||||
from letta.errors import ContextWindowExceededError
|
from letta.errors import ContextWindowExceededError
|
||||||
from letta.helpers import ToolRulesSolver
|
from letta.helpers import ToolRulesSolver
|
||||||
@@ -33,44 +33,31 @@ from letta.schemas.embedding_config import EmbeddingConfig
|
|||||||
from letta.schemas.enums import MessageRole
|
from letta.schemas.enums import MessageRole
|
||||||
from letta.schemas.memory import ContextWindowOverview, Memory
|
from letta.schemas.memory import ContextWindowOverview, Memory
|
||||||
from letta.schemas.message import Message
|
from letta.schemas.message import Message
|
||||||
from letta.schemas.openai.chat_completion_request import (
|
from letta.schemas.openai.chat_completion_request import Tool as ChatCompletionRequestTool
|
||||||
Tool as ChatCompletionRequestTool,
|
|
||||||
)
|
|
||||||
from letta.schemas.openai.chat_completion_response import ChatCompletionResponse
|
from letta.schemas.openai.chat_completion_response import ChatCompletionResponse
|
||||||
from letta.schemas.openai.chat_completion_response import (
|
from letta.schemas.openai.chat_completion_response import Message as ChatCompletionMessage
|
||||||
Message as ChatCompletionMessage,
|
|
||||||
)
|
|
||||||
from letta.schemas.openai.chat_completion_response import UsageStatistics
|
from letta.schemas.openai.chat_completion_response import UsageStatistics
|
||||||
from letta.schemas.tool import Tool
|
from letta.schemas.tool import Tool
|
||||||
from letta.schemas.tool_rule import TerminalToolRule
|
from letta.schemas.tool_rule import TerminalToolRule
|
||||||
from letta.schemas.usage import LettaUsageStatistics
|
from letta.schemas.usage import LettaUsageStatistics
|
||||||
from letta.services.agent_manager import AgentManager
|
from letta.services.agent_manager import AgentManager
|
||||||
from letta.services.block_manager import BlockManager
|
from letta.services.block_manager import BlockManager
|
||||||
from letta.services.helpers.agent_manager_helper import (
|
from letta.services.helpers.agent_manager_helper import check_supports_structured_output, compile_memory_metadata_block
|
||||||
check_supports_structured_output,
|
|
||||||
compile_memory_metadata_block,
|
|
||||||
)
|
|
||||||
from letta.services.message_manager import MessageManager
|
from letta.services.message_manager import MessageManager
|
||||||
from letta.services.passage_manager import PassageManager
|
from letta.services.passage_manager import PassageManager
|
||||||
from letta.services.tool_execution_sandbox import ToolExecutionSandbox
|
from letta.services.tool_execution_sandbox import ToolExecutionSandbox
|
||||||
from letta.streaming_interface import StreamingRefreshCLIInterface
|
from letta.streaming_interface import StreamingRefreshCLIInterface
|
||||||
from letta.system import (
|
from letta.system import get_heartbeat, get_token_limit_warning, package_function_response, package_summarize_message, package_user_message
|
||||||
get_heartbeat,
|
|
||||||
get_token_limit_warning,
|
|
||||||
package_function_response,
|
|
||||||
package_summarize_message,
|
|
||||||
package_user_message,
|
|
||||||
)
|
|
||||||
from letta.utils import (
|
from letta.utils import (
|
||||||
count_tokens,
|
count_tokens,
|
||||||
get_friendly_error_msg,
|
get_friendly_error_msg,
|
||||||
get_tool_call_id,
|
get_tool_call_id,
|
||||||
get_utc_time,
|
get_utc_time,
|
||||||
json_dumps,
|
json_dumps,
|
||||||
json_loads,
|
json_loads,
|
||||||
parse_json,
|
parse_json,
|
||||||
printd,
|
printd,
|
||||||
validate_function_response,
|
validate_function_response,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import uuid
|
|||||||
from typing import Annotated, Union
|
from typing import Annotated, Union
|
||||||
|
|
||||||
import typer
|
import typer
|
||||||
|
|
||||||
from letta import LocalClient, RESTClient, create_client
|
from letta import LocalClient, RESTClient, create_client
|
||||||
from letta.benchmark.constants import HUMAN, PERSONA, PROMPTS, TRIES
|
from letta.benchmark.constants import HUMAN, PERSONA, PROMPTS, TRIES
|
||||||
from letta.config import LettaConfig
|
from letta.config import LettaConfig
|
||||||
|
|||||||
@@ -3,18 +3,14 @@ import sys
|
|||||||
from enum import Enum
|
from enum import Enum
|
||||||
from typing import Annotated, Optional
|
from typing import Annotated, Optional
|
||||||
|
|
||||||
import letta.utils as utils
|
|
||||||
import questionary
|
import questionary
|
||||||
import typer
|
import typer
|
||||||
|
|
||||||
|
import letta.utils as utils
|
||||||
from letta import create_client
|
from letta import create_client
|
||||||
from letta.agent import Agent, save_agent
|
from letta.agent import Agent, save_agent
|
||||||
from letta.config import LettaConfig
|
from letta.config import LettaConfig
|
||||||
from letta.constants import (
|
from letta.constants import CLI_WARNING_PREFIX, CORE_MEMORY_BLOCK_CHAR_LIMIT, LETTA_DIR, MIN_CONTEXT_WINDOW
|
||||||
CLI_WARNING_PREFIX,
|
|
||||||
CORE_MEMORY_BLOCK_CHAR_LIMIT,
|
|
||||||
LETTA_DIR,
|
|
||||||
MIN_CONTEXT_WINDOW,
|
|
||||||
)
|
|
||||||
from letta.local_llm.constants import ASSISTANT_MESSAGE_CLI_SYMBOL
|
from letta.local_llm.constants import ASSISTANT_MESSAGE_CLI_SYMBOL
|
||||||
from letta.log import get_logger
|
from letta.log import get_logger
|
||||||
from letta.schemas.enums import OptionState
|
from letta.schemas.enums import OptionState
|
||||||
@@ -22,9 +18,7 @@ from letta.schemas.memory import ChatMemory, Memory
|
|||||||
from letta.server.server import logger as server_logger
|
from letta.server.server import logger as server_logger
|
||||||
|
|
||||||
# from letta.interface import CLIInterface as interface # for printing to terminal
|
# from letta.interface import CLIInterface as interface # for printing to terminal
|
||||||
from letta.streaming_interface import (
|
from letta.streaming_interface import StreamingRefreshCLIInterface as interface # for printing to terminal
|
||||||
StreamingRefreshCLIInterface as interface, # for printing to terminal
|
|
||||||
)
|
|
||||||
from letta.utils import open_folder_in_explorer, printd
|
from letta.utils import open_folder_in_explorer, printd
|
||||||
|
|
||||||
logger = get_logger(__name__)
|
logger = get_logger(__name__)
|
||||||
|
|||||||
@@ -5,10 +5,11 @@ from typing import Annotated, List, Optional
|
|||||||
|
|
||||||
import questionary
|
import questionary
|
||||||
import typer
|
import typer
|
||||||
from letta import utils
|
|
||||||
from prettytable.colortable import ColorTable, Themes
|
from prettytable.colortable import ColorTable, Themes
|
||||||
from tqdm import tqdm
|
from tqdm import tqdm
|
||||||
|
|
||||||
|
from letta import utils
|
||||||
|
|
||||||
app = typer.Typer()
|
app = typer.Typer()
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ from typing import Annotated, List, Optional
|
|||||||
|
|
||||||
import questionary
|
import questionary
|
||||||
import typer
|
import typer
|
||||||
|
|
||||||
from letta import create_client
|
from letta import create_client
|
||||||
from letta.data_sources.connectors import DirectoryConnector
|
from letta.data_sources.connectors import DirectoryConnector
|
||||||
|
|
||||||
|
|||||||
@@ -2,16 +2,10 @@ import logging
|
|||||||
import time
|
import time
|
||||||
from typing import Callable, Dict, Generator, List, Optional, Union
|
from typing import Callable, Dict, Generator, List, Optional, Union
|
||||||
|
|
||||||
import letta.utils
|
|
||||||
import requests
|
import requests
|
||||||
from letta.constants import (
|
|
||||||
ADMIN_PREFIX,
|
import letta.utils
|
||||||
BASE_MEMORY_TOOLS,
|
from letta.constants import ADMIN_PREFIX, BASE_MEMORY_TOOLS, BASE_TOOLS, DEFAULT_HUMAN, DEFAULT_PERSONA, FUNCTION_RETURN_CHAR_LIMIT
|
||||||
BASE_TOOLS,
|
|
||||||
DEFAULT_HUMAN,
|
|
||||||
DEFAULT_PERSONA,
|
|
||||||
FUNCTION_RETURN_CHAR_LIMIT,
|
|
||||||
)
|
|
||||||
from letta.data_sources.connectors import DataConnector
|
from letta.data_sources.connectors import DataConnector
|
||||||
from letta.functions.functions import parse_source_code
|
from letta.functions.functions import parse_source_code
|
||||||
from letta.orm.errors import NoResultFound
|
from letta.orm.errors import NoResultFound
|
||||||
@@ -26,26 +20,20 @@ from letta.schemas.job import Job
|
|||||||
from letta.schemas.letta_request import LettaRequest, LettaStreamingRequest
|
from letta.schemas.letta_request import LettaRequest, LettaStreamingRequest
|
||||||
from letta.schemas.letta_response import LettaResponse, LettaStreamingResponse
|
from letta.schemas.letta_response import LettaResponse, LettaStreamingResponse
|
||||||
from letta.schemas.llm_config import LLMConfig
|
from letta.schemas.llm_config import LLMConfig
|
||||||
from letta.schemas.memory import (
|
from letta.schemas.memory import ArchivalMemorySummary, ChatMemory, CreateArchivalMemory, Memory, RecallMemorySummary
|
||||||
ArchivalMemorySummary,
|
|
||||||
ChatMemory,
|
|
||||||
CreateArchivalMemory,
|
|
||||||
Memory,
|
|
||||||
RecallMemorySummary,
|
|
||||||
)
|
|
||||||
from letta.schemas.message import Message, MessageCreate, MessageUpdate
|
from letta.schemas.message import Message, MessageCreate, MessageUpdate
|
||||||
from letta.schemas.openai.chat_completions import ToolCall
|
from letta.schemas.openai.chat_completions import ToolCall
|
||||||
from letta.schemas.organization import Organization
|
from letta.schemas.organization import Organization
|
||||||
from letta.schemas.passage import Passage
|
from letta.schemas.passage import Passage
|
||||||
from letta.schemas.sandbox_config import (
|
from letta.schemas.sandbox_config import (
|
||||||
E2BSandboxConfig,
|
E2BSandboxConfig,
|
||||||
LocalSandboxConfig,
|
LocalSandboxConfig,
|
||||||
SandboxConfig,
|
SandboxConfig,
|
||||||
SandboxConfigCreate,
|
SandboxConfigCreate,
|
||||||
SandboxConfigUpdate,
|
SandboxConfigUpdate,
|
||||||
SandboxEnvironmentVariable,
|
SandboxEnvironmentVariable,
|
||||||
SandboxEnvironmentVariableCreate,
|
SandboxEnvironmentVariableCreate,
|
||||||
SandboxEnvironmentVariableUpdate,
|
SandboxEnvironmentVariableUpdate,
|
||||||
)
|
)
|
||||||
from letta.schemas.source import Source, SourceCreate, SourceUpdate
|
from letta.schemas.source import Source, SourceCreate, SourceUpdate
|
||||||
from letta.schemas.tool import Tool, ToolCreate, ToolUpdate
|
from letta.schemas.tool import Tool, ToolCreate, ToolUpdate
|
||||||
|
|||||||
@@ -3,14 +3,11 @@ from typing import Generator
|
|||||||
|
|
||||||
import httpx
|
import httpx
|
||||||
from httpx_sse import SSEError, connect_sse
|
from httpx_sse import SSEError, connect_sse
|
||||||
|
|
||||||
from letta.constants import OPENAI_CONTEXT_WINDOW_ERROR_SUBSTRING
|
from letta.constants import OPENAI_CONTEXT_WINDOW_ERROR_SUBSTRING
|
||||||
from letta.errors import LLMError
|
from letta.errors import LLMError
|
||||||
from letta.schemas.enums import MessageStreamStatus
|
from letta.schemas.enums import MessageStreamStatus
|
||||||
from letta.schemas.letta_message import (
|
from letta.schemas.letta_message import ReasoningMessage, ToolCallMessage, ToolReturnMessage
|
||||||
ReasoningMessage,
|
|
||||||
ToolCallMessage,
|
|
||||||
ToolReturnMessage,
|
|
||||||
)
|
|
||||||
from letta.schemas.letta_response import LettaStreamingResponse
|
from letta.schemas.letta_response import LettaStreamingResponse
|
||||||
from letta.schemas.usage import LettaUsageStatistics
|
from letta.schemas.usage import LettaUsageStatistics
|
||||||
|
|
||||||
|
|||||||
@@ -3,12 +3,10 @@ from datetime import datetime
|
|||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
from IPython.display import HTML, display
|
from IPython.display import HTML, display
|
||||||
from letta.local_llm.constants import (
|
|
||||||
ASSISTANT_MESSAGE_CLI_SYMBOL,
|
|
||||||
INNER_THOUGHTS_CLI_SYMBOL,
|
|
||||||
)
|
|
||||||
from sqlalchemy.testing.plugin.plugin_base import warnings
|
from sqlalchemy.testing.plugin.plugin_base import warnings
|
||||||
|
|
||||||
|
from letta.local_llm.constants import ASSISTANT_MESSAGE_CLI_SYMBOL, INNER_THOUGHTS_CLI_SYMBOL
|
||||||
|
|
||||||
|
|
||||||
def pprint(messages):
|
def pprint(messages):
|
||||||
"""Utility function for pretty-printing the output of client.send_message in notebooks"""
|
"""Utility function for pretty-printing the output of client.send_message in notebooks"""
|
||||||
|
|||||||
@@ -5,12 +5,12 @@ from typing import Optional
|
|||||||
|
|
||||||
import letta
|
import letta
|
||||||
from letta.constants import (
|
from letta.constants import (
|
||||||
CORE_MEMORY_HUMAN_CHAR_LIMIT,
|
CORE_MEMORY_HUMAN_CHAR_LIMIT,
|
||||||
CORE_MEMORY_PERSONA_CHAR_LIMIT,
|
CORE_MEMORY_PERSONA_CHAR_LIMIT,
|
||||||
DEFAULT_HUMAN,
|
DEFAULT_HUMAN,
|
||||||
DEFAULT_PERSONA,
|
DEFAULT_PERSONA,
|
||||||
DEFAULT_PRESET,
|
DEFAULT_PRESET,
|
||||||
LETTA_DIR,
|
LETTA_DIR,
|
||||||
)
|
)
|
||||||
from letta.log import get_logger
|
from letta.log import get_logger
|
||||||
from letta.schemas.embedding_config import EmbeddingConfig
|
from letta.schemas.embedding_config import EmbeddingConfig
|
||||||
|
|||||||
@@ -1,11 +1,8 @@
|
|||||||
from typing import Dict, Iterator, List, Tuple
|
from typing import Dict, Iterator, List, Tuple
|
||||||
|
|
||||||
import typer
|
import typer
|
||||||
from letta.data_sources.connectors_helper import (
|
|
||||||
assert_all_files_exist_locally,
|
from letta.data_sources.connectors_helper import assert_all_files_exist_locally, extract_metadata_from_files, get_filenames_in_dir
|
||||||
extract_metadata_from_files,
|
|
||||||
get_filenames_in_dir,
|
|
||||||
)
|
|
||||||
from letta.embeddings import embedding_model
|
from letta.embeddings import embedding_model
|
||||||
from letta.schemas.file import FileMetadata
|
from letta.schemas.file import FileMetadata
|
||||||
from letta.schemas.passage import Passage
|
from letta.schemas.passage import Passage
|
||||||
|
|||||||
@@ -3,11 +3,8 @@ from typing import Any, List, Optional
|
|||||||
|
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import tiktoken
|
import tiktoken
|
||||||
from letta.constants import (
|
|
||||||
EMBEDDING_TO_TOKENIZER_DEFAULT,
|
from letta.constants import EMBEDDING_TO_TOKENIZER_DEFAULT, EMBEDDING_TO_TOKENIZER_MAP, MAX_EMBEDDING_DIM
|
||||||
EMBEDDING_TO_TOKENIZER_MAP,
|
|
||||||
MAX_EMBEDDING_DIM,
|
|
||||||
)
|
|
||||||
from letta.schemas.embedding_config import EmbeddingConfig
|
from letta.schemas.embedding_config import EmbeddingConfig
|
||||||
from letta.utils import is_valid_url, printd
|
from letta.utils import is_valid_url, printd
|
||||||
|
|
||||||
|
|||||||
@@ -3,10 +3,8 @@ import uuid
|
|||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
import requests
|
import requests
|
||||||
from letta.constants import (
|
|
||||||
MESSAGE_CHATGPT_FUNCTION_MODEL,
|
from letta.constants import MESSAGE_CHATGPT_FUNCTION_MODEL, MESSAGE_CHATGPT_FUNCTION_SYSTEM_MESSAGE
|
||||||
MESSAGE_CHATGPT_FUNCTION_SYSTEM_MESSAGE,
|
|
||||||
)
|
|
||||||
from letta.llm_api.llm_api_tools import create
|
from letta.llm_api.llm_api_tools import create
|
||||||
from letta.schemas.message import Message
|
from letta.schemas.message import Message
|
||||||
from letta.utils import json_dumps, json_loads
|
from letta.utils import json_dumps, json_loads
|
||||||
|
|||||||
@@ -1,16 +1,11 @@
|
|||||||
import json
|
import json
|
||||||
from typing import List, Optional, Union
|
from typing import List, Optional, Union
|
||||||
|
|
||||||
from letta.schemas.enums import ToolRuleType
|
|
||||||
from letta.schemas.tool_rule import (
|
|
||||||
BaseToolRule,
|
|
||||||
ChildToolRule,
|
|
||||||
ConditionalToolRule,
|
|
||||||
InitToolRule,
|
|
||||||
TerminalToolRule,
|
|
||||||
)
|
|
||||||
from pydantic import BaseModel, Field
|
from pydantic import BaseModel, Field
|
||||||
|
|
||||||
|
from letta.schemas.enums import ToolRuleType
|
||||||
|
from letta.schemas.tool_rule import BaseToolRule, ChildToolRule, ConditionalToolRule, InitToolRule, TerminalToolRule
|
||||||
|
|
||||||
|
|
||||||
class ToolRuleValidationError(Exception):
|
class ToolRuleValidationError(Exception):
|
||||||
"""Custom exception for tool rule validation errors in ToolRulesSolver."""
|
"""Custom exception for tool rule validation errors in ToolRulesSolver."""
|
||||||
|
|||||||
@@ -3,11 +3,9 @@ from abc import ABC, abstractmethod
|
|||||||
from typing import List, Optional
|
from typing import List, Optional
|
||||||
|
|
||||||
from colorama import Fore, Style, init
|
from colorama import Fore, Style, init
|
||||||
|
|
||||||
from letta.constants import CLI_WARNING_PREFIX
|
from letta.constants import CLI_WARNING_PREFIX
|
||||||
from letta.local_llm.constants import (
|
from letta.local_llm.constants import ASSISTANT_MESSAGE_CLI_SYMBOL, INNER_THOUGHTS_CLI_SYMBOL
|
||||||
ASSISTANT_MESSAGE_CLI_SYMBOL,
|
|
||||||
INNER_THOUGHTS_CLI_SYMBOL,
|
|
||||||
)
|
|
||||||
from letta.schemas.message import Message
|
from letta.schemas.message import Message
|
||||||
from letta.utils import json_loads, printd
|
from letta.utils import json_loads, printd
|
||||||
|
|
||||||
|
|||||||
@@ -5,13 +5,9 @@ from typing import List, Optional, Union
|
|||||||
from letta.llm_api.helpers import make_post_request
|
from letta.llm_api.helpers import make_post_request
|
||||||
from letta.schemas.message import Message
|
from letta.schemas.message import Message
|
||||||
from letta.schemas.openai.chat_completion_request import ChatCompletionRequest, Tool
|
from letta.schemas.openai.chat_completion_request import ChatCompletionRequest, Tool
|
||||||
|
from letta.schemas.openai.chat_completion_response import ChatCompletionResponse, Choice, FunctionCall
|
||||||
from letta.schemas.openai.chat_completion_response import (
|
from letta.schemas.openai.chat_completion_response import (
|
||||||
ChatCompletionResponse,
|
Message as ChoiceMessage, # NOTE: avoid conflict with our own Letta Message datatype
|
||||||
Choice,
|
|
||||||
FunctionCall,
|
|
||||||
)
|
|
||||||
from letta.schemas.openai.chat_completion_response import (
|
|
||||||
Message as ChoiceMessage, # NOTE: avoid conflict with our own Letta Message datatype
|
|
||||||
)
|
)
|
||||||
from letta.schemas.openai.chat_completion_response import ToolCall, UsageStatistics
|
from letta.schemas.openai.chat_completion_response import ToolCall, UsageStatistics
|
||||||
from letta.utils import get_utc_time, smart_urljoin
|
from letta.utils import get_utc_time, smart_urljoin
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
|
|
||||||
import requests
|
import requests
|
||||||
|
|
||||||
from letta.llm_api.helpers import make_post_request
|
from letta.llm_api.helpers import make_post_request
|
||||||
from letta.schemas.llm_config import LLMConfig
|
from letta.schemas.llm_config import LLMConfig
|
||||||
from letta.schemas.openai.chat_completion_response import ChatCompletionResponse
|
from letta.schemas.openai.chat_completion_response import ChatCompletionResponse
|
||||||
|
|||||||
@@ -3,16 +3,13 @@ import uuid
|
|||||||
from typing import List, Optional, Union
|
from typing import List, Optional, Union
|
||||||
|
|
||||||
import requests
|
import requests
|
||||||
|
|
||||||
from letta.local_llm.utils import count_tokens
|
from letta.local_llm.utils import count_tokens
|
||||||
from letta.schemas.message import Message
|
from letta.schemas.message import Message
|
||||||
from letta.schemas.openai.chat_completion_request import ChatCompletionRequest, Tool
|
from letta.schemas.openai.chat_completion_request import ChatCompletionRequest, Tool
|
||||||
|
from letta.schemas.openai.chat_completion_response import ChatCompletionResponse, Choice, FunctionCall
|
||||||
from letta.schemas.openai.chat_completion_response import (
|
from letta.schemas.openai.chat_completion_response import (
|
||||||
ChatCompletionResponse,
|
Message as ChoiceMessage, # NOTE: avoid conflict with our own Letta Message datatype
|
||||||
Choice,
|
|
||||||
FunctionCall,
|
|
||||||
)
|
|
||||||
from letta.schemas.openai.chat_completion_response import (
|
|
||||||
Message as ChoiceMessage, # NOTE: avoid conflict with our own Letta Message datatype
|
|
||||||
)
|
)
|
||||||
from letta.schemas.openai.chat_completion_response import ToolCall, UsageStatistics
|
from letta.schemas.openai.chat_completion_response import ToolCall, UsageStatistics
|
||||||
from letta.utils import get_tool_call_id, get_utc_time, json_dumps, smart_urljoin
|
from letta.utils import get_tool_call_id, get_utc_time, json_dumps, smart_urljoin
|
||||||
@@ -275,10 +272,7 @@ def convert_tools_to_cohere_format(tools: List[Tool], inner_thoughts_in_kwargs:
|
|||||||
if inner_thoughts_in_kwargs:
|
if inner_thoughts_in_kwargs:
|
||||||
# NOTE: since Cohere doesn't allow "text" in the response when a tool call happens, if we want
|
# NOTE: since Cohere doesn't allow "text" in the response when a tool call happens, if we want
|
||||||
# a simultaneous CoT + tool call we need to put it inside a kwarg
|
# a simultaneous CoT + tool call we need to put it inside a kwarg
|
||||||
from letta.local_llm.constants import (
|
from letta.local_llm.constants import INNER_THOUGHTS_KWARG, INNER_THOUGHTS_KWARG_DESCRIPTION
|
||||||
INNER_THOUGHTS_KWARG,
|
|
||||||
INNER_THOUGHTS_KWARG_DESCRIPTION,
|
|
||||||
)
|
|
||||||
|
|
||||||
for cohere_tool in tools_dict_list:
|
for cohere_tool in tools_dict_list:
|
||||||
cohere_tool["parameter_definitions"][INNER_THOUGHTS_KWARG] = {
|
cohere_tool["parameter_definitions"][INNER_THOUGHTS_KWARG] = {
|
||||||
|
|||||||
@@ -2,19 +2,13 @@ import uuid
|
|||||||
from typing import List, Optional, Tuple
|
from typing import List, Optional, Tuple
|
||||||
|
|
||||||
import requests
|
import requests
|
||||||
|
|
||||||
from letta.constants import NON_USER_MSG_PREFIX
|
from letta.constants import NON_USER_MSG_PREFIX
|
||||||
from letta.llm_api.helpers import make_post_request
|
from letta.llm_api.helpers import make_post_request
|
||||||
from letta.local_llm.json_parser import clean_json_string_extra_backslash
|
from letta.local_llm.json_parser import clean_json_string_extra_backslash
|
||||||
from letta.local_llm.utils import count_tokens
|
from letta.local_llm.utils import count_tokens
|
||||||
from letta.schemas.openai.chat_completion_request import Tool
|
from letta.schemas.openai.chat_completion_request import Tool
|
||||||
from letta.schemas.openai.chat_completion_response import (
|
from letta.schemas.openai.chat_completion_response import ChatCompletionResponse, Choice, FunctionCall, Message, ToolCall, UsageStatistics
|
||||||
ChatCompletionResponse,
|
|
||||||
Choice,
|
|
||||||
FunctionCall,
|
|
||||||
Message,
|
|
||||||
ToolCall,
|
|
||||||
UsageStatistics,
|
|
||||||
)
|
|
||||||
from letta.utils import get_tool_call_id, get_utc_time, json_dumps
|
from letta.utils import get_tool_call_id, get_utc_time, json_dumps
|
||||||
|
|
||||||
|
|
||||||
@@ -229,10 +223,7 @@ def convert_tools_to_google_ai_format(tools: List[Tool], inner_thoughts_in_kwarg
|
|||||||
param_fields["type"] = param_fields["type"].upper()
|
param_fields["type"] = param_fields["type"].upper()
|
||||||
# Add inner thoughts
|
# Add inner thoughts
|
||||||
if inner_thoughts_in_kwargs:
|
if inner_thoughts_in_kwargs:
|
||||||
from letta.local_llm.constants import (
|
from letta.local_llm.constants import INNER_THOUGHTS_KWARG, INNER_THOUGHTS_KWARG_DESCRIPTION
|
||||||
INNER_THOUGHTS_KWARG,
|
|
||||||
INNER_THOUGHTS_KWARG_DESCRIPTION,
|
|
||||||
)
|
|
||||||
|
|
||||||
func["parameters"]["properties"][INNER_THOUGHTS_KWARG] = {
|
func["parameters"]["properties"][INNER_THOUGHTS_KWARG] = {
|
||||||
"type": "STRING",
|
"type": "STRING",
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ from collections import OrderedDict
|
|||||||
from typing import Any, List, Union
|
from typing import Any, List, Union
|
||||||
|
|
||||||
import requests
|
import requests
|
||||||
|
|
||||||
from letta.constants import OPENAI_CONTEXT_WINDOW_ERROR_SUBSTRING
|
from letta.constants import OPENAI_CONTEXT_WINDOW_ERROR_SUBSTRING
|
||||||
from letta.schemas.openai.chat_completion_response import ChatCompletionResponse, Choice
|
from letta.schemas.openai.chat_completion_response import ChatCompletionResponse, Choice
|
||||||
from letta.utils import json_dumps, printd
|
from letta.utils import json_dumps, printd
|
||||||
|
|||||||
@@ -3,42 +3,27 @@ import time
|
|||||||
from typing import List, Optional, Union
|
from typing import List, Optional, Union
|
||||||
|
|
||||||
import requests
|
import requests
|
||||||
|
|
||||||
from letta.constants import CLI_WARNING_PREFIX
|
from letta.constants import CLI_WARNING_PREFIX
|
||||||
from letta.errors import LettaConfigurationError, RateLimitExceededError
|
from letta.errors import LettaConfigurationError, RateLimitExceededError
|
||||||
from letta.llm_api.anthropic import anthropic_chat_completions_request
|
from letta.llm_api.anthropic import anthropic_chat_completions_request
|
||||||
from letta.llm_api.azure_openai import azure_openai_chat_completions_request
|
from letta.llm_api.azure_openai import azure_openai_chat_completions_request
|
||||||
from letta.llm_api.google_ai import (
|
from letta.llm_api.google_ai import convert_tools_to_google_ai_format, google_ai_chat_completions_request
|
||||||
convert_tools_to_google_ai_format,
|
from letta.llm_api.helpers import add_inner_thoughts_to_functions, unpack_all_inner_thoughts_from_kwargs
|
||||||
google_ai_chat_completions_request,
|
|
||||||
)
|
|
||||||
from letta.llm_api.helpers import (
|
|
||||||
add_inner_thoughts_to_functions,
|
|
||||||
unpack_all_inner_thoughts_from_kwargs,
|
|
||||||
)
|
|
||||||
from letta.llm_api.openai import (
|
from letta.llm_api.openai import (
|
||||||
build_openai_chat_completions_request,
|
build_openai_chat_completions_request,
|
||||||
openai_chat_completions_process_stream,
|
openai_chat_completions_process_stream,
|
||||||
openai_chat_completions_request,
|
openai_chat_completions_request,
|
||||||
)
|
)
|
||||||
from letta.local_llm.chat_completion_proxy import get_chat_completion
|
from letta.local_llm.chat_completion_proxy import get_chat_completion
|
||||||
from letta.local_llm.constants import (
|
from letta.local_llm.constants import INNER_THOUGHTS_KWARG, INNER_THOUGHTS_KWARG_DESCRIPTION
|
||||||
INNER_THOUGHTS_KWARG,
|
|
||||||
INNER_THOUGHTS_KWARG_DESCRIPTION,
|
|
||||||
)
|
|
||||||
from letta.local_llm.utils import num_tokens_from_functions, num_tokens_from_messages
|
from letta.local_llm.utils import num_tokens_from_functions, num_tokens_from_messages
|
||||||
from letta.schemas.llm_config import LLMConfig
|
from letta.schemas.llm_config import LLMConfig
|
||||||
from letta.schemas.message import Message
|
from letta.schemas.message import Message
|
||||||
from letta.schemas.openai.chat_completion_request import (
|
from letta.schemas.openai.chat_completion_request import ChatCompletionRequest, Tool, cast_message_to_subtype
|
||||||
ChatCompletionRequest,
|
|
||||||
Tool,
|
|
||||||
cast_message_to_subtype,
|
|
||||||
)
|
|
||||||
from letta.schemas.openai.chat_completion_response import ChatCompletionResponse
|
from letta.schemas.openai.chat_completion_response import ChatCompletionResponse
|
||||||
from letta.settings import ModelSettings
|
from letta.settings import ModelSettings
|
||||||
from letta.streaming_interface import (
|
from letta.streaming_interface import AgentChunkStreamingInterface, AgentRefreshStreamingInterface
|
||||||
AgentChunkStreamingInterface,
|
|
||||||
AgentRefreshStreamingInterface,
|
|
||||||
)
|
|
||||||
|
|
||||||
LLM_API_PROVIDER_OPTIONS = ["openai", "azure", "anthropic", "google_ai", "cohere", "local", "groq"]
|
LLM_API_PROVIDER_OPTIONS = ["openai", "azure", "anthropic", "google_ai", "cohere", "local", "groq"]
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import requests
|
import requests
|
||||||
|
|
||||||
from letta.utils import printd, smart_urljoin
|
from letta.utils import printd, smart_urljoin
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -6,44 +6,29 @@ import httpx
|
|||||||
import requests
|
import requests
|
||||||
from httpx_sse import connect_sse
|
from httpx_sse import connect_sse
|
||||||
from httpx_sse._exceptions import SSEError
|
from httpx_sse._exceptions import SSEError
|
||||||
|
|
||||||
from letta.constants import OPENAI_CONTEXT_WINDOW_ERROR_SUBSTRING
|
from letta.constants import OPENAI_CONTEXT_WINDOW_ERROR_SUBSTRING
|
||||||
from letta.errors import LLMError
|
from letta.errors import LLMError
|
||||||
from letta.llm_api.helpers import (
|
from letta.llm_api.helpers import add_inner_thoughts_to_functions, convert_to_structured_output, make_post_request
|
||||||
add_inner_thoughts_to_functions,
|
from letta.local_llm.constants import INNER_THOUGHTS_KWARG, INNER_THOUGHTS_KWARG_DESCRIPTION
|
||||||
convert_to_structured_output,
|
|
||||||
make_post_request,
|
|
||||||
)
|
|
||||||
from letta.local_llm.constants import (
|
|
||||||
INNER_THOUGHTS_KWARG,
|
|
||||||
INNER_THOUGHTS_KWARG_DESCRIPTION,
|
|
||||||
)
|
|
||||||
from letta.local_llm.utils import num_tokens_from_functions, num_tokens_from_messages
|
from letta.local_llm.utils import num_tokens_from_functions, num_tokens_from_messages
|
||||||
from letta.schemas.llm_config import LLMConfig
|
from letta.schemas.llm_config import LLMConfig
|
||||||
from letta.schemas.message import Message as _Message
|
from letta.schemas.message import Message as _Message
|
||||||
from letta.schemas.message import MessageRole as _MessageRole
|
from letta.schemas.message import MessageRole as _MessageRole
|
||||||
from letta.schemas.openai.chat_completion_request import ChatCompletionRequest
|
from letta.schemas.openai.chat_completion_request import ChatCompletionRequest
|
||||||
from letta.schemas.openai.chat_completion_request import (
|
from letta.schemas.openai.chat_completion_request import FunctionCall as ToolFunctionChoiceFunctionCall
|
||||||
FunctionCall as ToolFunctionChoiceFunctionCall,
|
from letta.schemas.openai.chat_completion_request import Tool, ToolFunctionChoice, cast_message_to_subtype
|
||||||
)
|
|
||||||
from letta.schemas.openai.chat_completion_request import (
|
|
||||||
Tool,
|
|
||||||
ToolFunctionChoice,
|
|
||||||
cast_message_to_subtype,
|
|
||||||
)
|
|
||||||
from letta.schemas.openai.chat_completion_response import (
|
from letta.schemas.openai.chat_completion_response import (
|
||||||
ChatCompletionChunkResponse,
|
ChatCompletionChunkResponse,
|
||||||
ChatCompletionResponse,
|
ChatCompletionResponse,
|
||||||
Choice,
|
Choice,
|
||||||
FunctionCall,
|
FunctionCall,
|
||||||
Message,
|
Message,
|
||||||
ToolCall,
|
ToolCall,
|
||||||
UsageStatistics,
|
UsageStatistics,
|
||||||
)
|
)
|
||||||
from letta.schemas.openai.embedding_response import EmbeddingResponse
|
from letta.schemas.openai.embedding_response import EmbeddingResponse
|
||||||
from letta.streaming_interface import (
|
from letta.streaming_interface import AgentChunkStreamingInterface, AgentRefreshStreamingInterface
|
||||||
AgentChunkStreamingInterface,
|
|
||||||
AgentRefreshStreamingInterface,
|
|
||||||
)
|
|
||||||
from letta.utils import get_tool_call_id, smart_urljoin
|
from letta.utils import get_tool_call_id, smart_urljoin
|
||||||
|
|
||||||
OPENAI_SSE_DONE = "[DONE]"
|
OPENAI_SSE_DONE = "[DONE]"
|
||||||
|
|||||||
@@ -3,14 +3,12 @@
|
|||||||
import uuid
|
import uuid
|
||||||
|
|
||||||
import requests
|
import requests
|
||||||
|
|
||||||
from letta.constants import CLI_WARNING_PREFIX
|
from letta.constants import CLI_WARNING_PREFIX
|
||||||
from letta.errors import LocalLLMConnectionError, LocalLLMError
|
from letta.errors import LocalLLMConnectionError, LocalLLMError
|
||||||
from letta.local_llm.constants import DEFAULT_WRAPPER
|
from letta.local_llm.constants import DEFAULT_WRAPPER
|
||||||
from letta.local_llm.function_parser import patch_function
|
from letta.local_llm.function_parser import patch_function
|
||||||
from letta.local_llm.grammars.gbnf_grammar_generator import (
|
from letta.local_llm.grammars.gbnf_grammar_generator import create_dynamic_model_from_function, generate_gbnf_grammar_and_documentation
|
||||||
create_dynamic_model_from_function,
|
|
||||||
generate_gbnf_grammar_and_documentation,
|
|
||||||
)
|
|
||||||
from letta.local_llm.koboldcpp.api import get_koboldcpp_completion
|
from letta.local_llm.koboldcpp.api import get_koboldcpp_completion
|
||||||
from letta.local_llm.llamacpp.api import get_llamacpp_completion
|
from letta.local_llm.llamacpp.api import get_llamacpp_completion
|
||||||
from letta.local_llm.llm_chat_completion_wrappers import simple_summary_wrapper
|
from letta.local_llm.llm_chat_completion_wrappers import simple_summary_wrapper
|
||||||
@@ -19,17 +17,9 @@ from letta.local_llm.ollama.api import get_ollama_completion
|
|||||||
from letta.local_llm.utils import count_tokens, get_available_wrappers
|
from letta.local_llm.utils import count_tokens, get_available_wrappers
|
||||||
from letta.local_llm.vllm.api import get_vllm_completion
|
from letta.local_llm.vllm.api import get_vllm_completion
|
||||||
from letta.local_llm.webui.api import get_webui_completion
|
from letta.local_llm.webui.api import get_webui_completion
|
||||||
from letta.local_llm.webui.legacy_api import (
|
from letta.local_llm.webui.legacy_api import get_webui_completion as get_webui_completion_legacy
|
||||||
get_webui_completion as get_webui_completion_legacy,
|
|
||||||
)
|
|
||||||
from letta.prompts.gpt_summarize import SYSTEM as SUMMARIZE_SYSTEM_MESSAGE
|
from letta.prompts.gpt_summarize import SYSTEM as SUMMARIZE_SYSTEM_MESSAGE
|
||||||
from letta.schemas.openai.chat_completion_response import (
|
from letta.schemas.openai.chat_completion_response import ChatCompletionResponse, Choice, Message, ToolCall, UsageStatistics
|
||||||
ChatCompletionResponse,
|
|
||||||
Choice,
|
|
||||||
Message,
|
|
||||||
ToolCall,
|
|
||||||
UsageStatistics,
|
|
||||||
)
|
|
||||||
from letta.utils import get_tool_call_id, get_utc_time, json_dumps
|
from letta.utils import get_tool_call_id, get_utc_time, json_dumps
|
||||||
|
|
||||||
has_shown_warning = False
|
has_shown_warning = False
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
# import letta.local_llm.llm_chat_completion_wrappers.airoboros as airoboros
|
# import letta.local_llm.llm_chat_completion_wrappers.airoboros as airoboros
|
||||||
from letta.local_llm.llm_chat_completion_wrappers.chatml import (
|
from letta.local_llm.llm_chat_completion_wrappers.chatml import ChatMLInnerMonologueWrapper
|
||||||
ChatMLInnerMonologueWrapper,
|
|
||||||
)
|
|
||||||
|
|
||||||
DEFAULT_ENDPOINTS = {
|
DEFAULT_ENDPOINTS = {
|
||||||
# Local
|
# Local
|
||||||
|
|||||||
@@ -5,23 +5,13 @@ from copy import copy
|
|||||||
from enum import Enum
|
from enum import Enum
|
||||||
from inspect import getdoc, isclass
|
from inspect import getdoc, isclass
|
||||||
from types import NoneType
|
from types import NoneType
|
||||||
from typing import (
|
from typing import Any, Callable, List, Optional, Tuple, Type, Union, _GenericAlias, get_args, get_origin
|
||||||
Any,
|
|
||||||
Callable,
|
|
||||||
List,
|
|
||||||
Optional,
|
|
||||||
Tuple,
|
|
||||||
Type,
|
|
||||||
Union,
|
|
||||||
_GenericAlias,
|
|
||||||
get_args,
|
|
||||||
get_origin,
|
|
||||||
)
|
|
||||||
|
|
||||||
from docstring_parser import parse
|
from docstring_parser import parse
|
||||||
from letta.utils import json_dumps
|
|
||||||
from pydantic import BaseModel, create_model
|
from pydantic import BaseModel, create_model
|
||||||
|
|
||||||
|
from letta.utils import json_dumps
|
||||||
|
|
||||||
|
|
||||||
class PydanticDataType(Enum):
|
class PydanticDataType(Enum):
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
from letta.errors import LLMJSONParsingError
|
from letta.errors import LLMJSONParsingError
|
||||||
from letta.local_llm.json_parser import clean_json
|
from letta.local_llm.json_parser import clean_json
|
||||||
from letta.local_llm.llm_chat_completion_wrappers.wrapper_base import (
|
from letta.local_llm.llm_chat_completion_wrappers.wrapper_base import LLMChatCompletionWrapper
|
||||||
LLMChatCompletionWrapper,
|
|
||||||
)
|
|
||||||
from letta.schemas.enums import MessageRole
|
from letta.schemas.enums import MessageRole
|
||||||
from letta.utils import json_dumps, json_loads
|
from letta.utils import json_dumps, json_loads
|
||||||
|
|
||||||
@@ -75,10 +73,7 @@ class ChatMLInnerMonologueWrapper(LLMChatCompletionWrapper):
|
|||||||
func_str += f"\n description: {schema['description']}"
|
func_str += f"\n description: {schema['description']}"
|
||||||
func_str += f"\n params:"
|
func_str += f"\n params:"
|
||||||
if add_inner_thoughts:
|
if add_inner_thoughts:
|
||||||
from letta.local_llm.constants import (
|
from letta.local_llm.constants import INNER_THOUGHTS_KWARG, INNER_THOUGHTS_KWARG_DESCRIPTION
|
||||||
INNER_THOUGHTS_KWARG,
|
|
||||||
INNER_THOUGHTS_KWARG_DESCRIPTION,
|
|
||||||
)
|
|
||||||
|
|
||||||
func_str += f"\n {INNER_THOUGHTS_KWARG}: {INNER_THOUGHTS_KWARG_DESCRIPTION}"
|
func_str += f"\n {INNER_THOUGHTS_KWARG}: {INNER_THOUGHTS_KWARG_DESCRIPTION}"
|
||||||
for param_k, param_v in schema["parameters"]["properties"].items():
|
for param_k, param_v in schema["parameters"]["properties"].items():
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import yaml
|
import yaml
|
||||||
|
|
||||||
from letta.utils import json_dumps, json_loads
|
from letta.utils import json_dumps, json_loads
|
||||||
|
|
||||||
from ...errors import LLMJSONParsingError
|
from ...errors import LLMJSONParsingError
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
from letta.errors import LLMJSONParsingError
|
from letta.errors import LLMJSONParsingError
|
||||||
from letta.local_llm.json_parser import clean_json
|
from letta.local_llm.json_parser import clean_json
|
||||||
from letta.local_llm.llm_chat_completion_wrappers.wrapper_base import (
|
from letta.local_llm.llm_chat_completion_wrappers.wrapper_base import LLMChatCompletionWrapper
|
||||||
LLMChatCompletionWrapper,
|
|
||||||
)
|
|
||||||
from letta.utils import json_dumps, json_loads
|
from letta.utils import json_dumps, json_loads
|
||||||
|
|
||||||
PREFIX_HINT = """# Reminders:
|
PREFIX_HINT = """# Reminders:
|
||||||
@@ -74,10 +72,7 @@ class LLaMA3InnerMonologueWrapper(LLMChatCompletionWrapper):
|
|||||||
func_str += f"\n description: {schema['description']}"
|
func_str += f"\n description: {schema['description']}"
|
||||||
func_str += "\n params:"
|
func_str += "\n params:"
|
||||||
if add_inner_thoughts:
|
if add_inner_thoughts:
|
||||||
from letta.local_llm.constants import (
|
from letta.local_llm.constants import INNER_THOUGHTS_KWARG, INNER_THOUGHTS_KWARG_DESCRIPTION
|
||||||
INNER_THOUGHTS_KWARG,
|
|
||||||
INNER_THOUGHTS_KWARG_DESCRIPTION,
|
|
||||||
)
|
|
||||||
|
|
||||||
func_str += f"\n {INNER_THOUGHTS_KWARG}: {INNER_THOUGHTS_KWARG_DESCRIPTION}"
|
func_str += f"\n {INNER_THOUGHTS_KWARG}: {INNER_THOUGHTS_KWARG_DESCRIPTION}"
|
||||||
for param_k, param_v in schema["parameters"]["properties"].items():
|
for param_k, param_v in schema["parameters"]["properties"].items():
|
||||||
|
|||||||
@@ -2,9 +2,7 @@ import json
|
|||||||
import os
|
import os
|
||||||
|
|
||||||
from letta.constants import LETTA_DIR
|
from letta.constants import LETTA_DIR
|
||||||
from letta.local_llm.settings.deterministic_mirostat import (
|
from letta.local_llm.settings.deterministic_mirostat import settings as det_miro_settings
|
||||||
settings as det_miro_settings,
|
|
||||||
)
|
|
||||||
from letta.local_llm.settings.simple import settings as simple_settings
|
from letta.local_llm.settings.simple import settings as simple_settings
|
||||||
|
|
||||||
DEFAULT = "simple"
|
DEFAULT = "simple"
|
||||||
|
|||||||
@@ -2,14 +2,15 @@ import os
|
|||||||
import warnings
|
import warnings
|
||||||
from typing import List, Union
|
from typing import List, Union
|
||||||
|
|
||||||
|
import requests
|
||||||
|
import tiktoken
|
||||||
|
|
||||||
import letta.local_llm.llm_chat_completion_wrappers.airoboros as airoboros
|
import letta.local_llm.llm_chat_completion_wrappers.airoboros as airoboros
|
||||||
import letta.local_llm.llm_chat_completion_wrappers.chatml as chatml
|
import letta.local_llm.llm_chat_completion_wrappers.chatml as chatml
|
||||||
import letta.local_llm.llm_chat_completion_wrappers.configurable_wrapper as configurable_wrapper
|
import letta.local_llm.llm_chat_completion_wrappers.configurable_wrapper as configurable_wrapper
|
||||||
import letta.local_llm.llm_chat_completion_wrappers.dolphin as dolphin
|
import letta.local_llm.llm_chat_completion_wrappers.dolphin as dolphin
|
||||||
import letta.local_llm.llm_chat_completion_wrappers.llama3 as llama3
|
import letta.local_llm.llm_chat_completion_wrappers.llama3 as llama3
|
||||||
import letta.local_llm.llm_chat_completion_wrappers.zephyr as zephyr
|
import letta.local_llm.llm_chat_completion_wrappers.zephyr as zephyr
|
||||||
import requests
|
|
||||||
import tiktoken
|
|
||||||
from letta.schemas.openai.chat_completion_request import Tool, ToolCall
|
from letta.schemas.openai.chat_completion_request import Tool, ToolCall
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,12 +2,14 @@ import os
|
|||||||
import sys
|
import sys
|
||||||
import traceback
|
import traceback
|
||||||
|
|
||||||
import letta.agent as agent
|
|
||||||
import letta.errors as errors
|
|
||||||
import letta.system as system
|
|
||||||
import questionary
|
import questionary
|
||||||
import requests
|
import requests
|
||||||
import typer
|
import typer
|
||||||
|
from rich.console import Console
|
||||||
|
|
||||||
|
import letta.agent as agent
|
||||||
|
import letta.errors as errors
|
||||||
|
import letta.system as system
|
||||||
|
|
||||||
# import benchmark
|
# import benchmark
|
||||||
from letta import create_client
|
from letta import create_client
|
||||||
@@ -20,7 +22,6 @@ from letta.constants import FUNC_FAILED_HEARTBEAT_MESSAGE, REQ_HEARTBEAT_MESSAGE
|
|||||||
|
|
||||||
# from letta.interface import CLIInterface as interface # for printing to terminal
|
# from letta.interface import CLIInterface as interface # for printing to terminal
|
||||||
from letta.streaming_interface import AgentRefreshStreamingInterface
|
from letta.streaming_interface import AgentRefreshStreamingInterface
|
||||||
from rich.console import Console
|
|
||||||
|
|
||||||
# interface = interface()
|
# interface = interface()
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,11 @@
|
|||||||
import uuid
|
import uuid
|
||||||
from typing import TYPE_CHECKING, List, Optional
|
from typing import TYPE_CHECKING, List, Optional
|
||||||
|
|
||||||
|
from sqlalchemy import JSON, String, UniqueConstraint
|
||||||
|
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||||
|
|
||||||
from letta.orm.block import Block
|
from letta.orm.block import Block
|
||||||
from letta.orm.custom_columns import (
|
from letta.orm.custom_columns import EmbeddingConfigColumn, LLMConfigColumn, ToolRulesColumn
|
||||||
EmbeddingConfigColumn,
|
|
||||||
LLMConfigColumn,
|
|
||||||
ToolRulesColumn,
|
|
||||||
)
|
|
||||||
from letta.orm.message import Message
|
from letta.orm.message import Message
|
||||||
from letta.orm.mixins import OrganizationMixin
|
from letta.orm.mixins import OrganizationMixin
|
||||||
from letta.orm.organization import Organization
|
from letta.orm.organization import Organization
|
||||||
@@ -17,8 +16,6 @@ from letta.schemas.embedding_config import EmbeddingConfig
|
|||||||
from letta.schemas.llm_config import LLMConfig
|
from letta.schemas.llm_config import LLMConfig
|
||||||
from letta.schemas.memory import Memory
|
from letta.schemas.memory import Memory
|
||||||
from letta.schemas.tool_rule import ToolRule
|
from letta.schemas.tool_rule import ToolRule
|
||||||
from sqlalchemy import JSON, String, UniqueConstraint
|
|
||||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from letta.orm.agents_tags import AgentsTags
|
from letta.orm.agents_tags import AgentsTags
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
from letta.orm.base import Base
|
|
||||||
from sqlalchemy import ForeignKey, String, UniqueConstraint
|
from sqlalchemy import ForeignKey, String, UniqueConstraint
|
||||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||||
|
|
||||||
|
from letta.orm.base import Base
|
||||||
|
|
||||||
|
|
||||||
class AgentsTags(Base):
|
class AgentsTags(Base):
|
||||||
__tablename__ = "agents_tags"
|
__tablename__ = "agents_tags"
|
||||||
|
|||||||
@@ -2,13 +2,7 @@ from datetime import datetime
|
|||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
from sqlalchemy import Boolean, DateTime, String, func, text
|
from sqlalchemy import Boolean, DateTime, String, func, text
|
||||||
from sqlalchemy.orm import (
|
from sqlalchemy.orm import DeclarativeBase, Mapped, declarative_mixin, declared_attr, mapped_column
|
||||||
DeclarativeBase,
|
|
||||||
Mapped,
|
|
||||||
declarative_mixin,
|
|
||||||
declared_attr,
|
|
||||||
mapped_column,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
class Base(DeclarativeBase):
|
class Base(DeclarativeBase):
|
||||||
|
|||||||
@@ -1,13 +1,14 @@
|
|||||||
from typing import TYPE_CHECKING, Optional, Type
|
from typing import TYPE_CHECKING, Optional, Type
|
||||||
|
|
||||||
|
from sqlalchemy import JSON, BigInteger, Integer, UniqueConstraint, event
|
||||||
|
from sqlalchemy.orm import Mapped, attributes, mapped_column, relationship
|
||||||
|
|
||||||
from letta.constants import CORE_MEMORY_BLOCK_CHAR_LIMIT
|
from letta.constants import CORE_MEMORY_BLOCK_CHAR_LIMIT
|
||||||
from letta.orm.blocks_agents import BlocksAgents
|
from letta.orm.blocks_agents import BlocksAgents
|
||||||
from letta.orm.mixins import OrganizationMixin
|
from letta.orm.mixins import OrganizationMixin
|
||||||
from letta.orm.sqlalchemy_base import SqlalchemyBase
|
from letta.orm.sqlalchemy_base import SqlalchemyBase
|
||||||
from letta.schemas.block import Block as PydanticBlock
|
from letta.schemas.block import Block as PydanticBlock
|
||||||
from letta.schemas.block import Human, Persona
|
from letta.schemas.block import Human, Persona
|
||||||
from sqlalchemy import JSON, BigInteger, Integer, UniqueConstraint, event
|
|
||||||
from sqlalchemy.orm import Mapped, attributes, mapped_column, relationship
|
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from letta.orm import Organization
|
from letta.orm import Organization
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
from letta.orm.base import Base
|
|
||||||
from sqlalchemy import ForeignKey, ForeignKeyConstraint, String, UniqueConstraint
|
from sqlalchemy import ForeignKey, ForeignKeyConstraint, String, UniqueConstraint
|
||||||
from sqlalchemy.orm import Mapped, mapped_column
|
from sqlalchemy.orm import Mapped, mapped_column
|
||||||
|
|
||||||
|
from letta.orm.base import Base
|
||||||
|
|
||||||
|
|
||||||
class BlocksAgents(Base):
|
class BlocksAgents(Base):
|
||||||
"""Agents must have one or many blocks to make up their core memory."""
|
"""Agents must have one or many blocks to make up their core memory."""
|
||||||
|
|||||||
@@ -2,18 +2,14 @@ import base64
|
|||||||
from typing import List, Union
|
from typing import List, Union
|
||||||
|
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
from sqlalchemy import JSON
|
||||||
|
from sqlalchemy.types import BINARY, TypeDecorator
|
||||||
|
|
||||||
from letta.schemas.embedding_config import EmbeddingConfig
|
from letta.schemas.embedding_config import EmbeddingConfig
|
||||||
from letta.schemas.enums import ToolRuleType
|
from letta.schemas.enums import ToolRuleType
|
||||||
from letta.schemas.llm_config import LLMConfig
|
from letta.schemas.llm_config import LLMConfig
|
||||||
from letta.schemas.openai.chat_completions import ToolCall, ToolCallFunction
|
from letta.schemas.openai.chat_completions import ToolCall, ToolCallFunction
|
||||||
from letta.schemas.tool_rule import (
|
from letta.schemas.tool_rule import ChildToolRule, ConditionalToolRule, InitToolRule, TerminalToolRule
|
||||||
ChildToolRule,
|
|
||||||
ConditionalToolRule,
|
|
||||||
InitToolRule,
|
|
||||||
TerminalToolRule,
|
|
||||||
)
|
|
||||||
from sqlalchemy import JSON
|
|
||||||
from sqlalchemy.types import BINARY, TypeDecorator
|
|
||||||
|
|
||||||
|
|
||||||
class EmbeddingConfigColumn(TypeDecorator):
|
class EmbeddingConfigColumn(TypeDecorator):
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
from typing import TYPE_CHECKING, List, Optional
|
from typing import TYPE_CHECKING, List, Optional
|
||||||
|
|
||||||
|
from sqlalchemy import Integer, String
|
||||||
|
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||||
|
|
||||||
from letta.orm.mixins import OrganizationMixin, SourceMixin
|
from letta.orm.mixins import OrganizationMixin, SourceMixin
|
||||||
from letta.orm.sqlalchemy_base import SqlalchemyBase
|
from letta.orm.sqlalchemy_base import SqlalchemyBase
|
||||||
from letta.schemas.file import FileMetadata as PydanticFileMetadata
|
from letta.schemas.file import FileMetadata as PydanticFileMetadata
|
||||||
from sqlalchemy import Integer, String
|
|
||||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from letta.orm.organization import Organization
|
from letta.orm.organization import Organization
|
||||||
|
|||||||
@@ -1,12 +1,13 @@
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from typing import TYPE_CHECKING, Optional
|
from typing import TYPE_CHECKING, Optional
|
||||||
|
|
||||||
|
from sqlalchemy import JSON, String
|
||||||
|
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||||
|
|
||||||
from letta.orm.mixins import UserMixin
|
from letta.orm.mixins import UserMixin
|
||||||
from letta.orm.sqlalchemy_base import SqlalchemyBase
|
from letta.orm.sqlalchemy_base import SqlalchemyBase
|
||||||
from letta.schemas.enums import JobStatus
|
from letta.schemas.enums import JobStatus
|
||||||
from letta.schemas.job import Job as PydanticJob
|
from letta.schemas.job import Job as PydanticJob
|
||||||
from sqlalchemy import JSON, String
|
|
||||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from letta.orm.user import User
|
from letta.orm.user import User
|
||||||
|
|||||||
@@ -1,12 +1,13 @@
|
|||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
|
from sqlalchemy import Index
|
||||||
|
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||||
|
|
||||||
from letta.orm.custom_columns import ToolCallColumn
|
from letta.orm.custom_columns import ToolCallColumn
|
||||||
from letta.orm.mixins import AgentMixin, OrganizationMixin
|
from letta.orm.mixins import AgentMixin, OrganizationMixin
|
||||||
from letta.orm.sqlalchemy_base import SqlalchemyBase
|
from letta.orm.sqlalchemy_base import SqlalchemyBase
|
||||||
from letta.schemas.message import Message as PydanticMessage
|
from letta.schemas.message import Message as PydanticMessage
|
||||||
from letta.schemas.openai.chat_completions import ToolCall
|
from letta.schemas.openai.chat_completions import ToolCall
|
||||||
from sqlalchemy import Index
|
|
||||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
|
||||||
|
|
||||||
|
|
||||||
class Message(SqlalchemyBase, OrganizationMixin, AgentMixin):
|
class Message(SqlalchemyBase, OrganizationMixin, AgentMixin):
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
from typing import Optional
|
from typing import Optional
|
||||||
from uuid import UUID
|
from uuid import UUID
|
||||||
|
|
||||||
from letta.orm.base import Base
|
|
||||||
from sqlalchemy import ForeignKey, String
|
from sqlalchemy import ForeignKey, String
|
||||||
from sqlalchemy.orm import Mapped, mapped_column
|
from sqlalchemy.orm import Mapped, mapped_column
|
||||||
|
|
||||||
|
from letta.orm.base import Base
|
||||||
|
|
||||||
|
|
||||||
def is_valid_uuid4(uuid_string: str) -> bool:
|
def is_valid_uuid4(uuid_string: str) -> bool:
|
||||||
"""Check if a string is a valid UUID4."""
|
"""Check if a string is a valid UUID4."""
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
from typing import TYPE_CHECKING, List, Union
|
from typing import TYPE_CHECKING, List, Union
|
||||||
|
|
||||||
|
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||||
|
|
||||||
from letta.orm.sqlalchemy_base import SqlalchemyBase
|
from letta.orm.sqlalchemy_base import SqlalchemyBase
|
||||||
from letta.schemas.organization import Organization as PydanticOrganization
|
from letta.schemas.organization import Organization as PydanticOrganization
|
||||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
from typing import TYPE_CHECKING
|
from typing import TYPE_CHECKING
|
||||||
|
|
||||||
|
from sqlalchemy import JSON, Column, Index
|
||||||
|
from sqlalchemy.orm import Mapped, declared_attr, mapped_column, relationship
|
||||||
|
|
||||||
from letta.config import LettaConfig
|
from letta.config import LettaConfig
|
||||||
from letta.constants import MAX_EMBEDDING_DIM
|
from letta.constants import MAX_EMBEDDING_DIM
|
||||||
from letta.orm.custom_columns import CommonVector, EmbeddingConfigColumn
|
from letta.orm.custom_columns import CommonVector, EmbeddingConfigColumn
|
||||||
@@ -7,8 +10,6 @@ from letta.orm.mixins import AgentMixin, FileMixin, OrganizationMixin, SourceMix
|
|||||||
from letta.orm.sqlalchemy_base import SqlalchemyBase
|
from letta.orm.sqlalchemy_base import SqlalchemyBase
|
||||||
from letta.schemas.passage import Passage as PydanticPassage
|
from letta.schemas.passage import Passage as PydanticPassage
|
||||||
from letta.settings import settings
|
from letta.settings import settings
|
||||||
from sqlalchemy import JSON, Column, Index
|
|
||||||
from sqlalchemy.orm import Mapped, declared_attr, mapped_column, relationship
|
|
||||||
|
|
||||||
config = LettaConfig()
|
config = LettaConfig()
|
||||||
|
|
||||||
|
|||||||
@@ -1,17 +1,16 @@
|
|||||||
from typing import TYPE_CHECKING, Dict, List, Optional
|
from typing import TYPE_CHECKING, Dict, List, Optional
|
||||||
|
|
||||||
from letta.orm.mixins import OrganizationMixin, SandboxConfigMixin
|
|
||||||
from letta.orm.sqlalchemy_base import SqlalchemyBase
|
|
||||||
from letta.schemas.sandbox_config import SandboxConfig as PydanticSandboxConfig
|
|
||||||
from letta.schemas.sandbox_config import (
|
|
||||||
SandboxEnvironmentVariable as PydanticSandboxEnvironmentVariable,
|
|
||||||
)
|
|
||||||
from letta.schemas.sandbox_config import SandboxType
|
|
||||||
from sqlalchemy import JSON
|
from sqlalchemy import JSON
|
||||||
from sqlalchemy import Enum as SqlEnum
|
from sqlalchemy import Enum as SqlEnum
|
||||||
from sqlalchemy import String, UniqueConstraint
|
from sqlalchemy import String, UniqueConstraint
|
||||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||||
|
|
||||||
|
from letta.orm.mixins import OrganizationMixin, SandboxConfigMixin
|
||||||
|
from letta.orm.sqlalchemy_base import SqlalchemyBase
|
||||||
|
from letta.schemas.sandbox_config import SandboxConfig as PydanticSandboxConfig
|
||||||
|
from letta.schemas.sandbox_config import SandboxEnvironmentVariable as PydanticSandboxEnvironmentVariable
|
||||||
|
from letta.schemas.sandbox_config import SandboxType
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from letta.orm.organization import Organization
|
from letta.orm.organization import Organization
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,14 @@
|
|||||||
from typing import TYPE_CHECKING, List, Optional
|
from typing import TYPE_CHECKING, List, Optional
|
||||||
|
|
||||||
|
from sqlalchemy import JSON
|
||||||
|
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||||
|
|
||||||
from letta.orm import FileMetadata
|
from letta.orm import FileMetadata
|
||||||
from letta.orm.custom_columns import EmbeddingConfigColumn
|
from letta.orm.custom_columns import EmbeddingConfigColumn
|
||||||
from letta.orm.mixins import OrganizationMixin
|
from letta.orm.mixins import OrganizationMixin
|
||||||
from letta.orm.sqlalchemy_base import SqlalchemyBase
|
from letta.orm.sqlalchemy_base import SqlalchemyBase
|
||||||
from letta.schemas.embedding_config import EmbeddingConfig
|
from letta.schemas.embedding_config import EmbeddingConfig
|
||||||
from letta.schemas.source import Source as PydanticSource
|
from letta.schemas.source import Source as PydanticSource
|
||||||
from sqlalchemy import JSON
|
|
||||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from letta.orm.agent import Agent
|
from letta.orm.agent import Agent
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
from letta.orm.base import Base
|
|
||||||
from sqlalchemy import ForeignKey, String
|
from sqlalchemy import ForeignKey, String
|
||||||
from sqlalchemy.orm import Mapped, mapped_column
|
from sqlalchemy.orm import Mapped, mapped_column
|
||||||
|
|
||||||
|
from letta.orm.base import Base
|
||||||
|
|
||||||
|
|
||||||
class SourcesAgents(Base):
|
class SourcesAgents(Base):
|
||||||
"""Agents can have zero to many sources"""
|
"""Agents can have zero to many sources"""
|
||||||
|
|||||||
@@ -3,19 +3,15 @@ from enum import Enum
|
|||||||
from functools import wraps
|
from functools import wraps
|
||||||
from typing import TYPE_CHECKING, List, Literal, Optional
|
from typing import TYPE_CHECKING, List, Literal, Optional
|
||||||
|
|
||||||
from letta.log import get_logger
|
|
||||||
from letta.orm.base import Base, CommonSqlalchemyMetaMixins
|
|
||||||
from letta.orm.errors import (
|
|
||||||
DatabaseTimeoutError,
|
|
||||||
ForeignKeyConstraintViolationError,
|
|
||||||
NoResultFound,
|
|
||||||
UniqueConstraintViolationError,
|
|
||||||
)
|
|
||||||
from letta.orm.sqlite_functions import adapt_array
|
|
||||||
from sqlalchemy import String, desc, func, or_, select
|
from sqlalchemy import String, desc, func, or_, select
|
||||||
from sqlalchemy.exc import DBAPIError, IntegrityError, TimeoutError
|
from sqlalchemy.exc import DBAPIError, IntegrityError, TimeoutError
|
||||||
from sqlalchemy.orm import Mapped, Session, mapped_column
|
from sqlalchemy.orm import Mapped, Session, mapped_column
|
||||||
|
|
||||||
|
from letta.log import get_logger
|
||||||
|
from letta.orm.base import Base, CommonSqlalchemyMetaMixins
|
||||||
|
from letta.orm.errors import DatabaseTimeoutError, ForeignKeyConstraintViolationError, NoResultFound, UniqueConstraintViolationError
|
||||||
|
from letta.orm.sqlite_functions import adapt_array
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
from sqlalchemy.orm import Session
|
from sqlalchemy.orm import Session
|
||||||
|
|||||||
@@ -3,10 +3,11 @@ import sqlite3
|
|||||||
from typing import Optional, Union
|
from typing import Optional, Union
|
||||||
|
|
||||||
import numpy as np
|
import numpy as np
|
||||||
from letta.constants import MAX_EMBEDDING_DIM
|
|
||||||
from sqlalchemy import event
|
from sqlalchemy import event
|
||||||
from sqlalchemy.engine import Engine
|
from sqlalchemy.engine import Engine
|
||||||
|
|
||||||
|
from letta.constants import MAX_EMBEDDING_DIM
|
||||||
|
|
||||||
|
|
||||||
def adapt_array(arr):
|
def adapt_array(arr):
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -1,12 +1,13 @@
|
|||||||
from typing import TYPE_CHECKING, List, Optional
|
from typing import TYPE_CHECKING, List, Optional
|
||||||
|
|
||||||
|
from sqlalchemy import JSON, String, UniqueConstraint
|
||||||
|
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||||
|
|
||||||
# TODO everything in functions should live in this model
|
# TODO everything in functions should live in this model
|
||||||
from letta.orm.enums import ToolSourceType
|
from letta.orm.enums import ToolSourceType
|
||||||
from letta.orm.mixins import OrganizationMixin
|
from letta.orm.mixins import OrganizationMixin
|
||||||
from letta.orm.sqlalchemy_base import SqlalchemyBase
|
from letta.orm.sqlalchemy_base import SqlalchemyBase
|
||||||
from letta.schemas.tool import Tool as PydanticTool
|
from letta.schemas.tool import Tool as PydanticTool
|
||||||
from sqlalchemy import JSON, String, UniqueConstraint
|
|
||||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from letta.orm.organization import Organization
|
from letta.orm.organization import Organization
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
from letta.orm import Base
|
|
||||||
from sqlalchemy import ForeignKey, String, UniqueConstraint
|
from sqlalchemy import ForeignKey, String, UniqueConstraint
|
||||||
from sqlalchemy.orm import Mapped, mapped_column
|
from sqlalchemy.orm import Mapped, mapped_column
|
||||||
|
|
||||||
|
from letta.orm import Base
|
||||||
|
|
||||||
|
|
||||||
class ToolsAgents(Base):
|
class ToolsAgents(Base):
|
||||||
"""Agents can have one or many tools associated with them."""
|
"""Agents can have one or many tools associated with them."""
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
from typing import TYPE_CHECKING, List
|
from typing import TYPE_CHECKING, List
|
||||||
|
|
||||||
|
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||||
|
|
||||||
from letta.orm.mixins import OrganizationMixin
|
from letta.orm.mixins import OrganizationMixin
|
||||||
from letta.orm.sqlalchemy_base import SqlalchemyBase
|
from letta.orm.sqlalchemy_base import SqlalchemyBase
|
||||||
from letta.schemas.user import User as PydanticUser
|
from letta.schemas.user import User as PydanticUser
|
||||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from letta.orm import Job, Organization
|
from letta.orm import Job, Organization
|
||||||
|
|||||||
@@ -1,14 +1,12 @@
|
|||||||
from typing import List, Optional
|
from typing import List, Optional
|
||||||
|
|
||||||
|
from pydantic import BaseModel, Field, model_validator
|
||||||
|
|
||||||
from letta.constants import LLM_MAX_TOKENS, MIN_CONTEXT_WINDOW
|
from letta.constants import LLM_MAX_TOKENS, MIN_CONTEXT_WINDOW
|
||||||
from letta.llm_api.azure_openai import (
|
from letta.llm_api.azure_openai import get_azure_chat_completions_endpoint, get_azure_embeddings_endpoint
|
||||||
get_azure_chat_completions_endpoint,
|
|
||||||
get_azure_embeddings_endpoint,
|
|
||||||
)
|
|
||||||
from letta.llm_api.azure_openai_constants import AZURE_MODEL_TO_CONTEXT_LENGTH
|
from letta.llm_api.azure_openai_constants import AZURE_MODEL_TO_CONTEXT_LENGTH
|
||||||
from letta.schemas.embedding_config import EmbeddingConfig
|
from letta.schemas.embedding_config import EmbeddingConfig
|
||||||
from letta.schemas.llm_config import LLMConfig
|
from letta.schemas.llm_config import LLMConfig
|
||||||
from pydantic import BaseModel, Field, model_validator
|
|
||||||
|
|
||||||
|
|
||||||
class Provider(BaseModel):
|
class Provider(BaseModel):
|
||||||
@@ -567,9 +565,7 @@ class AzureProvider(Provider):
|
|||||||
return values
|
return values
|
||||||
|
|
||||||
def list_llm_models(self) -> List[LLMConfig]:
|
def list_llm_models(self) -> List[LLMConfig]:
|
||||||
from letta.llm_api.azure_openai import (
|
from letta.llm_api.azure_openai import azure_openai_get_chat_completion_model_list
|
||||||
azure_openai_get_chat_completion_model_list,
|
|
||||||
)
|
|
||||||
|
|
||||||
model_options = azure_openai_get_chat_completion_model_list(self.base_url, api_key=self.api_key, api_version=self.api_version)
|
model_options = azure_openai_get_chat_completion_model_list(self.base_url, api_key=self.api_key, api_version=self.api_version)
|
||||||
configs = []
|
configs = []
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
from enum import Enum
|
from enum import Enum
|
||||||
from typing import Dict, List, Optional
|
from typing import Dict, List, Optional
|
||||||
|
|
||||||
|
from pydantic import BaseModel, Field, field_validator
|
||||||
|
|
||||||
from letta.constants import DEFAULT_EMBEDDING_CHUNK_SIZE
|
from letta.constants import DEFAULT_EMBEDDING_CHUNK_SIZE
|
||||||
from letta.schemas.block import CreateBlock
|
from letta.schemas.block import CreateBlock
|
||||||
from letta.schemas.embedding_config import EmbeddingConfig
|
from letta.schemas.embedding_config import EmbeddingConfig
|
||||||
@@ -13,7 +15,6 @@ from letta.schemas.source import Source
|
|||||||
from letta.schemas.tool import Tool
|
from letta.schemas.tool import Tool
|
||||||
from letta.schemas.tool_rule import ToolRule
|
from letta.schemas.tool_rule import ToolRule
|
||||||
from letta.utils import create_random_username
|
from letta.utils import create_random_username
|
||||||
from pydantic import BaseModel, Field, field_validator
|
|
||||||
|
|
||||||
|
|
||||||
class AgentType(str, Enum):
|
class AgentType(str, Enum):
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
|
from pydantic import BaseModel, Field, model_validator
|
||||||
|
from typing_extensions import Self
|
||||||
|
|
||||||
from letta.constants import CORE_MEMORY_BLOCK_CHAR_LIMIT
|
from letta.constants import CORE_MEMORY_BLOCK_CHAR_LIMIT
|
||||||
from letta.schemas.letta_base import LettaBase
|
from letta.schemas.letta_base import LettaBase
|
||||||
from pydantic import BaseModel, Field, model_validator
|
|
||||||
from typing_extensions import Self
|
|
||||||
|
|
||||||
# block of the LLM context
|
# block of the LLM context
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
from letta.schemas.letta_base import LettaBase
|
|
||||||
from pydantic import Field
|
from pydantic import Field
|
||||||
|
|
||||||
|
from letta.schemas.letta_base import LettaBase
|
||||||
|
|
||||||
|
|
||||||
class FileMetadataBase(LettaBase):
|
class FileMetadataBase(LettaBase):
|
||||||
"""Base class for FileMetadata schemas"""
|
"""Base class for FileMetadata schemas"""
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
|
from pydantic import Field
|
||||||
|
|
||||||
from letta.schemas.enums import JobStatus
|
from letta.schemas.enums import JobStatus
|
||||||
from letta.schemas.letta_base import OrmMetadataBase
|
from letta.schemas.letta_base import OrmMetadataBase
|
||||||
from pydantic import Field
|
|
||||||
|
|
||||||
|
|
||||||
class JobBase(OrmMetadataBase):
|
class JobBase(OrmMetadataBase):
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
from typing import List
|
from typing import List
|
||||||
|
|
||||||
|
from pydantic import BaseModel, Field
|
||||||
|
|
||||||
from letta.constants import DEFAULT_MESSAGE_TOOL, DEFAULT_MESSAGE_TOOL_KWARG
|
from letta.constants import DEFAULT_MESSAGE_TOOL, DEFAULT_MESSAGE_TOOL_KWARG
|
||||||
from letta.schemas.message import MessageCreate
|
from letta.schemas.message import MessageCreate
|
||||||
from pydantic import BaseModel, Field
|
|
||||||
|
|
||||||
|
|
||||||
class LettaRequest(BaseModel):
|
class LettaRequest(BaseModel):
|
||||||
|
|||||||
@@ -3,11 +3,12 @@ import json
|
|||||||
import re
|
import re
|
||||||
from typing import List, Union
|
from typing import List, Union
|
||||||
|
|
||||||
|
from pydantic import BaseModel, Field
|
||||||
|
|
||||||
from letta.schemas.enums import MessageStreamStatus
|
from letta.schemas.enums import MessageStreamStatus
|
||||||
from letta.schemas.letta_message import LettaMessage, LettaMessageUnion
|
from letta.schemas.letta_message import LettaMessage, LettaMessageUnion
|
||||||
from letta.schemas.usage import LettaUsageStatistics
|
from letta.schemas.usage import LettaUsageStatistics
|
||||||
from letta.utils import json_dumps
|
from letta.utils import json_dumps
|
||||||
from pydantic import BaseModel, Field
|
|
||||||
|
|
||||||
# TODO: consider moving into own file
|
# TODO: consider moving into own file
|
||||||
|
|
||||||
|
|||||||
@@ -4,25 +4,17 @@ import warnings
|
|||||||
from datetime import datetime, timezone
|
from datetime import datetime, timezone
|
||||||
from typing import List, Literal, Optional
|
from typing import List, Literal, Optional
|
||||||
|
|
||||||
from letta.constants import (
|
from pydantic import BaseModel, Field, field_validator
|
||||||
DEFAULT_MESSAGE_TOOL,
|
|
||||||
DEFAULT_MESSAGE_TOOL_KWARG,
|
from letta.constants import DEFAULT_MESSAGE_TOOL, DEFAULT_MESSAGE_TOOL_KWARG, TOOL_CALL_ID_MAX_LEN
|
||||||
TOOL_CALL_ID_MAX_LEN,
|
|
||||||
)
|
|
||||||
from letta.local_llm.constants import INNER_THOUGHTS_KWARG
|
from letta.local_llm.constants import INNER_THOUGHTS_KWARG
|
||||||
from letta.schemas.enums import MessageRole
|
from letta.schemas.enums import MessageRole
|
||||||
from letta.schemas.letta_base import OrmMetadataBase
|
from letta.schemas.letta_base import OrmMetadataBase
|
||||||
from letta.schemas.letta_message import (
|
from letta.schemas.letta_message import AssistantMessage, LettaMessage, ReasoningMessage, SystemMessage
|
||||||
AssistantMessage,
|
|
||||||
LettaMessage,
|
|
||||||
ReasoningMessage,
|
|
||||||
SystemMessage,
|
|
||||||
)
|
|
||||||
from letta.schemas.letta_message import ToolCall as LettaToolCall
|
from letta.schemas.letta_message import ToolCall as LettaToolCall
|
||||||
from letta.schemas.letta_message import ToolCallMessage, ToolReturnMessage, UserMessage
|
from letta.schemas.letta_message import ToolCallMessage, ToolReturnMessage, UserMessage
|
||||||
from letta.schemas.openai.chat_completions import ToolCall, ToolCallFunction
|
from letta.schemas.openai.chat_completions import ToolCall, ToolCallFunction
|
||||||
from letta.utils import get_utc_time, is_utc_datetime, json_dumps
|
from letta.utils import get_utc_time, is_utc_datetime, json_dumps
|
||||||
from pydantic import BaseModel, Field, field_validator
|
|
||||||
|
|
||||||
|
|
||||||
def add_inner_thoughts_to_tool_call(
|
def add_inner_thoughts_to_tool_call(
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
|
from pydantic import Field
|
||||||
|
|
||||||
from letta.schemas.letta_base import LettaBase
|
from letta.schemas.letta_base import LettaBase
|
||||||
from letta.utils import create_random_username, get_utc_time
|
from letta.utils import create_random_username, get_utc_time
|
||||||
from pydantic import Field
|
|
||||||
|
|
||||||
|
|
||||||
class OrganizationBase(LettaBase):
|
class OrganizationBase(LettaBase):
|
||||||
|
|||||||
@@ -1,11 +1,12 @@
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from typing import Dict, List, Optional
|
from typing import Dict, List, Optional
|
||||||
|
|
||||||
|
from pydantic import Field, field_validator
|
||||||
|
|
||||||
from letta.constants import MAX_EMBEDDING_DIM
|
from letta.constants import MAX_EMBEDDING_DIM
|
||||||
from letta.schemas.embedding_config import EmbeddingConfig
|
from letta.schemas.embedding_config import EmbeddingConfig
|
||||||
from letta.schemas.letta_base import OrmMetadataBase
|
from letta.schemas.letta_base import OrmMetadataBase
|
||||||
from letta.utils import get_utc_time
|
from letta.utils import get_utc_time
|
||||||
from pydantic import Field, field_validator
|
|
||||||
|
|
||||||
|
|
||||||
class PassageBase(OrmMetadataBase):
|
class PassageBase(OrmMetadataBase):
|
||||||
|
|||||||
@@ -3,10 +3,11 @@ import json
|
|||||||
from enum import Enum
|
from enum import Enum
|
||||||
from typing import Any, Dict, List, Literal, Optional, Union
|
from typing import Any, Dict, List, Literal, Optional, Union
|
||||||
|
|
||||||
|
from pydantic import BaseModel, Field, model_validator
|
||||||
|
|
||||||
from letta.schemas.agent import AgentState
|
from letta.schemas.agent import AgentState
|
||||||
from letta.schemas.letta_base import LettaBase, OrmMetadataBase
|
from letta.schemas.letta_base import LettaBase, OrmMetadataBase
|
||||||
from letta.settings import tool_settings
|
from letta.settings import tool_settings
|
||||||
from pydantic import BaseModel, Field, model_validator
|
|
||||||
|
|
||||||
|
|
||||||
# Sandbox Config
|
# Sandbox Config
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
|
from pydantic import Field
|
||||||
|
|
||||||
from letta.schemas.embedding_config import EmbeddingConfig
|
from letta.schemas.embedding_config import EmbeddingConfig
|
||||||
from letta.schemas.letta_base import LettaBase
|
from letta.schemas.letta_base import LettaBase
|
||||||
from pydantic import Field
|
|
||||||
|
|
||||||
|
|
||||||
class BaseSource(LettaBase):
|
class BaseSource(LettaBase):
|
||||||
|
|||||||
@@ -1,15 +1,13 @@
|
|||||||
from typing import Dict, List, Optional
|
from typing import Dict, List, Optional
|
||||||
|
|
||||||
|
from pydantic import Field, model_validator
|
||||||
|
|
||||||
from letta.constants import FUNCTION_RETURN_CHAR_LIMIT
|
from letta.constants import FUNCTION_RETURN_CHAR_LIMIT
|
||||||
from letta.functions.functions import derive_openai_json_schema
|
from letta.functions.functions import derive_openai_json_schema
|
||||||
from letta.functions.helpers import (
|
from letta.functions.helpers import generate_composio_tool_wrapper, generate_langchain_tool_wrapper
|
||||||
generate_composio_tool_wrapper,
|
|
||||||
generate_langchain_tool_wrapper,
|
|
||||||
)
|
|
||||||
from letta.functions.schema_generator import generate_schema_from_args_schema_v2
|
from letta.functions.schema_generator import generate_schema_from_args_schema_v2
|
||||||
from letta.schemas.letta_base import LettaBase
|
from letta.schemas.letta_base import LettaBase
|
||||||
from letta.schemas.openai.chat_completions import ToolCall
|
from letta.schemas.openai.chat_completions import ToolCall
|
||||||
from pydantic import Field, model_validator
|
|
||||||
|
|
||||||
|
|
||||||
class BaseTool(LettaBase):
|
class BaseTool(LettaBase):
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
from typing import Any, Dict, List, Optional, Union
|
from typing import Any, Dict, List, Optional, Union
|
||||||
|
|
||||||
|
from pydantic import Field
|
||||||
|
|
||||||
from letta.schemas.enums import ToolRuleType
|
from letta.schemas.enums import ToolRuleType
|
||||||
from letta.schemas.letta_base import LettaBase
|
from letta.schemas.letta_base import LettaBase
|
||||||
from pydantic import Field
|
|
||||||
|
|
||||||
|
|
||||||
class BaseToolRule(LettaBase):
|
class BaseToolRule(LettaBase):
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
|
from pydantic import Field
|
||||||
|
|
||||||
from letta.schemas.letta_base import LettaBase
|
from letta.schemas.letta_base import LettaBase
|
||||||
from letta.services.organization_manager import OrganizationManager
|
from letta.services.organization_manager import OrganizationManager
|
||||||
from pydantic import Field
|
|
||||||
|
|
||||||
|
|
||||||
class UserBase(LettaBase):
|
class UserBase(LettaBase):
|
||||||
|
|||||||
@@ -8,44 +8,30 @@ from typing import Optional
|
|||||||
import uvicorn
|
import uvicorn
|
||||||
from fastapi import FastAPI, Request
|
from fastapi import FastAPI, Request
|
||||||
from fastapi.responses import JSONResponse
|
from fastapi.responses import JSONResponse
|
||||||
|
from starlette.middleware.base import BaseHTTPMiddleware
|
||||||
|
from starlette.middleware.cors import CORSMiddleware
|
||||||
|
|
||||||
from letta.__init__ import __version__
|
from letta.__init__ import __version__
|
||||||
from letta.constants import ADMIN_PREFIX, API_PREFIX, OPENAI_API_PREFIX
|
from letta.constants import ADMIN_PREFIX, API_PREFIX, OPENAI_API_PREFIX
|
||||||
from letta.errors import LettaAgentNotFoundError, LettaUserNotFoundError
|
from letta.errors import LettaAgentNotFoundError, LettaUserNotFoundError
|
||||||
from letta.log import get_logger
|
from letta.log import get_logger
|
||||||
from letta.orm.errors import (
|
from letta.orm.errors import DatabaseTimeoutError, ForeignKeyConstraintViolationError, NoResultFound, UniqueConstraintViolationError
|
||||||
DatabaseTimeoutError,
|
|
||||||
ForeignKeyConstraintViolationError,
|
|
||||||
NoResultFound,
|
|
||||||
UniqueConstraintViolationError,
|
|
||||||
)
|
|
||||||
from letta.schemas.letta_response import LettaResponse
|
from letta.schemas.letta_response import LettaResponse
|
||||||
from letta.server.constants import REST_DEFAULT_PORT
|
from letta.server.constants import REST_DEFAULT_PORT
|
||||||
|
|
||||||
# NOTE(charles): these are extra routes that are not part of v1 but we still need to mount to pass tests
|
# NOTE(charles): these are extra routes that are not part of v1 but we still need to mount to pass tests
|
||||||
from letta.server.rest_api.auth.index import (
|
from letta.server.rest_api.auth.index import setup_auth_router # TODO: probably remove right?
|
||||||
setup_auth_router, # TODO: probably remove right?
|
|
||||||
)
|
|
||||||
from letta.server.rest_api.interface import StreamingServerInterface
|
from letta.server.rest_api.interface import StreamingServerInterface
|
||||||
from letta.server.rest_api.routers.openai.assistants.assistants import (
|
from letta.server.rest_api.routers.openai.assistants.assistants import router as openai_assistants_router
|
||||||
router as openai_assistants_router,
|
from letta.server.rest_api.routers.openai.chat_completions.chat_completions import router as openai_chat_completions_router
|
||||||
)
|
|
||||||
from letta.server.rest_api.routers.openai.chat_completions.chat_completions import (
|
|
||||||
router as openai_chat_completions_router,
|
|
||||||
)
|
|
||||||
|
|
||||||
# from letta.orm.utilities import get_db_session # TODO(ethan) reenable once we merge ORM
|
# from letta.orm.utilities import get_db_session # TODO(ethan) reenable once we merge ORM
|
||||||
from letta.server.rest_api.routers.v1 import ROUTERS as v1_routes
|
from letta.server.rest_api.routers.v1 import ROUTERS as v1_routes
|
||||||
from letta.server.rest_api.routers.v1.organizations import (
|
from letta.server.rest_api.routers.v1.organizations import router as organizations_router
|
||||||
router as organizations_router,
|
from letta.server.rest_api.routers.v1.users import router as users_router # TODO: decide on admin
|
||||||
)
|
|
||||||
from letta.server.rest_api.routers.v1.users import (
|
|
||||||
router as users_router, # TODO: decide on admin
|
|
||||||
)
|
|
||||||
from letta.server.rest_api.static_files import mount_static_files
|
from letta.server.rest_api.static_files import mount_static_files
|
||||||
from letta.server.server import SyncServer
|
from letta.server.server import SyncServer
|
||||||
from letta.settings import settings
|
from letta.settings import settings
|
||||||
from starlette.middleware.base import BaseHTTPMiddleware
|
|
||||||
from starlette.middleware.cors import CORSMiddleware
|
|
||||||
|
|
||||||
# TODO(ethan)
|
# TODO(ethan)
|
||||||
# NOTE(charles): @ethan I had to add this to get the global as the bottom to work
|
# NOTE(charles): @ethan I had to add this to get the global as the bottom to work
|
||||||
|
|||||||
@@ -2,10 +2,11 @@ from typing import Optional
|
|||||||
from uuid import UUID
|
from uuid import UUID
|
||||||
|
|
||||||
from fastapi import APIRouter
|
from fastapi import APIRouter
|
||||||
|
from pydantic import BaseModel, Field
|
||||||
|
|
||||||
from letta.log import get_logger
|
from letta.log import get_logger
|
||||||
from letta.server.rest_api.interface import QueuingInterface
|
from letta.server.rest_api.interface import QueuingInterface
|
||||||
from letta.server.server import SyncServer
|
from letta.server.server import SyncServer
|
||||||
from pydantic import BaseModel, Field
|
|
||||||
|
|
||||||
logger = get_logger(__name__)
|
logger = get_logger(__name__)
|
||||||
router = APIRouter()
|
router = APIRouter()
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import uuid
|
|||||||
|
|
||||||
from fastapi import Depends, HTTPException
|
from fastapi import Depends, HTTPException
|
||||||
from fastapi.security import HTTPAuthorizationCredentials, HTTPBearer
|
from fastapi.security import HTTPAuthorizationCredentials, HTTPBearer
|
||||||
|
|
||||||
from letta.server.server import SyncServer
|
from letta.server.server import SyncServer
|
||||||
|
|
||||||
security = HTTPBearer()
|
security = HTTPBearer()
|
||||||
|
|||||||
@@ -11,23 +11,20 @@ from letta.interface import AgentInterface
|
|||||||
from letta.local_llm.constants import INNER_THOUGHTS_KWARG
|
from letta.local_llm.constants import INNER_THOUGHTS_KWARG
|
||||||
from letta.schemas.enums import MessageStreamStatus
|
from letta.schemas.enums import MessageStreamStatus
|
||||||
from letta.schemas.letta_message import (
|
from letta.schemas.letta_message import (
|
||||||
AssistantMessage,
|
AssistantMessage,
|
||||||
LegacyFunctionCallMessage,
|
LegacyFunctionCallMessage,
|
||||||
LegacyLettaMessage,
|
LegacyLettaMessage,
|
||||||
LettaMessage,
|
LettaMessage,
|
||||||
ReasoningMessage,
|
ReasoningMessage,
|
||||||
ToolCall,
|
ToolCall,
|
||||||
ToolCallDelta,
|
ToolCallDelta,
|
||||||
ToolCallMessage,
|
ToolCallMessage,
|
||||||
ToolReturnMessage,
|
ToolReturnMessage,
|
||||||
)
|
)
|
||||||
from letta.schemas.message import Message
|
from letta.schemas.message import Message
|
||||||
from letta.schemas.openai.chat_completion_response import ChatCompletionChunkResponse
|
from letta.schemas.openai.chat_completion_response import ChatCompletionChunkResponse
|
||||||
from letta.streaming_interface import AgentChunkStreamingInterface
|
from letta.streaming_interface import AgentChunkStreamingInterface
|
||||||
from letta.streaming_utils import (
|
from letta.streaming_utils import FunctionArgumentsStreamHandler, JSONInnerThoughtsExtractor
|
||||||
FunctionArgumentsStreamHandler,
|
|
||||||
JSONInnerThoughtsExtractor,
|
|
||||||
)
|
|
||||||
from letta.utils import is_utc_datetime
|
from letta.utils import is_utc_datetime
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,14 @@
|
|||||||
from typing import List
|
from typing import List
|
||||||
|
|
||||||
from fastapi import APIRouter, Body, HTTPException, Path, Query
|
from fastapi import APIRouter, Body, HTTPException, Path, Query
|
||||||
|
|
||||||
from letta.constants import DEFAULT_PRESET
|
from letta.constants import DEFAULT_PRESET
|
||||||
from letta.schemas.openai.openai import AssistantFile, OpenAIAssistant
|
from letta.schemas.openai.openai import AssistantFile, OpenAIAssistant
|
||||||
from letta.server.rest_api.routers.openai.assistants.schemas import (
|
from letta.server.rest_api.routers.openai.assistants.schemas import (
|
||||||
CreateAssistantFileRequest,
|
CreateAssistantFileRequest,
|
||||||
CreateAssistantRequest,
|
CreateAssistantRequest,
|
||||||
DeleteAssistantFileResponse,
|
DeleteAssistantFileResponse,
|
||||||
DeleteAssistantResponse,
|
DeleteAssistantResponse,
|
||||||
)
|
)
|
||||||
from letta.utils import get_utc_time
|
from letta.utils import get_utc_time
|
||||||
|
|
||||||
|
|||||||
@@ -1,14 +1,9 @@
|
|||||||
from typing import List, Optional
|
from typing import List, Optional
|
||||||
|
|
||||||
from letta.schemas.openai.openai import (
|
|
||||||
MessageRoleType,
|
|
||||||
OpenAIMessage,
|
|
||||||
OpenAIThread,
|
|
||||||
ToolCall,
|
|
||||||
ToolCallOutput,
|
|
||||||
)
|
|
||||||
from pydantic import BaseModel, Field
|
from pydantic import BaseModel, Field
|
||||||
|
|
||||||
|
from letta.schemas.openai.openai import MessageRoleType, OpenAIMessage, OpenAIThread, ToolCall, ToolCallOutput
|
||||||
|
|
||||||
|
|
||||||
class CreateAssistantRequest(BaseModel):
|
class CreateAssistantRequest(BaseModel):
|
||||||
model: str = Field(..., description="The model to use for the assistant.")
|
model: str = Field(..., description="The model to use for the assistant.")
|
||||||
|
|||||||
@@ -2,15 +2,11 @@ import json
|
|||||||
from typing import TYPE_CHECKING, Optional
|
from typing import TYPE_CHECKING, Optional
|
||||||
|
|
||||||
from fastapi import APIRouter, Body, Depends, Header, HTTPException
|
from fastapi import APIRouter, Body, Depends, Header, HTTPException
|
||||||
|
|
||||||
from letta.schemas.enums import MessageRole
|
from letta.schemas.enums import MessageRole
|
||||||
from letta.schemas.letta_message import LettaMessage, ToolCall
|
from letta.schemas.letta_message import LettaMessage, ToolCall
|
||||||
from letta.schemas.openai.chat_completion_request import ChatCompletionRequest
|
from letta.schemas.openai.chat_completion_request import ChatCompletionRequest
|
||||||
from letta.schemas.openai.chat_completion_response import (
|
from letta.schemas.openai.chat_completion_response import ChatCompletionResponse, Choice, Message, UsageStatistics
|
||||||
ChatCompletionResponse,
|
|
||||||
Choice,
|
|
||||||
Message,
|
|
||||||
UsageStatistics,
|
|
||||||
)
|
|
||||||
|
|
||||||
# TODO this belongs in a controller!
|
# TODO this belongs in a controller!
|
||||||
from letta.server.rest_api.routers.v1.agents import send_message_to_agent
|
from letta.server.rest_api.routers.v1.agents import send_message_to_agent
|
||||||
|
|||||||
@@ -3,9 +3,7 @@ from letta.server.rest_api.routers.v1.blocks import router as blocks_router
|
|||||||
from letta.server.rest_api.routers.v1.health import router as health_router
|
from letta.server.rest_api.routers.v1.health import router as health_router
|
||||||
from letta.server.rest_api.routers.v1.jobs import router as jobs_router
|
from letta.server.rest_api.routers.v1.jobs import router as jobs_router
|
||||||
from letta.server.rest_api.routers.v1.llms import router as llm_router
|
from letta.server.rest_api.routers.v1.llms import router as llm_router
|
||||||
from letta.server.rest_api.routers.v1.sandbox_configs import (
|
from letta.server.rest_api.routers.v1.sandbox_configs import router as sandbox_configs_router
|
||||||
router as sandbox_configs_router,
|
|
||||||
)
|
|
||||||
from letta.server.rest_api.routers.v1.sources import router as sources_router
|
from letta.server.rest_api.routers.v1.sources import router as sources_router
|
||||||
from letta.server.rest_api.routers.v1.tools import router as tools_router
|
from letta.server.rest_api.routers.v1.tools import router as tools_router
|
||||||
|
|
||||||
|
|||||||
@@ -3,42 +3,21 @@ import warnings
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from typing import List, Optional, Union
|
from typing import List, Optional, Union
|
||||||
|
|
||||||
from fastapi import (
|
from fastapi import APIRouter, BackgroundTasks, Body, Depends, Header, HTTPException, Query, status
|
||||||
APIRouter,
|
|
||||||
BackgroundTasks,
|
|
||||||
Body,
|
|
||||||
Depends,
|
|
||||||
Header,
|
|
||||||
HTTPException,
|
|
||||||
Query,
|
|
||||||
status,
|
|
||||||
)
|
|
||||||
from fastapi.responses import JSONResponse, StreamingResponse
|
from fastapi.responses import JSONResponse, StreamingResponse
|
||||||
|
from pydantic import Field
|
||||||
|
|
||||||
from letta.constants import DEFAULT_MESSAGE_TOOL, DEFAULT_MESSAGE_TOOL_KWARG
|
from letta.constants import DEFAULT_MESSAGE_TOOL, DEFAULT_MESSAGE_TOOL_KWARG
|
||||||
from letta.log import get_logger
|
from letta.log import get_logger
|
||||||
from letta.orm.errors import NoResultFound
|
from letta.orm.errors import NoResultFound
|
||||||
from letta.schemas.agent import AgentState, CreateAgent, UpdateAgent
|
from letta.schemas.agent import AgentState, CreateAgent, UpdateAgent
|
||||||
from letta.schemas.block import ( # , BlockLabelUpdate, BlockLimitUpdate
|
from letta.schemas.block import Block, BlockUpdate, CreateBlock # , BlockLabelUpdate, BlockLimitUpdate
|
||||||
Block,
|
|
||||||
BlockUpdate,
|
|
||||||
CreateBlock,
|
|
||||||
)
|
|
||||||
from letta.schemas.enums import MessageStreamStatus
|
from letta.schemas.enums import MessageStreamStatus
|
||||||
from letta.schemas.job import Job, JobStatus, JobUpdate
|
from letta.schemas.job import Job, JobStatus, JobUpdate
|
||||||
from letta.schemas.letta_message import (
|
from letta.schemas.letta_message import LegacyLettaMessage, LettaMessage, LettaMessageUnion
|
||||||
LegacyLettaMessage,
|
|
||||||
LettaMessage,
|
|
||||||
LettaMessageUnion,
|
|
||||||
)
|
|
||||||
from letta.schemas.letta_request import LettaRequest, LettaStreamingRequest
|
from letta.schemas.letta_request import LettaRequest, LettaStreamingRequest
|
||||||
from letta.schemas.letta_response import LettaResponse
|
from letta.schemas.letta_response import LettaResponse
|
||||||
from letta.schemas.memory import (
|
from letta.schemas.memory import ArchivalMemorySummary, ContextWindowOverview, CreateArchivalMemory, Memory, RecallMemorySummary
|
||||||
ArchivalMemorySummary,
|
|
||||||
ContextWindowOverview,
|
|
||||||
CreateArchivalMemory,
|
|
||||||
Memory,
|
|
||||||
RecallMemorySummary,
|
|
||||||
)
|
|
||||||
from letta.schemas.message import Message, MessageCreate, MessageUpdate
|
from letta.schemas.message import Message, MessageCreate, MessageUpdate
|
||||||
from letta.schemas.passage import Passage
|
from letta.schemas.passage import Passage
|
||||||
from letta.schemas.source import Source
|
from letta.schemas.source import Source
|
||||||
@@ -47,7 +26,6 @@ from letta.schemas.user import User
|
|||||||
from letta.server.rest_api.interface import StreamingServerInterface
|
from letta.server.rest_api.interface import StreamingServerInterface
|
||||||
from letta.server.rest_api.utils import get_letta_server, sse_async_generator
|
from letta.server.rest_api.utils import get_letta_server, sse_async_generator
|
||||||
from letta.server.server import SyncServer
|
from letta.server.server import SyncServer
|
||||||
from pydantic import Field
|
|
||||||
|
|
||||||
# These can be forward refs, but because Fastapi needs them at runtime the must be imported normally
|
# These can be forward refs, but because Fastapi needs them at runtime the must be imported normally
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
from typing import TYPE_CHECKING, List, Optional
|
from typing import TYPE_CHECKING, List, Optional
|
||||||
|
|
||||||
from fastapi import APIRouter, Body, Depends, Header, HTTPException, Query, Response
|
from fastapi import APIRouter, Body, Depends, Header, HTTPException, Query, Response
|
||||||
|
|
||||||
from letta.orm.errors import NoResultFound
|
from letta.orm.errors import NoResultFound
|
||||||
from letta.schemas.block import Block, BlockUpdate, CreateBlock
|
from letta.schemas.block import Block, BlockUpdate, CreateBlock
|
||||||
from letta.server.rest_api.utils import get_letta_server
|
from letta.server.rest_api.utils import get_letta_server
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
from typing import TYPE_CHECKING
|
from typing import TYPE_CHECKING
|
||||||
|
|
||||||
from fastapi import APIRouter
|
from fastapi import APIRouter
|
||||||
|
|
||||||
from letta.cli.cli import version
|
from letta.cli.cli import version
|
||||||
from letta.schemas.health import Health
|
from letta.schemas.health import Health
|
||||||
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user