letta-nightly 0.4.1.dev20241008104105__py3-none-any.whl → 0.4.1.dev20241009104130__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of letta-nightly might be problematic. Click here for more details.
- letta/agent.py +18 -2
- letta/client/client.py +8 -1
- letta/credentials.py +2 -2
- letta/functions/schema_generator.py +1 -1
- letta/llm_api/anthropic.py +3 -24
- letta/llm_api/azure_openai.py +47 -98
- letta/llm_api/azure_openai_constants.py +10 -0
- letta/llm_api/google_ai.py +39 -64
- letta/llm_api/helpers.py +57 -2
- letta/llm_api/llm_api_tools.py +4 -3
- letta/llm_api/openai.py +5 -49
- letta/main.py +1 -1
- letta/metadata.py +2 -0
- letta/providers.py +139 -30
- letta/schemas/agent.py +14 -0
- letta/schemas/llm_config.py +0 -3
- letta/schemas/openai/chat_completion_response.py +3 -0
- letta/schemas/tool.py +3 -3
- letta/server/rest_api/routers/openai/assistants/threads.py +5 -5
- letta/server/rest_api/routers/openai/chat_completions/chat_completions.py +2 -2
- letta/server/rest_api/routers/v1/agents.py +11 -11
- letta/server/rest_api/routers/v1/blocks.py +2 -2
- letta/server/rest_api/routers/v1/jobs.py +2 -2
- letta/server/rest_api/routers/v1/sources.py +12 -12
- letta/server/rest_api/routers/v1/tools.py +6 -6
- letta/server/server.py +18 -5
- letta/settings.py +3 -112
- {letta_nightly-0.4.1.dev20241008104105.dist-info → letta_nightly-0.4.1.dev20241009104130.dist-info}/METADATA +1 -1
- {letta_nightly-0.4.1.dev20241008104105.dist-info → letta_nightly-0.4.1.dev20241009104130.dist-info}/RECORD +32 -31
- {letta_nightly-0.4.1.dev20241008104105.dist-info → letta_nightly-0.4.1.dev20241009104130.dist-info}/LICENSE +0 -0
- {letta_nightly-0.4.1.dev20241008104105.dist-info → letta_nightly-0.4.1.dev20241009104130.dist-info}/WHEEL +0 -0
- {letta_nightly-0.4.1.dev20241008104105.dist-info → letta_nightly-0.4.1.dev20241009104130.dist-info}/entry_points.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import os
|
|
2
2
|
import tempfile
|
|
3
|
-
from typing import List
|
|
3
|
+
from typing import List, Optional
|
|
4
4
|
|
|
5
5
|
from fastapi import APIRouter, BackgroundTasks, Depends, Header, Query, UploadFile
|
|
6
6
|
|
|
@@ -21,7 +21,7 @@ router = APIRouter(prefix="/sources", tags=["sources"])
|
|
|
21
21
|
def get_source(
|
|
22
22
|
source_id: str,
|
|
23
23
|
server: "SyncServer" = Depends(get_letta_server),
|
|
24
|
-
user_id: str = Header(None), # Extract user_id from header, default to None if not present
|
|
24
|
+
user_id: Optional[str] = Header(None, alias="user_id"), # Extract user_id from header, default to None if not present
|
|
25
25
|
):
|
|
26
26
|
"""
|
|
27
27
|
Get all sources
|
|
@@ -35,7 +35,7 @@ def get_source(
|
|
|
35
35
|
def get_source_id_by_name(
|
|
36
36
|
source_name: str,
|
|
37
37
|
server: "SyncServer" = Depends(get_letta_server),
|
|
38
|
-
user_id: str = Header(None), # Extract user_id from header, default to None if not present
|
|
38
|
+
user_id: Optional[str] = Header(None, alias="user_id"), # Extract user_id from header, default to None if not present
|
|
39
39
|
):
|
|
40
40
|
"""
|
|
41
41
|
Get a source by name
|
|
@@ -49,7 +49,7 @@ def get_source_id_by_name(
|
|
|
49
49
|
@router.get("/", response_model=List[Source], operation_id="list_sources")
|
|
50
50
|
def list_sources(
|
|
51
51
|
server: "SyncServer" = Depends(get_letta_server),
|
|
52
|
-
user_id: str = Header(None), # Extract user_id from header, default to None if not present
|
|
52
|
+
user_id: Optional[str] = Header(None, alias="user_id"), # Extract user_id from header, default to None if not present
|
|
53
53
|
):
|
|
54
54
|
"""
|
|
55
55
|
List all data sources created by a user.
|
|
@@ -63,7 +63,7 @@ def list_sources(
|
|
|
63
63
|
def create_source(
|
|
64
64
|
source: SourceCreate,
|
|
65
65
|
server: "SyncServer" = Depends(get_letta_server),
|
|
66
|
-
user_id: str = Header(None), # Extract user_id from header, default to None if not present
|
|
66
|
+
user_id: Optional[str] = Header(None, alias="user_id"), # Extract user_id from header, default to None if not present
|
|
67
67
|
):
|
|
68
68
|
"""
|
|
69
69
|
Create a new data source.
|
|
@@ -78,7 +78,7 @@ def update_source(
|
|
|
78
78
|
source_id: str,
|
|
79
79
|
source: SourceUpdate,
|
|
80
80
|
server: "SyncServer" = Depends(get_letta_server),
|
|
81
|
-
user_id: str = Header(None), # Extract user_id from header, default to None if not present
|
|
81
|
+
user_id: Optional[str] = Header(None, alias="user_id"), # Extract user_id from header, default to None if not present
|
|
82
82
|
):
|
|
83
83
|
"""
|
|
84
84
|
Update the name or documentation of an existing data source.
|
|
@@ -94,7 +94,7 @@ def update_source(
|
|
|
94
94
|
def delete_source(
|
|
95
95
|
source_id: str,
|
|
96
96
|
server: "SyncServer" = Depends(get_letta_server),
|
|
97
|
-
user_id: str = Header(None), # Extract user_id from header, default to None if not present
|
|
97
|
+
user_id: Optional[str] = Header(None, alias="user_id"), # Extract user_id from header, default to None if not present
|
|
98
98
|
):
|
|
99
99
|
"""
|
|
100
100
|
Delete a data source.
|
|
@@ -109,7 +109,7 @@ def attach_source_to_agent(
|
|
|
109
109
|
source_id: str,
|
|
110
110
|
agent_id: str = Query(..., description="The unique identifier of the agent to attach the source to."),
|
|
111
111
|
server: "SyncServer" = Depends(get_letta_server),
|
|
112
|
-
user_id: str = Header(None), # Extract user_id from header, default to None if not present
|
|
112
|
+
user_id: Optional[str] = Header(None, alias="user_id"), # Extract user_id from header, default to None if not present
|
|
113
113
|
):
|
|
114
114
|
"""
|
|
115
115
|
Attach a data source to an existing agent.
|
|
@@ -127,7 +127,7 @@ def detach_source_from_agent(
|
|
|
127
127
|
source_id: str,
|
|
128
128
|
agent_id: str = Query(..., description="The unique identifier of the agent to detach the source from."),
|
|
129
129
|
server: "SyncServer" = Depends(get_letta_server),
|
|
130
|
-
user_id: str = Header(None), # Extract user_id from header, default to None if not present
|
|
130
|
+
user_id: Optional[str] = Header(None, alias="user_id"), # Extract user_id from header, default to None if not present
|
|
131
131
|
) -> None:
|
|
132
132
|
"""
|
|
133
133
|
Detach a data source from an existing agent.
|
|
@@ -143,7 +143,7 @@ def upload_file_to_source(
|
|
|
143
143
|
source_id: str,
|
|
144
144
|
background_tasks: BackgroundTasks,
|
|
145
145
|
server: "SyncServer" = Depends(get_letta_server),
|
|
146
|
-
user_id: str = Header(None), # Extract user_id from header, default to None if not present
|
|
146
|
+
user_id: Optional[str] = Header(None, alias="user_id"), # Extract user_id from header, default to None if not present
|
|
147
147
|
):
|
|
148
148
|
"""
|
|
149
149
|
Upload a file to a data source.
|
|
@@ -176,7 +176,7 @@ def upload_file_to_source(
|
|
|
176
176
|
def list_passages(
|
|
177
177
|
source_id: str,
|
|
178
178
|
server: SyncServer = Depends(get_letta_server),
|
|
179
|
-
user_id: str = Header(None), # Extract user_id from header, default to None if not present
|
|
179
|
+
user_id: Optional[str] = Header(None, alias="user_id"), # Extract user_id from header, default to None if not present
|
|
180
180
|
):
|
|
181
181
|
"""
|
|
182
182
|
List all passages associated with a data source.
|
|
@@ -190,7 +190,7 @@ def list_passages(
|
|
|
190
190
|
def list_documents(
|
|
191
191
|
source_id: str,
|
|
192
192
|
server: "SyncServer" = Depends(get_letta_server),
|
|
193
|
-
user_id: str = Header(None), # Extract user_id from header, default to None if not present
|
|
193
|
+
user_id: Optional[str] = Header(None, alias="user_id"), # Extract user_id from header, default to None if not present
|
|
194
194
|
):
|
|
195
195
|
"""
|
|
196
196
|
List all documents associated with a data source.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from typing import List
|
|
1
|
+
from typing import List, Optional
|
|
2
2
|
|
|
3
3
|
from fastapi import APIRouter, Body, Depends, Header, HTTPException
|
|
4
4
|
|
|
@@ -13,7 +13,7 @@ router = APIRouter(prefix="/tools", tags=["tools"])
|
|
|
13
13
|
def delete_tool(
|
|
14
14
|
tool_id: str,
|
|
15
15
|
server: SyncServer = Depends(get_letta_server),
|
|
16
|
-
user_id: str = Header(None), # Extract user_id from header, default to None if not present
|
|
16
|
+
user_id: Optional[str] = Header(None, alias="user_id"), # Extract user_id from header, default to None if not present
|
|
17
17
|
):
|
|
18
18
|
"""
|
|
19
19
|
Delete a tool by name
|
|
@@ -43,7 +43,7 @@ def get_tool(
|
|
|
43
43
|
def get_tool_id(
|
|
44
44
|
tool_name: str,
|
|
45
45
|
server: SyncServer = Depends(get_letta_server),
|
|
46
|
-
user_id: str = Header(None), # Extract user_id from header, default to None if not present
|
|
46
|
+
user_id: Optional[str] = Header(None, alias="user_id"), # Extract user_id from header, default to None if not present
|
|
47
47
|
):
|
|
48
48
|
"""
|
|
49
49
|
Get a tool ID by name
|
|
@@ -60,7 +60,7 @@ def get_tool_id(
|
|
|
60
60
|
@router.get("/", response_model=List[Tool], operation_id="list_tools")
|
|
61
61
|
def list_all_tools(
|
|
62
62
|
server: SyncServer = Depends(get_letta_server),
|
|
63
|
-
user_id: str = Header(None), # Extract user_id from header, default to None if not present
|
|
63
|
+
user_id: Optional[str] = Header(None, alias="user_id"), # Extract user_id from header, default to None if not present
|
|
64
64
|
):
|
|
65
65
|
"""
|
|
66
66
|
Get a list of all tools available to agents created by a user
|
|
@@ -78,7 +78,7 @@ def create_tool(
|
|
|
78
78
|
tool: ToolCreate = Body(...),
|
|
79
79
|
update: bool = False,
|
|
80
80
|
server: SyncServer = Depends(get_letta_server),
|
|
81
|
-
user_id: str = Header(None), # Extract user_id from header, default to None if not present
|
|
81
|
+
user_id: Optional[str] = Header(None, alias="user_id"), # Extract user_id from header, default to None if not present
|
|
82
82
|
):
|
|
83
83
|
"""
|
|
84
84
|
Create a new tool
|
|
@@ -98,7 +98,7 @@ def update_tool(
|
|
|
98
98
|
tool_id: str,
|
|
99
99
|
request: ToolUpdate = Body(...),
|
|
100
100
|
server: SyncServer = Depends(get_letta_server),
|
|
101
|
-
user_id: str = Header(None), # Extract user_id from header, default to None if not present
|
|
101
|
+
user_id: Optional[str] = Header(None, alias="user_id"), # Extract user_id from header, default to None if not present
|
|
102
102
|
):
|
|
103
103
|
"""
|
|
104
104
|
Update an existing tool
|
letta/server/server.py
CHANGED
|
@@ -51,7 +51,7 @@ from letta.providers import (
|
|
|
51
51
|
OpenAIProvider,
|
|
52
52
|
VLLMProvider,
|
|
53
53
|
)
|
|
54
|
-
from letta.schemas.agent import AgentState, CreateAgent, UpdateAgentState
|
|
54
|
+
from letta.schemas.agent import AgentState, AgentType, CreateAgent, UpdateAgentState
|
|
55
55
|
from letta.schemas.api_key import APIKey, APIKeyCreate
|
|
56
56
|
from letta.schemas.block import (
|
|
57
57
|
Block,
|
|
@@ -272,7 +272,13 @@ class SyncServer(Server):
|
|
|
272
272
|
if model_settings.gemini_api_key:
|
|
273
273
|
self._enabled_providers.append(GoogleAIProvider(api_key=model_settings.gemini_api_key))
|
|
274
274
|
if model_settings.azure_api_key and model_settings.azure_base_url:
|
|
275
|
-
self._enabled_providers.append(
|
|
275
|
+
self._enabled_providers.append(
|
|
276
|
+
AzureProvider(
|
|
277
|
+
api_key=model_settings.azure_api_key,
|
|
278
|
+
base_url=model_settings.azure_base_url,
|
|
279
|
+
api_version=model_settings.azure_api_version,
|
|
280
|
+
)
|
|
281
|
+
)
|
|
276
282
|
|
|
277
283
|
def save_agents(self):
|
|
278
284
|
"""Saves all the agents that are in the in-memory object store"""
|
|
@@ -335,7 +341,10 @@ class SyncServer(Server):
|
|
|
335
341
|
# Make sure the memory is a memory object
|
|
336
342
|
assert isinstance(agent_state.memory, Memory)
|
|
337
343
|
|
|
338
|
-
|
|
344
|
+
if agent_state.agent_type == AgentType.memgpt_agent:
|
|
345
|
+
letta_agent = Agent(agent_state=agent_state, interface=interface, tools=tool_objs)
|
|
346
|
+
else:
|
|
347
|
+
raise NotImplementedError("Only base agents are supported as of right now!")
|
|
339
348
|
|
|
340
349
|
# Add the agent to the in-memory store and return its reference
|
|
341
350
|
logger.debug(f"Adding agent to the agent cache: user_id={user_id}, agent_id={agent_id}")
|
|
@@ -599,7 +608,7 @@ class SyncServer(Server):
|
|
|
599
608
|
)
|
|
600
609
|
|
|
601
610
|
# Run the agent state forward
|
|
602
|
-
usage = self._step(user_id=user_id, agent_id=agent_id, input_message=
|
|
611
|
+
usage = self._step(user_id=user_id, agent_id=agent_id, input_message=message, timestamp=timestamp)
|
|
603
612
|
return usage
|
|
604
613
|
|
|
605
614
|
def system_message(
|
|
@@ -787,6 +796,7 @@ class SyncServer(Server):
|
|
|
787
796
|
name=request.name,
|
|
788
797
|
user_id=user_id,
|
|
789
798
|
tools=request.tools if request.tools else [],
|
|
799
|
+
agent_type=request.agent_type or AgentType.memgpt_agent,
|
|
790
800
|
llm_config=llm_config,
|
|
791
801
|
embedding_config=embedding_config,
|
|
792
802
|
system=request.system,
|
|
@@ -1921,7 +1931,10 @@ class SyncServer(Server):
|
|
|
1921
1931
|
if user_id is None:
|
|
1922
1932
|
return self.get_default_user()
|
|
1923
1933
|
else:
|
|
1924
|
-
|
|
1934
|
+
try:
|
|
1935
|
+
return self.get_user(user_id=user_id)
|
|
1936
|
+
except ValueError:
|
|
1937
|
+
raise HTTPException(status_code=404, detail=f"User with id {user_id} not found")
|
|
1925
1938
|
|
|
1926
1939
|
def list_llm_models(self) -> List[LLMConfig]:
|
|
1927
1940
|
"""List available models"""
|
letta/settings.py
CHANGED
|
@@ -13,8 +13,8 @@ class ModelSettings(BaseSettings):
|
|
|
13
13
|
openai_api_key: Optional[str] = None
|
|
14
14
|
# TODO: provide overriding BASE_URL?
|
|
15
15
|
|
|
16
|
-
#
|
|
17
|
-
|
|
16
|
+
# groq
|
|
17
|
+
groq_api_key: Optional[str] = None
|
|
18
18
|
|
|
19
19
|
# anthropic
|
|
20
20
|
anthropic_api_key: Optional[str] = None
|
|
@@ -25,6 +25,7 @@ class ModelSettings(BaseSettings):
|
|
|
25
25
|
# azure
|
|
26
26
|
azure_api_key: Optional[str] = None
|
|
27
27
|
azure_base_url: Optional[str] = None
|
|
28
|
+
azure_api_version: Optional[str] = None
|
|
28
29
|
|
|
29
30
|
# google ai
|
|
30
31
|
gemini_api_key: Optional[str] = None
|
|
@@ -55,116 +56,6 @@ class Settings(BaseSettings):
|
|
|
55
56
|
pg_port: Optional[int] = None
|
|
56
57
|
pg_uri: Optional[str] = None # option to specifiy full uri
|
|
57
58
|
|
|
58
|
-
## llm configuration
|
|
59
|
-
# llm_endpoint: Optional[str] = None
|
|
60
|
-
# llm_endpoint_type: Optional[str] = None
|
|
61
|
-
# llm_model: Optional[str] = None
|
|
62
|
-
# llm_context_window: Optional[int] = None
|
|
63
|
-
|
|
64
|
-
## embedding configuration
|
|
65
|
-
# embedding_endpoint: Optional[str] = None
|
|
66
|
-
# embedding_endpoint_type: Optional[str] = None
|
|
67
|
-
# embedding_dim: Optional[int] = None
|
|
68
|
-
# embedding_model: Optional[str] = None
|
|
69
|
-
# embedding_chunk_size: int = 300
|
|
70
|
-
|
|
71
|
-
# @property
|
|
72
|
-
# def llm_config(self):
|
|
73
|
-
|
|
74
|
-
# # try to get LLM config from settings
|
|
75
|
-
# if self.llm_endpoint and self.llm_endpoint_type and self.llm_model and self.llm_context_window:
|
|
76
|
-
# return LLMConfig(
|
|
77
|
-
# model=self.llm_model,
|
|
78
|
-
# model_endpoint_type=self.llm_endpoint_type,
|
|
79
|
-
# model_endpoint=self.llm_endpoint,
|
|
80
|
-
# model_wrapper=None,
|
|
81
|
-
# context_window=self.llm_context_window,
|
|
82
|
-
# )
|
|
83
|
-
# else:
|
|
84
|
-
# if not self.llm_endpoint:
|
|
85
|
-
# printd(f"No LETTA_LLM_ENDPOINT provided")
|
|
86
|
-
# if not self.llm_endpoint_type:
|
|
87
|
-
# printd(f"No LETTA_LLM_ENDPOINT_TYPE provided")
|
|
88
|
-
# if not self.llm_model:
|
|
89
|
-
# printd(f"No LETTA_LLM_MODEL provided")
|
|
90
|
-
# if not self.llm_context_window:
|
|
91
|
-
# printd(f"No LETTA_LLM_CONTEX_WINDOW provided")
|
|
92
|
-
|
|
93
|
-
# # quickstart options
|
|
94
|
-
# if self.llm_model:
|
|
95
|
-
# try:
|
|
96
|
-
# return LLMConfig.default_config(self.llm_model)
|
|
97
|
-
# except ValueError:
|
|
98
|
-
# pass
|
|
99
|
-
|
|
100
|
-
# # try to read from config file (last resort)
|
|
101
|
-
# from letta.config import LettaConfig
|
|
102
|
-
|
|
103
|
-
# if LettaConfig.exists():
|
|
104
|
-
# config = LettaConfig.load()
|
|
105
|
-
# llm_config = LLMConfig(
|
|
106
|
-
# model=config.default_llm_config.model,
|
|
107
|
-
# model_endpoint_type=config.default_llm_config.model_endpoint_type,
|
|
108
|
-
# model_endpoint=config.default_llm_config.model_endpoint,
|
|
109
|
-
# model_wrapper=config.default_llm_config.model_wrapper,
|
|
110
|
-
# context_window=config.default_llm_config.context_window,
|
|
111
|
-
# )
|
|
112
|
-
# return llm_config
|
|
113
|
-
|
|
114
|
-
# # check OpenAI API key
|
|
115
|
-
# if os.getenv("OPENAI_API_KEY"):
|
|
116
|
-
# return LLMConfig.default_config(self.llm_model if self.llm_model else "gpt-4")
|
|
117
|
-
|
|
118
|
-
# return LLMConfig.default_config("letta")
|
|
119
|
-
|
|
120
|
-
# @property
|
|
121
|
-
# def embedding_config(self):
|
|
122
|
-
|
|
123
|
-
# # try to get LLM config from settings
|
|
124
|
-
# if self.embedding_endpoint and self.embedding_endpoint_type and self.embedding_model and self.embedding_dim:
|
|
125
|
-
# return EmbeddingConfig(
|
|
126
|
-
# embedding_model=self.embedding_model,
|
|
127
|
-
# embedding_endpoint_type=self.embedding_endpoint_type,
|
|
128
|
-
# embedding_endpoint=self.embedding_endpoint,
|
|
129
|
-
# embedding_dim=self.embedding_dim,
|
|
130
|
-
# embedding_chunk_size=self.embedding_chunk_size,
|
|
131
|
-
# )
|
|
132
|
-
# else:
|
|
133
|
-
# if not self.embedding_endpoint:
|
|
134
|
-
# printd(f"No LETTA_EMBEDDING_ENDPOINT provided")
|
|
135
|
-
# if not self.embedding_endpoint_type:
|
|
136
|
-
# printd(f"No LETTA_EMBEDDING_ENDPOINT_TYPE provided")
|
|
137
|
-
# if not self.embedding_model:
|
|
138
|
-
# printd(f"No LETTA_EMBEDDING_MODEL provided")
|
|
139
|
-
# if not self.embedding_dim:
|
|
140
|
-
# printd(f"No LETTA_EMBEDDING_DIM provided")
|
|
141
|
-
|
|
142
|
-
# # TODO
|
|
143
|
-
# ## quickstart options
|
|
144
|
-
# # if self.embedding_model:
|
|
145
|
-
# # try:
|
|
146
|
-
# # return EmbeddingConfig.default_config(self.embedding_model)
|
|
147
|
-
# # except ValueError as e:
|
|
148
|
-
# # pass
|
|
149
|
-
|
|
150
|
-
# # try to read from config file (last resort)
|
|
151
|
-
# from letta.config import LettaConfig
|
|
152
|
-
|
|
153
|
-
# if LettaConfig.exists():
|
|
154
|
-
# config = LettaConfig.load()
|
|
155
|
-
# return EmbeddingConfig(
|
|
156
|
-
# embedding_model=config.default_embedding_config.embedding_model,
|
|
157
|
-
# embedding_endpoint_type=config.default_embedding_config.embedding_endpoint_type,
|
|
158
|
-
# embedding_endpoint=config.default_embedding_config.embedding_endpoint,
|
|
159
|
-
# embedding_dim=config.default_embedding_config.embedding_dim,
|
|
160
|
-
# embedding_chunk_size=config.default_embedding_config.embedding_chunk_size,
|
|
161
|
-
# )
|
|
162
|
-
|
|
163
|
-
# if os.getenv("OPENAI_API_KEY"):
|
|
164
|
-
# return EmbeddingConfig.default_config(self.embedding_model if self.embedding_model else "text-embedding-ada-002")
|
|
165
|
-
|
|
166
|
-
# return EmbeddingConfig.default_config("letta")
|
|
167
|
-
|
|
168
59
|
@property
|
|
169
60
|
def letta_pg_uri(self) -> str:
|
|
170
61
|
if self.pg_uri:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
letta/__init__.py,sha256=btKRPdyhkpIyHlCPRLwwz-SCSVcEGNBeheYA-XNesiI,996
|
|
2
2
|
letta/__main__.py,sha256=6Hs2PV7EYc5Tid4g4OtcLXhqVHiNYTGzSBdoOnW2HXA,29
|
|
3
|
-
letta/agent.py,sha256=
|
|
3
|
+
letta/agent.py,sha256=2yYk8H76EYF8-EF5eFqv8dp8avaBcV_hfXOQcwYuAwU,66559
|
|
4
4
|
letta/agent_store/chroma.py,sha256=upR5zGnGs6I6btulEYbiZdGG87BgKjxUJOQZ4Y-RQ_M,12492
|
|
5
5
|
letta/agent_store/db.py,sha256=uoWu4nfQ6YmT2WKTkNyV5mP25hxpZXAvQqans4JhnM4,21798
|
|
6
6
|
letta/agent_store/lancedb.py,sha256=8RWmqVjowm5g0cc6DNRcb6f1FHGEqFnccnuekhWY39U,5101
|
|
@@ -14,7 +14,7 @@ letta/cli/cli_config.py,sha256=eY4D4SVJJghaatyrmsQw87sQ4NoozokEIeK0jfDJINY,58769
|
|
|
14
14
|
letta/cli/cli_load.py,sha256=aVlGWiNEUs_eG793HLl7cES-dEIuA1CJfZpT1Cm8Uo4,4591
|
|
15
15
|
letta/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
16
16
|
letta/client/admin.py,sha256=itdH1dGL143Je5tkZl8dQ1PavjepClar3QasxpbX1cI,7397
|
|
17
|
-
letta/client/client.py,sha256=
|
|
17
|
+
letta/client/client.py,sha256=bPvSQrbym4xXZu9EfEbX02fpkNVxFBpKoyzK9PFwykE,84515
|
|
18
18
|
letta/client/streaming.py,sha256=bfWlUu7z7EoPfKxBqIarYxGKyrL7Pj79BlliToqcCgI,4592
|
|
19
19
|
letta/client/utils.py,sha256=NMFts6bFsHTV0yW3BRRo2HSqGr6Gr3tj1kNtkUCgMCA,2262
|
|
20
20
|
letta/config.py,sha256=j2I90fOh9d9__kOYObwTDLbvVwYR50rIql5nzrvREKg,19161
|
|
@@ -22,7 +22,7 @@ letta/configs/anthropic.json,sha256=Buds8qZXR1f_vR1X9e2LxOHIEufAEWFjLovV0g0nbIU,
|
|
|
22
22
|
letta/configs/letta_hosted.json,sha256=pMXFCjX2liBeBY1M2Wgu9GwEicN8tveO1VPoNHpWbRc,365
|
|
23
23
|
letta/configs/openai.json,sha256=z0izsHi7vAj_kJrd3XNgxej61HjPIJobABbhvxL0d8g,373
|
|
24
24
|
letta/constants.py,sha256=VV6T8O4w4ju8q5CrPCbvPwHlUTltkeFji-r7hz8LTIw,5930
|
|
25
|
-
letta/credentials.py,sha256=
|
|
25
|
+
letta/credentials.py,sha256=D9mlcPsdDWlIIXQQD8wSPE9M_QvsRrb0p3LB5i9OF5Q,5806
|
|
26
26
|
letta/data_sources/connectors.py,sha256=E2rJNqVT4WEvxBqOQl0YgNKa_JQXkG0h1luw_XLcTis,10232
|
|
27
27
|
letta/embeddings.py,sha256=GPF9ILCQT7n71fxyMV8mRjXBSGfUwPLUE88h81UOc5I,8020
|
|
28
28
|
letta/errors.py,sha256=cDOo4cSYL-LA0w0b0GdsxXd5k2I1LLOY8nhtXk9YqYs,2875
|
|
@@ -31,19 +31,20 @@ letta/functions/function_sets/base.py,sha256=N4QmOjL6gDEyOg67ocF6zVKM-NquTo-yXG_
|
|
|
31
31
|
letta/functions/function_sets/extras.py,sha256=Jik3UiDqYTm4Lam1XPTvuVjvgUHwIAhopsnbmVhGMBg,4732
|
|
32
32
|
letta/functions/functions.py,sha256=OU98c-Rds9UCQ8CufzdrpzSZsQ0a02uDv_x5VqoNFfw,3381
|
|
33
33
|
letta/functions/helpers.py,sha256=dzeQ1hsxI-20QcVzkS8y55aCJw3iGbtm4oqBobb_tIM,9876
|
|
34
|
-
letta/functions/schema_generator.py,sha256=
|
|
34
|
+
letta/functions/schema_generator.py,sha256=dsVTr9SPyMISU2ZSm1ruStlYnYMnli12dCFuHRAEH1A,6488
|
|
35
35
|
letta/humans/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
36
36
|
letta/humans/examples/basic.txt,sha256=Lcp8YESTWvOJgO4Yf_yyQmgo5bKakeB1nIVrwEGG6PA,17
|
|
37
37
|
letta/humans/examples/cs_phd.txt,sha256=9C9ZAV_VuG7GB31ksy3-_NAyk8rjE6YtVOkhp08k1xw,297
|
|
38
38
|
letta/interface.py,sha256=HP4Yb-WUfuJ6w1WgV-DbM-QNhV02IHdUzHzCygrwdfk,12612
|
|
39
39
|
letta/llm_api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
40
|
-
letta/llm_api/anthropic.py,sha256=
|
|
41
|
-
letta/llm_api/azure_openai.py,sha256=
|
|
40
|
+
letta/llm_api/anthropic.py,sha256=bAb9PVrpYjo2QN51_SJbW7Vry2_Sf55B05UoruHXb7A,12932
|
|
41
|
+
letta/llm_api/azure_openai.py,sha256=8uBQIYa3WpRcxLXgJTYZrl-GhDGflqxXraRLZlpkdh4,4566
|
|
42
|
+
letta/llm_api/azure_openai_constants.py,sha256=oXtKrgBFHf744gyt5l1thILXgyi8NDNUrKEa2GGGpjw,278
|
|
42
43
|
letta/llm_api/cohere.py,sha256=vDRd-SUGp1t_JUIdwC3RkIhwMl0OY7n-tAU9uPORYkY,14826
|
|
43
|
-
letta/llm_api/google_ai.py,sha256=
|
|
44
|
-
letta/llm_api/helpers.py,sha256=
|
|
45
|
-
letta/llm_api/llm_api_tools.py,sha256=
|
|
46
|
-
letta/llm_api/openai.py,sha256=
|
|
44
|
+
letta/llm_api/google_ai.py,sha256=FhSGSMDXCdx9KiChYfBkG35U5pG40b-lL4hibf9ZAqk,17727
|
|
45
|
+
letta/llm_api/helpers.py,sha256=IVDiHvojUzappD7kgKY3TtMJ0edKu24Xw6wxbeIyOd4,9058
|
|
46
|
+
letta/llm_api/llm_api_tools.py,sha256=eYbwuyxEonI2tp6MHet2b0GcmF4Yh2V9kGopebtTb7I,15707
|
|
47
|
+
letta/llm_api/openai.py,sha256=SnZtVigiTPLMwgdP51XO3bdl6GAlKQb5wKIIPkLlUGM,21432
|
|
47
48
|
letta/local_llm/README.md,sha256=hFJyw5B0TU2jrh9nb0zGZMgdH-Ei1dSRfhvPQG_NSoU,168
|
|
48
49
|
letta/local_llm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
49
50
|
letta/local_llm/chat_completion_proxy.py,sha256=PXgNveahts5DbZ7GVcPShxmrDKropL81PY2JHc31yAA,13091
|
|
@@ -82,9 +83,9 @@ letta/local_llm/webui/legacy_api.py,sha256=k3H3y4qp2Fs-XmP24iSIEyvq6wjWFWBzklY3-
|
|
|
82
83
|
letta/local_llm/webui/legacy_settings.py,sha256=BLmd3TSx5StnY3ibjwaxYATPt_Lvq-o1rlcc_-Q1JcU,538
|
|
83
84
|
letta/local_llm/webui/settings.py,sha256=gmLHfiOl1u4JmlAZU2d2O8YKF9lafdakyjwR_ftVPh8,552
|
|
84
85
|
letta/log.py,sha256=QHquDnL7oUAvdKlAwUlCK9zXKDMUjrU9WA0bxnMsP0Y,2101
|
|
85
|
-
letta/main.py,sha256=
|
|
86
|
+
letta/main.py,sha256=7uuiFv8TeOd3K92WwfYkls7l7KXJ5P0l2zgK9AfmD08,18502
|
|
86
87
|
letta/memory.py,sha256=6q1x3-PY-PeXzAt6hvP-UF1ajvroPZ7XW-5nLy-JhMo,17657
|
|
87
|
-
letta/metadata.py,sha256
|
|
88
|
+
letta/metadata.py,sha256=-LUv7w5yaCn10wh7vnFCrhH4s5M5F0K3Ui7pClXN3tE,33225
|
|
88
89
|
letta/openai_backcompat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
89
90
|
letta/openai_backcompat/openai_object.py,sha256=Y1ZS1sATP60qxJiOsjOP3NbwSzuzvkNAvb3DeuhM5Uk,13490
|
|
90
91
|
letta/persistence_manager.py,sha256=LlLgEDpSafCPAiyKmuq0NvVAnfBkZo6TWbGIKYQjQBs,5200
|
|
@@ -108,9 +109,9 @@ letta/prompts/system/memgpt_doc.txt,sha256=AsT55NOORoH-K-p0fxklrDRZ3qHs4MIKMuR-M
|
|
|
108
109
|
letta/prompts/system/memgpt_gpt35_extralong.txt,sha256=FheNhYoIzNz6qnJKhVquZVSMj3HduC48reFaX7Pf7ig,5046
|
|
109
110
|
letta/prompts/system/memgpt_intuitive_knowledge.txt,sha256=sA7c3urYqREVnSBI81nTGImXAekqC0Fxc7RojFqud1g,2966
|
|
110
111
|
letta/prompts/system/memgpt_modified_chat.txt,sha256=HOaPVurEftD8KsuwsclDgE2afIfklMjxhuSO96q1-6I,4656
|
|
111
|
-
letta/providers.py,sha256=
|
|
112
|
+
letta/providers.py,sha256=WeITSKYvd0ZflGnRDJlKs2fQtA3A_ZO-r44Qf0AQAYs,12853
|
|
112
113
|
letta/pytest.ini,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
113
|
-
letta/schemas/agent.py,sha256=
|
|
114
|
+
letta/schemas/agent.py,sha256=ztnUqdhY9V3g0jsbTjF1ypKPC1tZx4QVFaRuLAOXNSA,6230
|
|
114
115
|
letta/schemas/api_key.py,sha256=u07yzzMn-hBAHZIIKbWY16KsgiFjSNR8lAghpMUo3_4,682
|
|
115
116
|
letta/schemas/block.py,sha256=1_GwFtfykloYU4Mp2DV3-DqkvsKo79Mu3LAzVYOgMzk,3998
|
|
116
117
|
letta/schemas/document.py,sha256=JpvU0YkvOVLvHaDNcg-ihFzpeHC2zqsWBgyJ6zHnfNw,745
|
|
@@ -122,18 +123,18 @@ letta/schemas/letta_base.py,sha256=4QXFgyjCHqIagi8B6_4nmqb9eoJ52Y6aCxBxQpGX48M,2
|
|
|
122
123
|
letta/schemas/letta_message.py,sha256=Slgxa59qZfdvqXuCVHOt03u-7JL456ZY-WLaK5UYYKU,6234
|
|
123
124
|
letta/schemas/letta_request.py,sha256=Fv4hZKLMefCISwxuElXB0vsGDjqnzZuCbCbHPUPTirQ,1852
|
|
124
125
|
letta/schemas/letta_response.py,sha256=_UJoO3UtC3F5DtQCHzdiGM1SHNPYPKvopIWqg8t5YZw,1564
|
|
125
|
-
letta/schemas/llm_config.py,sha256=
|
|
126
|
+
letta/schemas/llm_config.py,sha256=oC-RTimpLhNmn80AyCLnx8YUwA0sIR1UqshYxHVbamU,2671
|
|
126
127
|
letta/schemas/memory.py,sha256=mDJbe9mzTw0HSn6tiouC3z32r-8Fc_EaeqxDy_hXf0U,9327
|
|
127
128
|
letta/schemas/message.py,sha256=1C6lz4yvMTusE8zORKbi_BKnb_X_-RuUvdpM5YeZ21o,33409
|
|
128
129
|
letta/schemas/openai/chat_completion_request.py,sha256=Fa7xnSnG7WUQounJhnDu0fTSxoR6xOAh2bODuqmfypI,3345
|
|
129
|
-
letta/schemas/openai/chat_completion_response.py,sha256=
|
|
130
|
+
letta/schemas/openai/chat_completion_response.py,sha256=05FRfm1EsVivyeWo2aoJk34h3W4pAb4lBCPn1eujjcw,3916
|
|
130
131
|
letta/schemas/openai/chat_completions.py,sha256=V0ZPIIk-ds3O6MAkNHMz8zh1hqMFSPrTcYr88WDYzWE,3588
|
|
131
132
|
letta/schemas/openai/embedding_response.py,sha256=WKIZpXab1Av7v6sxKG8feW3ZtpQUNosmLVSuhXYa_xU,357
|
|
132
133
|
letta/schemas/openai/openai.py,sha256=Hilo5BiLAGabzxCwnwfzK5QrWqwYD8epaEKFa4Pwndk,7970
|
|
133
134
|
letta/schemas/organization.py,sha256=JSc3hLl0IO_c9iOqf367sU5tJ0Dx_kPzbokCEg0eS4g,601
|
|
134
135
|
letta/schemas/passage.py,sha256=ZO8-WOToLgf-DzUkREp9MQF274SLYeZwnSoNo2sKPHc,3573
|
|
135
136
|
letta/schemas/source.py,sha256=rAM3Xjt7zJ3JLXpUxWmdYIujns4ZuqGCsozmNAWX5kI,2570
|
|
136
|
-
letta/schemas/tool.py,sha256=
|
|
137
|
+
letta/schemas/tool.py,sha256=HpBxUJcSxP1V6xDcdByAbC3jMQ8lp6ozTxU7kFQY45A,8591
|
|
137
138
|
letta/schemas/usage.py,sha256=lvn1ooHwLEdv6gwQpw5PBUbcwn_gwdT6HA-fCiix6sY,817
|
|
138
139
|
letta/schemas/user.py,sha256=D7DiPzieXZIHOLInJdYZlHjKOy2bl7KxGCesNk0yf5E,1003
|
|
139
140
|
letta/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -153,22 +154,22 @@ letta/server/rest_api/routers/openai/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeu
|
|
|
153
154
|
letta/server/rest_api/routers/openai/assistants/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
154
155
|
letta/server/rest_api/routers/openai/assistants/assistants.py,sha256=PXv5vLFDa3ptMBY6QJUkMaPqk2HFP0IpirJUCmgOY6k,4828
|
|
155
156
|
letta/server/rest_api/routers/openai/assistants/schemas.py,sha256=d3LdBLUI-mMUCP-Q3X9Z_DqIu-ko9_KLMt8og799aNg,5630
|
|
156
|
-
letta/server/rest_api/routers/openai/assistants/threads.py,sha256=
|
|
157
|
+
letta/server/rest_api/routers/openai/assistants/threads.py,sha256=1l0zGQWGXObfRtAmf9_FLnhhg775sd_5DG8C1wpj55c,14098
|
|
157
158
|
letta/server/rest_api/routers/openai/chat_completions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
158
|
-
letta/server/rest_api/routers/openai/chat_completions/chat_completions.py,sha256
|
|
159
|
+
letta/server/rest_api/routers/openai/chat_completions/chat_completions.py,sha256=-uye6cm4SnoQGwxhr1N1FrSXOlnO2Hvbfj6k8JSc45k,4918
|
|
159
160
|
letta/server/rest_api/routers/v1/__init__.py,sha256=sqlVZa-u9DJwdRsp0_8YUGrac9DHguIB4wETlEDRylA,666
|
|
160
|
-
letta/server/rest_api/routers/v1/agents.py,sha256=
|
|
161
|
-
letta/server/rest_api/routers/v1/blocks.py,sha256=
|
|
161
|
+
letta/server/rest_api/routers/v1/agents.py,sha256=B0BW0B2XRiVBCk47q57_Cw4JzDzqvL-moUCV2A3D5vM,22940
|
|
162
|
+
letta/server/rest_api/routers/v1/blocks.py,sha256=0WekE_yBD2U3jYgPxI0DCFjACWavCAlvm_Ybw5SZBnw,2583
|
|
162
163
|
letta/server/rest_api/routers/v1/health.py,sha256=pKCuVESlVOhGIb4VC4K-H82eZqfghmT6kvj2iOkkKuc,401
|
|
163
|
-
letta/server/rest_api/routers/v1/jobs.py,sha256=
|
|
164
|
+
letta/server/rest_api/routers/v1/jobs.py,sha256=tYm7XECz2TLpN9eIM61xEPcckYV6td4NRkWJJtdojRY,1864
|
|
164
165
|
letta/server/rest_api/routers/v1/llms.py,sha256=TcyvSx6MEM3je5F4DysL7ligmssL_pFlJaaO4uL95VY,877
|
|
165
166
|
letta/server/rest_api/routers/v1/organizations.py,sha256=i3S9E1hu2Zj9g0pRv6wnQhz1VJ_RMIHCrGzgwY-Wj3Y,1945
|
|
166
|
-
letta/server/rest_api/routers/v1/sources.py,sha256=
|
|
167
|
-
letta/server/rest_api/routers/v1/tools.py,sha256=
|
|
167
|
+
letta/server/rest_api/routers/v1/sources.py,sha256=Jbj4Wc1e6EQrdWi07kPw-TgN-aOmOZ1h224hG2HhY2E,7842
|
|
168
|
+
letta/server/rest_api/routers/v1/tools.py,sha256=MEhxu-zMS2ff_wwcRpMuQyWA71w_3BJbNYzesqlG2cU,3462
|
|
168
169
|
letta/server/rest_api/routers/v1/users.py,sha256=Y2rDvHOG1B5FLSOjutY3R22vt48IngbZ-9h8CohG5rc,3378
|
|
169
170
|
letta/server/rest_api/static_files.py,sha256=NG8sN4Z5EJ8JVQdj19tkFa9iQ1kBPTab9f_CUxd_u4Q,3143
|
|
170
171
|
letta/server/rest_api/utils.py,sha256=Fc2ZGKzLaBa2sEtSTVjJ8D5M0xIwsWC0CVAOIJaD3rY,2176
|
|
171
|
-
letta/server/server.py,sha256=
|
|
172
|
+
letta/server/server.py,sha256=XDLUNldg3C7rbXIiz9stD1SWrsoqdYyXX3s2v-1Smg8,81760
|
|
172
173
|
letta/server/startup.sh,sha256=jeGV7B_PS0hS-tT6o6GpACrUbV9WV1NI2L9aLoUDDtc,311
|
|
173
174
|
letta/server/static_files/assets/index-3ab03d5b.css,sha256=OrA9W4iKJ5h2Wlr7GwdAT4wow0CM8hVit1yOxEL49Qw,54295
|
|
174
175
|
letta/server/static_files/assets/index-9a9c449b.js,sha256=qoWUq6_kuLhE9NFkNeCBptgq-oERW46r0tB3JlWe_qc,1818951
|
|
@@ -181,12 +182,12 @@ letta/server/ws_api/example_client.py,sha256=95AA5UFgTlNJ0FUQkLxli8dKNx48MNm3eWG
|
|
|
181
182
|
letta/server/ws_api/interface.py,sha256=TWl9vkcMCnLsUtgsuENZ-ku2oMDA-OUTzLh_yNRoMa4,4120
|
|
182
183
|
letta/server/ws_api/protocol.py,sha256=M_-gM5iuDBwa1cuN2IGNCG5GxMJwU2d3XW93XALv9s8,1821
|
|
183
184
|
letta/server/ws_api/server.py,sha256=C2Kv48PCwl46DQFb0ZP30s86KJLQ6dZk2AhWQEZn9pY,6004
|
|
184
|
-
letta/settings.py,sha256=
|
|
185
|
+
letta/settings.py,sha256=a1dN-ntNXM46IuF-ITG9u881aLdESfNGWl8_uBYSH20,2677
|
|
185
186
|
letta/streaming_interface.py,sha256=LPY1NmXtptcjdHrfVOOKL4-v3AyUD8SIyQMt1Dypd1A,15532
|
|
186
187
|
letta/system.py,sha256=buKYPqG5n2x41hVmWpu6JUpyd7vTWED9Km2_M7dLrvk,6960
|
|
187
188
|
letta/utils.py,sha256=neUs7mxNfndzRL5XUxerr8Lic6w7qnyyvf8FBwMnyWw,30852
|
|
188
|
-
letta_nightly-0.4.1.
|
|
189
|
-
letta_nightly-0.4.1.
|
|
190
|
-
letta_nightly-0.4.1.
|
|
191
|
-
letta_nightly-0.4.1.
|
|
192
|
-
letta_nightly-0.4.1.
|
|
189
|
+
letta_nightly-0.4.1.dev20241009104130.dist-info/LICENSE,sha256=mExtuZ_GYJgDEI38GWdiEYZizZS4KkVt2SF1g_GPNhI,10759
|
|
190
|
+
letta_nightly-0.4.1.dev20241009104130.dist-info/METADATA,sha256=vAw9HINxzaPb70V6E0C6uWSv5IsLswMToTb08xT9ZVQ,5967
|
|
191
|
+
letta_nightly-0.4.1.dev20241009104130.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
|
|
192
|
+
letta_nightly-0.4.1.dev20241009104130.dist-info/entry_points.txt,sha256=2zdiyGNEZGV5oYBuS-y2nAAgjDgcC9yM_mHJBFSRt5U,40
|
|
193
|
+
letta_nightly-0.4.1.dev20241009104130.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|