letta-nightly 0.1.7.dev20240925104133__py3-none-any.whl → 0.1.7.dev20240926104108__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/cli/cli.py +2 -1
- letta/client/client.py +13 -4
- letta/llm_api/llm_api_tools.py +1 -0
- letta/schemas/job.py +1 -1
- letta/schemas/llm_config.py +1 -1
- letta/server/rest_api/app.py +0 -2
- letta/server/rest_api/routers/v1/jobs.py +11 -3
- letta/server/rest_api/routers/v1/sources.py +2 -2
- letta/server/server.py +21 -10
- letta/settings.py +10 -8
- {letta_nightly-0.1.7.dev20240925104133.dist-info → letta_nightly-0.1.7.dev20240926104108.dist-info}/METADATA +6 -6
- {letta_nightly-0.1.7.dev20240925104133.dist-info → letta_nightly-0.1.7.dev20240926104108.dist-info}/RECORD +15 -15
- {letta_nightly-0.1.7.dev20240925104133.dist-info → letta_nightly-0.1.7.dev20240926104108.dist-info}/LICENSE +0 -0
- {letta_nightly-0.1.7.dev20240925104133.dist-info → letta_nightly-0.1.7.dev20240926104108.dist-info}/WHEEL +0 -0
- {letta_nightly-0.1.7.dev20240925104133.dist-info → letta_nightly-0.1.7.dev20240926104108.dist-info}/entry_points.txt +0 -0
letta/cli/cli.py
CHANGED
|
@@ -492,7 +492,7 @@ def run(
|
|
|
492
492
|
# agent_config = AgentConfig.load(agent)
|
|
493
493
|
# agent_state = ms.get_agent(agent_name=agent, user_id=user_id)
|
|
494
494
|
printd("Loading agent state:", agent_state.id)
|
|
495
|
-
printd("Agent state:", agent_state.
|
|
495
|
+
printd("Agent state:", agent_state.name)
|
|
496
496
|
# printd("State path:", agent_config.save_state_dir())
|
|
497
497
|
# printd("Persistent manager path:", agent_config.save_persistence_manager_dir())
|
|
498
498
|
# printd("Index path:", agent_config.save_agent_index_dir())
|
|
@@ -549,6 +549,7 @@ def run(
|
|
|
549
549
|
)
|
|
550
550
|
|
|
551
551
|
# create agent
|
|
552
|
+
tools = [ms.get_tool(tool_name, user_id=client.user_id) for tool_name in agent_state.tools]
|
|
552
553
|
letta_agent = Agent(agent_state=agent_state, interface=interface(), tools=tools)
|
|
553
554
|
|
|
554
555
|
else: # create new agent
|
letta/client/client.py
CHANGED
|
@@ -5,7 +5,6 @@ from typing import Callable, Dict, Generator, List, Optional, Union
|
|
|
5
5
|
import requests
|
|
6
6
|
|
|
7
7
|
import letta.utils
|
|
8
|
-
from letta.config import LettaConfig
|
|
9
8
|
from letta.constants import BASE_TOOLS, DEFAULT_HUMAN, DEFAULT_PERSONA
|
|
10
9
|
from letta.data_sources.connectors import DataConnector
|
|
11
10
|
from letta.functions.functions import parse_source_code
|
|
@@ -42,7 +41,6 @@ from letta.schemas.openai.chat_completions import ToolCall
|
|
|
42
41
|
from letta.schemas.passage import Passage
|
|
43
42
|
from letta.schemas.source import Source, SourceCreate, SourceUpdate
|
|
44
43
|
from letta.schemas.tool import Tool, ToolCreate, ToolUpdate
|
|
45
|
-
from letta.schemas.user import UserCreate
|
|
46
44
|
from letta.server.rest_api.interface import QueuingInterface
|
|
47
45
|
from letta.server.server import SyncServer
|
|
48
46
|
from letta.utils import get_human_text, get_persona_text
|
|
@@ -1112,6 +1110,7 @@ class RESTClient(AbstractClient):
|
|
|
1112
1110
|
params = {"agent_id": str(agent_id)}
|
|
1113
1111
|
response = requests.post(f"{self.base_url}/{self.api_prefix}/sources/{source_id}/detach", params=params, headers=self.headers)
|
|
1114
1112
|
assert response.status_code == 200, f"Failed to detach source from agent: {response.text}"
|
|
1113
|
+
return Source(**response.json())
|
|
1115
1114
|
|
|
1116
1115
|
# server configuration commands
|
|
1117
1116
|
|
|
@@ -2084,7 +2083,8 @@ class LocalClient(AbstractClient):
|
|
|
2084
2083
|
Returns:
|
|
2085
2084
|
job (Job): Data loading job including job status and metadata
|
|
2086
2085
|
"""
|
|
2087
|
-
|
|
2086
|
+
metadata_ = {"type": "embedding", "filename": filename, "source_id": source_id}
|
|
2087
|
+
job = self.server.create_job(user_id=self.user_id, metadata=metadata_)
|
|
2088
2088
|
|
|
2089
2089
|
# TODO: implement blocking vs. non-blocking
|
|
2090
2090
|
self.server.load_file_to_source(source_id=source_id, file_path=filename, job_id=job.id)
|
|
@@ -2159,7 +2159,16 @@ class LocalClient(AbstractClient):
|
|
|
2159
2159
|
self.server.attach_source_to_agent(source_id=source_id, source_name=source_name, agent_id=agent_id, user_id=self.user_id)
|
|
2160
2160
|
|
|
2161
2161
|
def detach_source_from_agent(self, agent_id: str, source_id: Optional[str] = None, source_name: Optional[str] = None):
|
|
2162
|
-
|
|
2162
|
+
"""
|
|
2163
|
+
Detach a source from an agent by removing all `Passage` objects that were loaded from the source from archival memory.
|
|
2164
|
+
Args:
|
|
2165
|
+
agent_id (str): ID of the agent
|
|
2166
|
+
source_id (str): ID of the source
|
|
2167
|
+
source_name (str): Name of the source
|
|
2168
|
+
Returns:
|
|
2169
|
+
source (Source): Detached source
|
|
2170
|
+
"""
|
|
2171
|
+
return self.server.detach_source_from_agent(source_id=source_id, source_name=source_name, agent_id=agent_id, user_id=self.user_id)
|
|
2163
2172
|
|
|
2164
2173
|
def list_sources(self) -> List[Source]:
|
|
2165
2174
|
"""
|
letta/llm_api/llm_api_tools.py
CHANGED
letta/schemas/job.py
CHANGED
|
@@ -10,7 +10,7 @@ from letta.utils import get_utc_time
|
|
|
10
10
|
|
|
11
11
|
class JobBase(LettaBase):
|
|
12
12
|
__id_prefix__ = "job"
|
|
13
|
-
metadata_: Optional[dict] = Field(
|
|
13
|
+
metadata_: Optional[dict] = Field(None, description="The metadata of the job.")
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
class Job(JobBase):
|
letta/schemas/llm_config.py
CHANGED
letta/server/rest_api/app.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
from typing import List
|
|
1
|
+
from typing import List, Optional
|
|
2
2
|
|
|
3
|
-
from fastapi import APIRouter, Depends
|
|
3
|
+
from fastapi import APIRouter, Depends, Query
|
|
4
4
|
|
|
5
5
|
from letta.schemas.job import Job
|
|
6
6
|
from letta.server.rest_api.utils import get_letta_server
|
|
@@ -12,6 +12,7 @@ router = APIRouter(prefix="/jobs", tags=["jobs"])
|
|
|
12
12
|
@router.get("/", response_model=List[Job], operation_id="list_jobs")
|
|
13
13
|
def list_jobs(
|
|
14
14
|
server: "SyncServer" = Depends(get_letta_server),
|
|
15
|
+
source_id: Optional[str] = Query(None, description="Only list jobs associated with the source."),
|
|
15
16
|
):
|
|
16
17
|
"""
|
|
17
18
|
List all jobs.
|
|
@@ -19,7 +20,14 @@ def list_jobs(
|
|
|
19
20
|
actor = server.get_current_user()
|
|
20
21
|
|
|
21
22
|
# TODO: add filtering by status
|
|
22
|
-
|
|
23
|
+
jobs = server.list_jobs(user_id=actor.id)
|
|
24
|
+
|
|
25
|
+
# TODO: eventually use ORM
|
|
26
|
+
# results = session.query(JobModel).filter(JobModel.user_id == user_id, JobModel.metadata_["source_id"].astext == sourced_id).all()
|
|
27
|
+
if source_id:
|
|
28
|
+
# can't be in the ORM since we have source_id stored in the metadata_
|
|
29
|
+
jobs = [job for job in jobs if job.metadata_.get("source_id") == source_id]
|
|
30
|
+
return jobs
|
|
23
31
|
|
|
24
32
|
|
|
25
33
|
@router.get("/active", response_model=List[Job], operation_id="list_active_jobs")
|
|
@@ -114,7 +114,7 @@ def attach_source_to_agent(
|
|
|
114
114
|
return source
|
|
115
115
|
|
|
116
116
|
|
|
117
|
-
@router.post("/{source_id}/detach", response_model=
|
|
117
|
+
@router.post("/{source_id}/detach", response_model=Source, operation_id="detach_agent_from_source")
|
|
118
118
|
def detach_source_from_agent(
|
|
119
119
|
source_id: str,
|
|
120
120
|
agent_id: str = Query(..., description="The unique identifier of the agent to detach the source from."),
|
|
@@ -125,7 +125,7 @@ def detach_source_from_agent(
|
|
|
125
125
|
"""
|
|
126
126
|
actor = server.get_current_user()
|
|
127
127
|
|
|
128
|
-
server.detach_source_from_agent(source_id=source_id, agent_id=agent_id, user_id=actor.id)
|
|
128
|
+
return server.detach_source_from_agent(source_id=source_id, agent_id=agent_id, user_id=actor.id)
|
|
129
129
|
|
|
130
130
|
|
|
131
131
|
@router.post("/{source_id}/upload", response_model=Job, operation_id="upload_file_to_source")
|
letta/server/server.py
CHANGED
|
@@ -6,7 +6,7 @@ import traceback
|
|
|
6
6
|
import warnings
|
|
7
7
|
from abc import abstractmethod
|
|
8
8
|
from datetime import datetime
|
|
9
|
-
from typing import Callable, List, Optional, Tuple, Union
|
|
9
|
+
from typing import Callable, Dict, List, Optional, Tuple, Union
|
|
10
10
|
|
|
11
11
|
from fastapi import HTTPException
|
|
12
12
|
|
|
@@ -1043,7 +1043,7 @@ class SyncServer(Server):
|
|
|
1043
1043
|
existing_block = existing_blocks[0]
|
|
1044
1044
|
assert len(existing_blocks) == 1
|
|
1045
1045
|
if update:
|
|
1046
|
-
return self.update_block(UpdateBlock(id=existing_block.id, **vars(request))
|
|
1046
|
+
return self.update_block(UpdateBlock(id=existing_block.id, **vars(request)))
|
|
1047
1047
|
else:
|
|
1048
1048
|
raise ValueError(f"Block with name {request.name} already exists")
|
|
1049
1049
|
block = Block(**vars(request))
|
|
@@ -1513,11 +1513,12 @@ class SyncServer(Server):
|
|
|
1513
1513
|
|
|
1514
1514
|
# TODO: delete data from agent passage stores (?)
|
|
1515
1515
|
|
|
1516
|
-
def create_job(self, user_id: str) -> Job:
|
|
1516
|
+
def create_job(self, user_id: str, metadata: Optional[Dict] = None) -> Job:
|
|
1517
1517
|
"""Create a new job"""
|
|
1518
1518
|
job = Job(
|
|
1519
1519
|
user_id=user_id,
|
|
1520
1520
|
status=JobStatus.created,
|
|
1521
|
+
metadata_=metadata,
|
|
1521
1522
|
)
|
|
1522
1523
|
self.ms.create_job(job)
|
|
1523
1524
|
return job
|
|
@@ -1627,8 +1628,18 @@ class SyncServer(Server):
|
|
|
1627
1628
|
source_id: Optional[str] = None,
|
|
1628
1629
|
source_name: Optional[str] = None,
|
|
1629
1630
|
) -> Source:
|
|
1630
|
-
|
|
1631
|
-
|
|
1631
|
+
if not source_id:
|
|
1632
|
+
assert source_name is not None, "source_name must be provided if source_id is not"
|
|
1633
|
+
source = self.ms.get_source(source_name=source_name, user_id=user_id)
|
|
1634
|
+
source_id = source.id
|
|
1635
|
+
else:
|
|
1636
|
+
source = self.ms.get_source(source_id=source_id)
|
|
1637
|
+
|
|
1638
|
+
# delete all Passage objects with source_id==source_id from agent's archival memory
|
|
1639
|
+
agent = self._get_or_load_agent(agent_id=agent_id)
|
|
1640
|
+
archival_memory = agent.persistence_manager.archival_memory
|
|
1641
|
+
archival_memory.storage.delete({"source_id": source_id})
|
|
1642
|
+
return source
|
|
1632
1643
|
|
|
1633
1644
|
def list_attached_sources(self, agent_id: str) -> List[Source]:
|
|
1634
1645
|
# list all attached sources to an agent
|
|
@@ -1963,18 +1974,18 @@ class SyncServer(Server):
|
|
|
1963
1974
|
|
|
1964
1975
|
return self.get_default_user()
|
|
1965
1976
|
## NOTE: same code as local client to get the default user
|
|
1966
|
-
#config = LettaConfig.load()
|
|
1967
|
-
#user_id = config.anon_clientid
|
|
1968
|
-
#user = self.get_user(user_id)
|
|
1977
|
+
# config = LettaConfig.load()
|
|
1978
|
+
# user_id = config.anon_clientid
|
|
1979
|
+
# user = self.get_user(user_id)
|
|
1969
1980
|
|
|
1970
|
-
#if not user:
|
|
1981
|
+
# if not user:
|
|
1971
1982
|
# user = self.create_user(UserCreate())
|
|
1972
1983
|
|
|
1973
1984
|
# # # update config
|
|
1974
1985
|
# config.anon_clientid = str(user.id)
|
|
1975
1986
|
# config.save()
|
|
1976
1987
|
|
|
1977
|
-
#return user
|
|
1988
|
+
# return user
|
|
1978
1989
|
|
|
1979
1990
|
def list_models(self) -> List[LLMConfig]:
|
|
1980
1991
|
"""List available models"""
|
letta/settings.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import os
|
|
1
2
|
from pathlib import Path
|
|
2
3
|
from typing import Optional
|
|
3
|
-
import os
|
|
4
4
|
|
|
5
5
|
from pydantic import Field
|
|
6
6
|
from pydantic_settings import BaseSettings, SettingsConfigDict
|
|
@@ -64,11 +64,12 @@ class Settings(BaseSettings):
|
|
|
64
64
|
if self.llm_model:
|
|
65
65
|
try:
|
|
66
66
|
return LLMConfig.default_config(self.llm_model)
|
|
67
|
-
except ValueError
|
|
67
|
+
except ValueError:
|
|
68
68
|
pass
|
|
69
69
|
|
|
70
70
|
# try to read from config file (last resort)
|
|
71
71
|
from letta.config import LettaConfig
|
|
72
|
+
|
|
72
73
|
if LettaConfig.exists():
|
|
73
74
|
config = LettaConfig.load()
|
|
74
75
|
llm_config = LLMConfig(
|
|
@@ -79,12 +80,12 @@ class Settings(BaseSettings):
|
|
|
79
80
|
context_window=config.default_llm_config.context_window,
|
|
80
81
|
)
|
|
81
82
|
return llm_config
|
|
82
|
-
|
|
83
|
+
|
|
83
84
|
# check OpenAI API key
|
|
84
|
-
if os.getenv("OPENAI_API_KEY"):
|
|
85
|
+
if os.getenv("OPENAI_API_KEY"):
|
|
85
86
|
return LLMConfig.default_config(self.llm_model if self.llm_model else "gpt-4")
|
|
86
87
|
|
|
87
|
-
return LLMConfig.default_config("letta")
|
|
88
|
+
return LLMConfig.default_config("letta")
|
|
88
89
|
|
|
89
90
|
@property
|
|
90
91
|
def embedding_config(self):
|
|
@@ -118,6 +119,7 @@ class Settings(BaseSettings):
|
|
|
118
119
|
|
|
119
120
|
# try to read from config file (last resort)
|
|
120
121
|
from letta.config import LettaConfig
|
|
122
|
+
|
|
121
123
|
if LettaConfig.exists():
|
|
122
124
|
config = LettaConfig.load()
|
|
123
125
|
return EmbeddingConfig(
|
|
@@ -127,10 +129,10 @@ class Settings(BaseSettings):
|
|
|
127
129
|
embedding_dim=config.default_embedding_config.embedding_dim,
|
|
128
130
|
embedding_chunk_size=config.default_embedding_config.embedding_chunk_size,
|
|
129
131
|
)
|
|
130
|
-
|
|
132
|
+
|
|
131
133
|
if os.getenv("OPENAI_API_KEY"):
|
|
132
134
|
return EmbeddingConfig.default_config(self.embedding_model if self.embedding_model else "text-embedding-ada-002")
|
|
133
|
-
|
|
135
|
+
|
|
134
136
|
return EmbeddingConfig.default_config("letta")
|
|
135
137
|
|
|
136
138
|
@property
|
|
@@ -161,5 +163,5 @@ class TestSettings(Settings):
|
|
|
161
163
|
|
|
162
164
|
|
|
163
165
|
# singleton
|
|
164
|
-
settings = Settings(_env_parse_none_str=
|
|
166
|
+
settings = Settings(_env_parse_none_str="None")
|
|
165
167
|
test_settings = TestSettings()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: letta-nightly
|
|
3
|
-
Version: 0.1.7.
|
|
3
|
+
Version: 0.1.7.dev20240926104108
|
|
4
4
|
Summary: Create LLM agents with long-term memory and custom tools
|
|
5
5
|
License: Apache License
|
|
6
6
|
Author: Letta Team
|
|
@@ -73,17 +73,17 @@ Description-Content-Type: text/markdown
|
|
|
73
73
|
|
|
74
74
|
# Letta (previously MemGPT)
|
|
75
75
|
[](https://discord.gg/letta)
|
|
76
|
-
[](https://twitter.com/Letta_AI)
|
|
77
77
|
[](https://arxiv.org/abs/2310.08560)
|
|
78
78
|
|
|
79
|
-
> [!NOTE]
|
|
79
|
+
> [!NOTE]
|
|
80
80
|
> **Looking for MemGPT?**
|
|
81
|
-
>
|
|
81
|
+
>
|
|
82
82
|
> The MemGPT package and Docker image have been renamed to `letta` to clarify the distinction between **MemGPT agents** and the API server / runtime that runs LLM agents as *services*.
|
|
83
|
-
>
|
|
83
|
+
>
|
|
84
84
|
> You use the **Letta framework** to create **MemGPT agents**. Read more about the relationship between MemGPT and Letta [here](https://www.letta.com/blog/memgpt-and-letta).
|
|
85
85
|
|
|
86
|
-
See [documentation](https://docs.letta.com/introduction) for setup and usage.
|
|
86
|
+
See [documentation](https://docs.letta.com/introduction) for setup and usage.
|
|
87
87
|
|
|
88
88
|
## How to Get Involved
|
|
89
89
|
* **Contribute to the Project**: Interested in contributing? Start by reading our [Contribution Guidelines](https://github.com/cpacker/MemGPT/tree/main/CONTRIBUTING.md).
|
|
@@ -9,12 +9,12 @@ letta/agent_store/qdrant.py,sha256=qIEJhXJb6GzcT4wp8iV5Ox5W1CFMvcPViTI4HLSh59E,7
|
|
|
9
9
|
letta/agent_store/storage.py,sha256=QWrPdIEJCnsPg1xnPrG1xbOXmbjpz37ZNhvuH52M7A8,6642
|
|
10
10
|
letta/benchmark/benchmark.py,sha256=JjCQE7piz2VHh3QCGwJX-9DelaSlUYV4Qw01hQuVolU,3633
|
|
11
11
|
letta/benchmark/constants.py,sha256=aXc5gdpMGJT327VuxsT5FngbCK2J41PQYeICBO7g_RE,536
|
|
12
|
-
letta/cli/cli.py,sha256=
|
|
12
|
+
letta/cli/cli.py,sha256=p_L2Ye7SiSMGbEaHbXHB4PI9C9uEZ2qZgAl022j9TLE,31214
|
|
13
13
|
letta/cli/cli_config.py,sha256=MSxqbS5F9jUSjCgLkd-6T5Hj3ca_l-AoSwXc6dgy13E,57093
|
|
14
14
|
letta/cli/cli_load.py,sha256=e3U7vGzoZHQQAxyOw2VNUwxOJucyzK_r_9TrCyLNh1A,6800
|
|
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=RQz0hBzuR1wZfZ8ccSnQuPW5J8MuMUZ2ywAOYICGg1g,80579
|
|
18
18
|
letta/client/streaming.py,sha256=bfWlUu7z7EoPfKxBqIarYxGKyrL7Pj79BlliToqcCgI,4592
|
|
19
19
|
letta/client/utils.py,sha256=NMFts6bFsHTV0yW3BRRo2HSqGr6Gr3tj1kNtkUCgMCA,2262
|
|
20
20
|
letta/config.py,sha256=2c400BOlddM_fs4Ehiar7auNA2hBx_zbbLvasdM_2vU,19317
|
|
@@ -40,7 +40,7 @@ letta/llm_api/anthropic.py,sha256=nxMuLW7kIw6QLZW77M_fH7HSPV-ckFF50DVqvLRRFqg,13
|
|
|
40
40
|
letta/llm_api/azure_openai.py,sha256=NjAVifNpjbTSGa9dZ4lS12sjwRWZBsmB1wlIGD4m4aI,6900
|
|
41
41
|
letta/llm_api/cohere.py,sha256=vDRd-SUGp1t_JUIdwC3RkIhwMl0OY7n-tAU9uPORYkY,14826
|
|
42
42
|
letta/llm_api/google_ai.py,sha256=Ksf4vlYoWRe5JtiPOqxaArDnjUbAS8fxX_zwgt-2buQ,19100
|
|
43
|
-
letta/llm_api/llm_api_tools.py,sha256=
|
|
43
|
+
letta/llm_api/llm_api_tools.py,sha256=hoWYAG11YNN5YzOuemePKX2gPURCROvi0ra4XAMMsO8,20529
|
|
44
44
|
letta/llm_api/openai.py,sha256=iJVKnfT0vQ447wkhv6_eZCI_K0gauV86IPuJ0BnPAuc,21064
|
|
45
45
|
letta/local_llm/README.md,sha256=hFJyw5B0TU2jrh9nb0zGZMgdH-Ei1dSRfhvPQG_NSoU,168
|
|
46
46
|
letta/local_llm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -114,12 +114,12 @@ letta/schemas/block.py,sha256=1QuHtgEM3SXO0bI2eF_tZ6EVP0LOB39L08G6rLLyfiE,4205
|
|
|
114
114
|
letta/schemas/document.py,sha256=JpvU0YkvOVLvHaDNcg-ihFzpeHC2zqsWBgyJ6zHnfNw,745
|
|
115
115
|
letta/schemas/embedding_config.py,sha256=KhEOStOD8VbHFyLI9pkQVbTG1Av2g-Ql0yf9M868LME,2570
|
|
116
116
|
letta/schemas/enums.py,sha256=WfRYpLh_pD-VyhEnp3Y6pPfx063zq2o4jky6PulqO8w,629
|
|
117
|
-
letta/schemas/job.py,sha256=
|
|
117
|
+
letta/schemas/job.py,sha256=bYDrjbJm2B4LUTSkLUdQR_HDhL2E23g0EHf7E23ezYU,1547
|
|
118
118
|
letta/schemas/letta_base.py,sha256=4QXFgyjCHqIagi8B6_4nmqb9eoJ52Y6aCxBxQpGX48M,2832
|
|
119
119
|
letta/schemas/letta_message.py,sha256=Slgxa59qZfdvqXuCVHOt03u-7JL456ZY-WLaK5UYYKU,6234
|
|
120
120
|
letta/schemas/letta_request.py,sha256=9Ad80UvmxOn3eJH9SmVjgAKsp3qXZ8HALWTjZt4t4Uw,958
|
|
121
121
|
letta/schemas/letta_response.py,sha256=YifipiDu7ESA4UavjVaMcJw95ViNMTHr0SG5OG1uzPY,1154
|
|
122
|
-
letta/schemas/llm_config.py,sha256
|
|
122
|
+
letta/schemas/llm_config.py,sha256=-tIKGF29NZv2cHJPuaYuNBY7Jt7qFG9U2fH-PxdctZM,2183
|
|
123
123
|
letta/schemas/memory.py,sha256=mDJbe9mzTw0HSn6tiouC3z32r-8Fc_EaeqxDy_hXf0U,9327
|
|
124
124
|
letta/schemas/message.py,sha256=aMnmAC4uyGFaOKibQppclIRAbCJUBKQKUJl2TWAv-ik,32031
|
|
125
125
|
letta/schemas/openai/chat_completion_request.py,sha256=Fa7xnSnG7WUQounJhnDu0fTSxoR6xOAh2bODuqmfypI,3345
|
|
@@ -140,7 +140,7 @@ letta/server/rest_api/admin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMp
|
|
|
140
140
|
letta/server/rest_api/admin/agents.py,sha256=cFNDU4Z8wGpcWXuo5aBgX6CcxLzPpTFYnTIaiF-3qvw,564
|
|
141
141
|
letta/server/rest_api/admin/tools.py,sha256=gZfngjH27PGT1pDw2PUZpenbdJG21xK2IIO-YSitn3o,3183
|
|
142
142
|
letta/server/rest_api/admin/users.py,sha256=IIec8G2yxVZtSo8dYrQPktVj8XIsZMptxigxmgULKO8,3480
|
|
143
|
-
letta/server/rest_api/app.py,sha256=
|
|
143
|
+
letta/server/rest_api/app.py,sha256=wnbXqm8yZWSzgJnYnZOJEp5JX9lRphxlkSX6K5ZbApc,6742
|
|
144
144
|
letta/server/rest_api/auth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
145
145
|
letta/server/rest_api/auth/index.py,sha256=fQBGyVylGSRfEMLQ17cZzrHd5Y1xiVylvPqH5Rl-lXQ,1378
|
|
146
146
|
letta/server/rest_api/auth_token.py,sha256=725EFEIiNj4dh70hrSd94UysmFD8vcJLrTRfNHkzxDo,774
|
|
@@ -156,15 +156,15 @@ letta/server/rest_api/routers/openai/chat_completions/chat_completions.py,sha256
|
|
|
156
156
|
letta/server/rest_api/routers/v1/__init__.py,sha256=xzNnC4_aIbWJNhpoh0o3hGjLpS8X2gFtxsNS5IGCWPI,571
|
|
157
157
|
letta/server/rest_api/routers/v1/agents.py,sha256=AsLvhZjXBRd7_hbxrvKvccKQtkcjkHpZmEqm6xe5w8U,19462
|
|
158
158
|
letta/server/rest_api/routers/v1/blocks.py,sha256=xY-9k2e2dTRsU9Zh-kT164Z977O0Ed_YYBjLaWKbDpE,2293
|
|
159
|
-
letta/server/rest_api/routers/v1/jobs.py,sha256=
|
|
159
|
+
letta/server/rest_api/routers/v1/jobs.py,sha256=YHEKALAkSCvF_gzIhvsTkqaLdIhFBYrTNmwCtnzohhM,1574
|
|
160
160
|
letta/server/rest_api/routers/v1/llms.py,sha256=1O1YiSNeJBnSZY1dFiH58Gk3dodR2GrsgAkG-hR9p9c,797
|
|
161
161
|
letta/server/rest_api/routers/v1/organizations.py,sha256=i3S9E1hu2Zj9g0pRv6wnQhz1VJ_RMIHCrGzgwY-Wj3Y,1945
|
|
162
|
-
letta/server/rest_api/routers/v1/sources.py,sha256=
|
|
162
|
+
letta/server/rest_api/routers/v1/sources.py,sha256=H2cfoiHcWxmHUhiSJ5s2Ty0I3W7Ex7DfdEkS9d7Ejos,6272
|
|
163
163
|
letta/server/rest_api/routers/v1/tools.py,sha256=nKiPO4S9NwxZEQ6wSPBROiNdQtvoxqlEDjk3gBe_Bdk,2729
|
|
164
164
|
letta/server/rest_api/routers/v1/users.py,sha256=Y2rDvHOG1B5FLSOjutY3R22vt48IngbZ-9h8CohG5rc,3378
|
|
165
165
|
letta/server/rest_api/static_files.py,sha256=NG8sN4Z5EJ8JVQdj19tkFa9iQ1kBPTab9f_CUxd_u4Q,3143
|
|
166
166
|
letta/server/rest_api/utils.py,sha256=Fc2ZGKzLaBa2sEtSTVjJ8D5M0xIwsWC0CVAOIJaD3rY,2176
|
|
167
|
-
letta/server/server.py,sha256=
|
|
167
|
+
letta/server/server.py,sha256=ZosX32jjRuwohTFLGWqD8iystPtAWTHSSNxDIPyyKhE,84301
|
|
168
168
|
letta/server/startup.sh,sha256=jeGV7B_PS0hS-tT6o6GpACrUbV9WV1NI2L9aLoUDDtc,311
|
|
169
169
|
letta/server/static_files/assets/index-0cbf7ad5.js,sha256=MCP81_BE6xKu6Yp2fwiumwsojg-6inAI-tKVQHoRwtE,1814412
|
|
170
170
|
letta/server/static_files/assets/index-156816da.css,sha256=FWgW2kKzk1X8_t6e4qtOIAUvZ59YPdB-PMNqvPRCup4,54271
|
|
@@ -178,12 +178,12 @@ letta/server/ws_api/example_client.py,sha256=95AA5UFgTlNJ0FUQkLxli8dKNx48MNm3eWG
|
|
|
178
178
|
letta/server/ws_api/interface.py,sha256=TWl9vkcMCnLsUtgsuENZ-ku2oMDA-OUTzLh_yNRoMa4,4120
|
|
179
179
|
letta/server/ws_api/protocol.py,sha256=M_-gM5iuDBwa1cuN2IGNCG5GxMJwU2d3XW93XALv9s8,1821
|
|
180
180
|
letta/server/ws_api/server.py,sha256=C2Kv48PCwl46DQFb0ZP30s86KJLQ6dZk2AhWQEZn9pY,6004
|
|
181
|
-
letta/settings.py,sha256=
|
|
181
|
+
letta/settings.py,sha256=1S0CN3fCGdZIdhIWPNJO5k2vmosrNRux4arnCj7dYQg,6502
|
|
182
182
|
letta/streaming_interface.py,sha256=LPY1NmXtptcjdHrfVOOKL4-v3AyUD8SIyQMt1Dypd1A,15532
|
|
183
183
|
letta/system.py,sha256=buKYPqG5n2x41hVmWpu6JUpyd7vTWED9Km2_M7dLrvk,6960
|
|
184
184
|
letta/utils.py,sha256=LyqSRz_FejtsdelKigpV86kT8GRVrLwkXIOVQLHPm7Q,30661
|
|
185
|
-
letta_nightly-0.1.7.
|
|
186
|
-
letta_nightly-0.1.7.
|
|
187
|
-
letta_nightly-0.1.7.
|
|
188
|
-
letta_nightly-0.1.7.
|
|
189
|
-
letta_nightly-0.1.7.
|
|
185
|
+
letta_nightly-0.1.7.dev20240926104108.dist-info/LICENSE,sha256=mExtuZ_GYJgDEI38GWdiEYZizZS4KkVt2SF1g_GPNhI,10759
|
|
186
|
+
letta_nightly-0.1.7.dev20240926104108.dist-info/METADATA,sha256=pMXconh3DqWEqBF9FzItrqQXnpve5hlVs8bCMhR1F0w,5499
|
|
187
|
+
letta_nightly-0.1.7.dev20240926104108.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
|
|
188
|
+
letta_nightly-0.1.7.dev20240926104108.dist-info/entry_points.txt,sha256=2zdiyGNEZGV5oYBuS-y2nAAgjDgcC9yM_mHJBFSRt5U,40
|
|
189
|
+
letta_nightly-0.1.7.dev20240926104108.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|