chore: rename routes get->retrieve and update->modify (#733)

This commit is contained in:
cthomas
2025-01-22 18:42:22 -08:00
committed by GitHub
parent 6a9dd05566
commit b91e90fced
9 changed files with 74 additions and 74 deletions

View File

@@ -810,7 +810,7 @@ class RESTClient(AbstractClient):
Returns:
memory (Memory): In-context memory of the agent
"""
response = requests.get(f"{self.base_url}/{self.api_prefix}/agents/{agent_id}/core_memory", headers=self.headers)
response = requests.get(f"{self.base_url}/{self.api_prefix}/agents/{agent_id}/core-memory", headers=self.headers)
if response.status_code != 200:
raise ValueError(f"Failed to get in-context memory: {response.text}")
return Memory(**response.json())
@@ -831,7 +831,7 @@ class RESTClient(AbstractClient):
"""
memory_update_dict = {section: value}
response = requests.patch(
f"{self.base_url}/{self.api_prefix}/agents/{agent_id}/core_memory", json=memory_update_dict, headers=self.headers
f"{self.base_url}/{self.api_prefix}/agents/{agent_id}/core-memory", json=memory_update_dict, headers=self.headers
)
if response.status_code != 200:
raise ValueError(f"Failed to update in-context memory: {response.text}")
@@ -924,7 +924,7 @@ class RESTClient(AbstractClient):
if after:
params["after"] = str(after)
response = requests.get(
f"{self.base_url}/{self.api_prefix}/agents/{str(agent_id)}/archival_memory", params=params, headers=self.headers
f"{self.base_url}/{self.api_prefix}/agents/{str(agent_id)}/archival-memory", params=params, headers=self.headers
)
assert response.status_code == 200, f"Failed to get archival memory: {response.text}"
return [Passage(**passage) for passage in response.json()]
@@ -942,7 +942,7 @@ class RESTClient(AbstractClient):
"""
request = CreateArchivalMemory(text=memory)
response = requests.post(
f"{self.base_url}/{self.api_prefix}/agents/{agent_id}/archival_memory", headers=self.headers, json=request.model_dump()
f"{self.base_url}/{self.api_prefix}/agents/{agent_id}/archival-memory", headers=self.headers, json=request.model_dump()
)
if response.status_code != 200:
raise ValueError(f"Failed to insert archival memory: {response.text}")
@@ -956,7 +956,7 @@ class RESTClient(AbstractClient):
agent_id (str): ID of the agent
memory_id (str): ID of the memory
"""
response = requests.delete(f"{self.base_url}/{self.api_prefix}/agents/{agent_id}/archival_memory/{memory_id}", headers=self.headers)
response = requests.delete(f"{self.base_url}/{self.api_prefix}/agents/{agent_id}/archival-memory/{memory_id}", headers=self.headers)
assert response.status_code == 200, f"Failed to delete archival memory: {response.text}"
# messages (recall memory)
@@ -1906,7 +1906,7 @@ class RESTClient(AbstractClient):
block_id (str): ID of the block to attach
"""
response = requests.patch(
f"{self.base_url}/{self.api_prefix}/agents/{agent_id}/core_memory/blocks/attach/{block_id}",
f"{self.base_url}/{self.api_prefix}/agents/{agent_id}/core-memory/blocks/attach/{block_id}",
headers=self.headers,
)
if response.status_code != 200:
@@ -1922,7 +1922,7 @@ class RESTClient(AbstractClient):
block_id (str): ID of the block to detach
"""
response = requests.patch(
f"{self.base_url}/{self.api_prefix}/agents/{agent_id}/core_memory/blocks/detach/{block_id}", headers=self.headers
f"{self.base_url}/{self.api_prefix}/agents/{agent_id}/core-memory/blocks/detach/{block_id}", headers=self.headers
)
if response.status_code != 200:
raise ValueError(f"Failed to detach block from agent: {response.text}")
@@ -1938,7 +1938,7 @@ class RESTClient(AbstractClient):
Returns:
blocks (List[Block]): The blocks in the agent's core memory
"""
response = requests.get(f"{self.base_url}/{self.api_prefix}/agents/{agent_id}/core_memory/blocks", headers=self.headers)
response = requests.get(f"{self.base_url}/{self.api_prefix}/agents/{agent_id}/core-memory/blocks", headers=self.headers)
if response.status_code != 200:
raise ValueError(f"Failed to get agent memory blocks: {response.text}")
return [Block(**block) for block in response.json()]
@@ -1955,7 +1955,7 @@ class RESTClient(AbstractClient):
block (Block): The block corresponding to the label
"""
response = requests.get(
f"{self.base_url}/{self.api_prefix}/agents/{agent_id}/core_memory/blocks/{label}",
f"{self.base_url}/{self.api_prefix}/agents/{agent_id}/core-memory/blocks/{label}",
headers=self.headers,
)
if response.status_code != 200:
@@ -1988,7 +1988,7 @@ class RESTClient(AbstractClient):
if limit:
data["limit"] = limit
response = requests.patch(
f"{self.base_url}/{self.api_prefix}/agents/{agent_id}/core_memory/blocks/{label}",
f"{self.base_url}/{self.api_prefix}/agents/{agent_id}/core-memory/blocks/{label}",
headers=self.headers,
json=data,
)

View File

@@ -70,8 +70,8 @@ def list_agents(
return agents
@router.get("/{agent_id}/context", response_model=ContextWindowOverview, operation_id="get_agent_context_window")
def get_agent_context_window(
@router.get("/{agent_id}/context", response_model=ContextWindowOverview, operation_id="retrieve_agent_context_window")
def retrieve_agent_context_window(
agent_id: str,
server: "SyncServer" = Depends(get_letta_server),
user_id: Optional[str] = Header(None, alias="user_id"), # Extract user_id from header, default to None if not present
@@ -106,8 +106,8 @@ def create_agent(
return server.create_agent(agent, actor=actor)
@router.patch("/{agent_id}", response_model=AgentState, operation_id="update_agent")
def update_agent(
@router.patch("/{agent_id}", response_model=AgentState, operation_id="modify_agent")
def modify_agent(
agent_id: str,
update_agent: UpdateAgent = Body(...),
server: "SyncServer" = Depends(get_letta_server),
@@ -118,8 +118,8 @@ def update_agent(
return server.agent_manager.update_agent(agent_id=agent_id, agent_update=update_agent, actor=actor)
@router.get("/{agent_id}/tools", response_model=List[Tool], operation_id="get_tools_from_agent")
def get_tools_from_agent(
@router.get("/{agent_id}/tools", response_model=List[Tool], operation_id="list_agent_tools")
def list_agent_tools(
agent_id: str,
server: "SyncServer" = Depends(get_letta_server),
user_id: Optional[str] = Header(None, alias="user_id"), # Extract user_id from header, default to None if not present
@@ -129,7 +129,7 @@ def get_tools_from_agent(
return server.agent_manager.list_attached_tools(agent_id=agent_id, actor=actor)
@router.patch("/{agent_id}/tools/attach/{tool_id}", response_model=AgentState, operation_id="attach_tool_to_agent")
@router.patch("/{agent_id}/tools/attach/{tool_id}", response_model=AgentState, operation_id="attach_tool")
def attach_tool(
agent_id: str,
tool_id: str,
@@ -143,7 +143,7 @@ def attach_tool(
return server.agent_manager.attach_tool(agent_id=agent_id, tool_id=tool_id, actor=actor)
@router.patch("/{agent_id}/tools/detach/{tool_id}", response_model=AgentState, operation_id="detach_tool_from_agent")
@router.patch("/{agent_id}/tools/detach/{tool_id}", response_model=AgentState, operation_id="detach_tool")
def detach_tool(
agent_id: str,
tool_id: str,
@@ -185,8 +185,8 @@ def detach_source(
return server.agent_manager.detach_source(agent_id=agent_id, source_id=source_id, actor=actor)
@router.get("/{agent_id}", response_model=AgentState, operation_id="get_agent")
def get_agent_state(
@router.get("/{agent_id}", response_model=AgentState, operation_id="retrieve_agent")
def retrieve_agent(
agent_id: str,
server: "SyncServer" = Depends(get_letta_server),
user_id: Optional[str] = Header(None, alias="user_id"), # Extract user_id from header, default to None if not present
@@ -219,8 +219,8 @@ def delete_agent(
raise HTTPException(status_code=404, detail=f"Agent agent_id={agent_id} not found for user_id={actor.id}.")
@router.get("/{agent_id}/sources", response_model=List[Source], operation_id="get_agent_sources")
def get_agent_sources(
@router.get("/{agent_id}/sources", response_model=List[Source], operation_id="list_agent_sources")
def list_agent_sources(
agent_id: str,
server: "SyncServer" = Depends(get_letta_server),
user_id: Optional[str] = Header(None, alias="user_id"), # Extract user_id from header, default to None if not present
@@ -233,8 +233,8 @@ def get_agent_sources(
# TODO: remove? can also get with agent blocks
@router.get("/{agent_id}/core_memory", response_model=Memory, operation_id="get_agent_memory")
def get_agent_memory(
@router.get("/{agent_id}/core-memory", response_model=Memory, operation_id="retrieve_agent_memory")
def retrieve_agent_memory(
agent_id: str,
server: "SyncServer" = Depends(get_letta_server),
user_id: Optional[str] = Header(None, alias="user_id"), # Extract user_id from header, default to None if not present
@@ -248,8 +248,8 @@ def get_agent_memory(
return server.get_agent_memory(agent_id=agent_id, actor=actor)
@router.get("/{agent_id}/core_memory/blocks/{block_label}", response_model=Block, operation_id="get_agent_memory_block")
def get_agent_memory_block(
@router.get("/{agent_id}/core-memory/blocks/{block_label}", response_model=Block, operation_id="retrieve_core_memory_block")
def retrieve_core_memory_block(
agent_id: str,
block_label: str,
server: "SyncServer" = Depends(get_letta_server),
@@ -266,8 +266,8 @@ def get_agent_memory_block(
raise HTTPException(status_code=404, detail=str(e))
@router.get("/{agent_id}/core_memory/blocks", response_model=List[Block], operation_id="list_agent_memory_blocks")
def list_agent_memory_blocks(
@router.get("/{agent_id}/core-memory/blocks", response_model=List[Block], operation_id="list_core_memory_blocks")
def list_core_memory_blocks(
agent_id: str,
server: "SyncServer" = Depends(get_letta_server),
user_id: Optional[str] = Header(None, alias="user_id"), # Extract user_id from header, default to None if not present
@@ -283,8 +283,8 @@ def list_agent_memory_blocks(
raise HTTPException(status_code=404, detail=str(e))
@router.patch("/{agent_id}/core_memory/blocks/{block_label}", response_model=Block, operation_id="update_agent_memory_block_by_label")
def update_agent_memory_block(
@router.patch("/{agent_id}/core-memory/blocks/{block_label}", response_model=Block, operation_id="modify_core_memory_block")
def modify_core_memory_block(
agent_id: str,
block_label: str,
block_update: BlockUpdate = Body(...),
@@ -305,8 +305,8 @@ def update_agent_memory_block(
return block
@router.patch("/{agent_id}/core_memory/blocks/attach/{block_id}", response_model=AgentState, operation_id="attach_block_to_agent")
def attach_block(
@router.patch("/{agent_id}/core-memory/blocks/attach/{block_id}", response_model=AgentState, operation_id="attach_core_memory_block")
def attach_core_memory_block(
agent_id: str,
block_id: str,
server: "SyncServer" = Depends(get_letta_server),
@@ -319,8 +319,8 @@ def attach_block(
return server.agent_manager.attach_block(agent_id=agent_id, block_id=block_id, actor=actor)
@router.patch("/{agent_id}/core_memory/blocks/detach/{block_id}", response_model=AgentState, operation_id="detach_block_from_agent")
def detach_block(
@router.patch("/{agent_id}/core-memory/blocks/detach/{block_id}", response_model=AgentState, operation_id="detach_core_memory_block")
def detach_core_memory_block(
agent_id: str,
block_id: str,
server: "SyncServer" = Depends(get_letta_server),
@@ -333,8 +333,8 @@ def detach_block(
return server.agent_manager.detach_block(agent_id=agent_id, block_id=block_id, actor=actor)
@router.get("/{agent_id}/archival_memory", response_model=List[Passage], operation_id="list_agent_archival_memory")
def get_agent_archival_memory(
@router.get("/{agent_id}/archival-memory", response_model=List[Passage], operation_id="list_archival_memory")
def list_archival_memory(
agent_id: str,
server: "SyncServer" = Depends(get_letta_server),
after: Optional[int] = Query(None, description="Unique ID of the memory to start the query range at."),
@@ -359,8 +359,8 @@ def get_agent_archival_memory(
)
@router.post("/{agent_id}/archival_memory", response_model=List[Passage], operation_id="create_agent_archival_memory")
def insert_agent_archival_memory(
@router.post("/{agent_id}/archival-memory", response_model=List[Passage], operation_id="create_archival_memory")
def create_archival_memory(
agent_id: str,
request: CreateArchivalMemory = Body(...),
server: "SyncServer" = Depends(get_letta_server),
@@ -376,8 +376,8 @@ def insert_agent_archival_memory(
# TODO(ethan): query or path parameter for memory_id?
# @router.delete("/{agent_id}/archival")
@router.delete("/{agent_id}/archival_memory/{memory_id}", response_model=None, operation_id="delete_agent_archival_memory")
def delete_agent_archival_memory(
@router.delete("/{agent_id}/archival-memory/{memory_id}", response_model=None, operation_id="delete_archival_memory")
def delete_archival_memory(
agent_id: str,
memory_id: str,
# memory_id: str = Query(..., description="Unique ID of the memory to be deleted."),
@@ -406,8 +406,8 @@ AgentMessagesResponse = Annotated[
]
@router.get("/{agent_id}/messages", response_model=AgentMessagesResponse, operation_id="list_agent_messages")
def get_agent_messages(
@router.get("/{agent_id}/messages", response_model=AgentMessagesResponse, operation_id="list_messages")
def list_messages(
agent_id: str,
server: "SyncServer" = Depends(get_letta_server),
before: Optional[str] = Query(None, description="Message before which to retrieve the returned messages."),
@@ -441,8 +441,8 @@ def get_agent_messages(
)
@router.patch("/{agent_id}/messages/{message_id}", response_model=Message, operation_id="update_agent_message")
def update_message(
@router.patch("/{agent_id}/messages/{message_id}", response_model=Message, operation_id="modify_message")
def modify_message(
agent_id: str,
message_id: str,
request: MessageUpdate = Body(...),
@@ -460,7 +460,7 @@ def update_message(
@router.post(
"/{agent_id}/messages",
response_model=LettaResponse,
operation_id="create_agent_message",
operation_id="send_message",
)
async def send_message(
agent_id: str,

View File

@@ -13,7 +13,7 @@ if TYPE_CHECKING:
router = APIRouter(prefix="/blocks", tags=["blocks"])
@router.get("/", response_model=List[Block], operation_id="list_memory_blocks")
@router.get("/", response_model=List[Block], operation_id="list_blocks")
def list_blocks(
# query parameters
label: Optional[str] = Query(None, description="Labels to include (e.g. human, persona)"),
@@ -26,7 +26,7 @@ def list_blocks(
return server.block_manager.get_blocks(actor=actor, label=label, is_template=templates_only, template_name=name)
@router.post("/", response_model=Block, operation_id="create_memory_block")
@router.post("/", response_model=Block, operation_id="create_block")
def create_block(
create_block: CreateBlock = Body(...),
server: SyncServer = Depends(get_letta_server),
@@ -37,8 +37,8 @@ def create_block(
return server.block_manager.create_or_update_block(actor=actor, block=block)
@router.patch("/{block_id}", response_model=Block, operation_id="update_memory_block")
def update_block(
@router.patch("/{block_id}", response_model=Block, operation_id="modify_block")
def modify_block(
block_id: str,
block_update: BlockUpdate = Body(...),
server: SyncServer = Depends(get_letta_server),
@@ -48,7 +48,7 @@ def update_block(
return server.block_manager.update_block(block_id=block_id, block_update=block_update, actor=actor)
@router.delete("/{block_id}", response_model=Block, operation_id="delete_memory_block")
@router.delete("/{block_id}", response_model=Block, operation_id="delete_block")
def delete_block(
block_id: str,
server: SyncServer = Depends(get_letta_server),
@@ -58,8 +58,8 @@ def delete_block(
return server.block_manager.delete_block(block_id=block_id, actor=actor)
@router.get("/{block_id}", response_model=Block, operation_id="get_memory_block")
def get_block(
@router.get("/{block_id}", response_model=Block, operation_id="retrieve_block")
def retrieve_block(
block_id: str,
server: SyncServer = Depends(get_letta_server),
user_id: Optional[str] = Header(None, alias="user_id"),

View File

@@ -45,8 +45,8 @@ def list_active_jobs(
return server.job_manager.list_jobs(actor=actor, statuses=[JobStatus.created, JobStatus.running])
@router.get("/{job_id}", response_model=Job, operation_id="get_job")
def get_job(
@router.get("/{job_id}", response_model=Job, operation_id="retrieve_job")
def retrieve_job(
job_id: str,
user_id: Optional[str] = Header(None, alias="user_id"),
server: "SyncServer" = Depends(get_letta_server),

View File

@@ -45,8 +45,8 @@ def create_provider(
return provider
@router.patch("/", tags=["providers"], response_model=Provider, operation_id="update_provider")
def update_provider(
@router.patch("/", tags=["providers"], response_model=Provider, operation_id="modify_provider")
def modify_provider(
request: ProviderUpdate = Body(...),
server: "SyncServer" = Depends(get_letta_server),
):

View File

@@ -43,8 +43,8 @@ def list_active_runs(
return [Run.from_job(job) for job in active_runs]
@router.get("/{run_id}", response_model=Run, operation_id="get_run")
def get_run(
@router.get("/{run_id}", response_model=Run, operation_id="retrieve_run")
def retrieve_run(
run_id: str,
user_id: Optional[str] = Header(None, alias="user_id"),
server: "SyncServer" = Depends(get_letta_server),
@@ -69,9 +69,9 @@ RunMessagesResponse = Annotated[
@router.get(
"/{run_id}/messages",
response_model=RunMessagesResponse,
operation_id="get_run_messages",
operation_id="list_run_messages",
)
async def get_run_messages(
async def list_run_messages(
run_id: str,
server: "SyncServer" = Depends(get_letta_server),
user_id: Optional[str] = Header(None, alias="user_id"),
@@ -111,8 +111,8 @@ async def get_run_messages(
raise HTTPException(status_code=404, detail=str(e))
@router.get("/{run_id}/usage", response_model=UsageStatistics, operation_id="get_run_usage")
def get_run_usage(
@router.get("/{run_id}/usage", response_model=UsageStatistics, operation_id="retrieve_run_usage")
def retrieve_run_usage(
run_id: str,
user_id: Optional[str] = Header(None, alias="user_id"),
server: "SyncServer" = Depends(get_letta_server),

View File

@@ -19,8 +19,8 @@ from letta.utils import sanitize_filename
router = APIRouter(prefix="/sources", tags=["sources"])
@router.get("/{source_id}", response_model=Source, operation_id="get_source")
def get_source(
@router.get("/{source_id}", response_model=Source, operation_id="retrieve_source")
def retrieve_source(
source_id: str,
server: "SyncServer" = Depends(get_letta_server),
user_id: Optional[str] = Header(None, alias="user_id"), # Extract user_id from header, default to None if not present
@@ -81,8 +81,8 @@ def create_source(
return server.source_manager.create_source(source=source, actor=actor)
@router.patch("/{source_id}", response_model=Source, operation_id="update_source")
def update_source(
@router.patch("/{source_id}", response_model=Source, operation_id="modify_source")
def modify_source(
source_id: str,
source: SourceUpdate,
server: "SyncServer" = Depends(get_letta_server),
@@ -148,7 +148,7 @@ def upload_file_to_source(
@router.get("/{source_id}/passages", response_model=List[Passage], operation_id="list_source_passages")
def list_passages(
def list_source_passages(
source_id: str,
server: SyncServer = Depends(get_letta_server),
user_id: Optional[str] = Header(None, alias="user_id"), # Extract user_id from header, default to None if not present
@@ -161,8 +161,8 @@ def list_passages(
return passages
@router.get("/{source_id}/files", response_model=List[FileMetadata], operation_id="list_files_from_source")
def list_files_from_source(
@router.get("/{source_id}/files", response_model=List[FileMetadata], operation_id="list_source_files")
def list_source_files(
source_id: str,
limit: int = Query(1000, description="Number of files to return"),
cursor: Optional[str] = Query(None, description="Pagination cursor to fetch the next set of results"),

View File

@@ -12,7 +12,7 @@ router = APIRouter(prefix="/tags", tags=["tag", "admin"])
@router.get("/", tags=["admin"], response_model=List[str], operation_id="list_tags")
def get_tags(
def list_tags(
cursor: Optional[str] = Query(None),
limit: Optional[int] = Query(50),
server: "SyncServer" = Depends(get_letta_server),

View File

@@ -31,8 +31,8 @@ def delete_tool(
server.tool_manager.delete_tool_by_id(tool_id=tool_id, actor=actor)
@router.get("/{tool_id}", response_model=Tool, operation_id="get_tool")
def get_tool(
@router.get("/{tool_id}", response_model=Tool, operation_id="retrieve_tool")
def retrieve_tool(
tool_id: str,
server: SyncServer = Depends(get_letta_server),
user_id: Optional[str] = Header(None, alias="user_id"), # Extract user_id from header, default to None if not present
@@ -122,8 +122,8 @@ def upsert_tool(
raise HTTPException(status_code=500, detail=f"An unexpected error occurred: {str(e)}")
@router.patch("/{tool_id}", response_model=Tool, operation_id="update_tool")
def update_tool(
@router.patch("/{tool_id}", response_model=Tool, operation_id="modify_tool")
def modify_tool(
tool_id: str,
request: ToolUpdate = Body(...),
server: SyncServer = Depends(get_letta_server),