From 3d4aca9fcce2758c8f53d5fb072dd4c890ca8a81 Mon Sep 17 00:00:00 2001 From: SwiftyOS Date: Mon, 16 Sep 2024 16:56:09 +0200 Subject: [PATCH] Splitting rest services into routes --- .../autogpt_server/server/routes/__init__.py | 0 .../autogpt_server/server/routes/agents.py | 108 ++++++++++++++++++ .../autogpt_server/server/routes/blocks.py | 17 +++ .../autogpt_server/server/routes/root.py | 25 ++++ .../autogpt_server/server/routes/store.py | 0 5 files changed, 150 insertions(+) create mode 100644 rnd/autogpt_server/autogpt_server/server/routes/__init__.py create mode 100644 rnd/autogpt_server/autogpt_server/server/routes/agents.py create mode 100644 rnd/autogpt_server/autogpt_server/server/routes/blocks.py create mode 100644 rnd/autogpt_server/autogpt_server/server/routes/root.py create mode 100644 rnd/autogpt_server/autogpt_server/server/routes/store.py diff --git a/rnd/autogpt_server/autogpt_server/server/routes/__init__.py b/rnd/autogpt_server/autogpt_server/server/routes/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/rnd/autogpt_server/autogpt_server/server/routes/agents.py b/rnd/autogpt_server/autogpt_server/server/routes/agents.py new file mode 100644 index 0000000000..850ed1f671 --- /dev/null +++ b/rnd/autogpt_server/autogpt_server/server/routes/agents.py @@ -0,0 +1,108 @@ +from fastapi import APIRouter, Depends, HTTPException +from typing import Annotated, Any, Dict, List + +from autogpt_server.data import graph as graph_db +from autogpt_server.server.model import CreateGraph, SetGraphActiveVersion +from autogpt_server.server.utils import get_user_id + +router = APIRouter() + +@router.get("/graphs") +async def get_graphs(user_id: Annotated[str, Depends(get_user_id)]) -> List[graph_db.GraphMeta]: + # Stub implementation + return [] + +@router.get("/templates") +async def get_templates() -> List[graph_db.GraphMeta]: + # Stub implementation + return [] + +@router.post("/graphs") +async def create_new_graph(create_graph: CreateGraph, user_id: Annotated[str, Depends(get_user_id)]) -> graph_db.Graph: + # Stub implementation + return graph_db.Graph() + +@router.post("/templates") +async def create_new_template(create_graph: CreateGraph, user_id: Annotated[str, Depends(get_user_id)]) -> graph_db.Graph: + # Stub implementation + return graph_db.Graph() + +@router.get("/graphs/{graph_id}") +async def get_graph(graph_id: str, user_id: Annotated[str, Depends(get_user_id)], version: int | None = None) -> graph_db.Graph: + # Stub implementation + return graph_db.Graph() + +@router.get("/templates/{graph_id}") +async def get_template(graph_id: str, version: int | None = None) -> graph_db.Graph: + # Stub implementation + return graph_db.Graph() + +@router.put("/graphs/{graph_id}") +async def update_graph(graph_id: str, graph: graph_db.Graph, user_id: Annotated[str, Depends(get_user_id)]) -> graph_db.Graph: + # Stub implementation + return graph_db.Graph() + +@router.put("/templates/{graph_id}") +async def update_template(graph_id: str, graph: graph_db.Graph, user_id: Annotated[str, Depends(get_user_id)]) -> graph_db.Graph: + # Stub implementation + return graph_db.Graph() + +@router.get("/graphs/{graph_id}/versions") +async def get_graph_all_versions(graph_id: str, user_id: Annotated[str, Depends(get_user_id)]) -> List[graph_db.Graph]: + # Stub implementation + return [] + +@router.get("/templates/{graph_id}/versions") +async def get_template_all_versions(graph_id: str, user_id: Annotated[str, Depends(get_user_id)]) -> List[graph_db.Graph]: + # Stub implementation + return [] + +@router.get("/graphs/{graph_id}/versions/{version}") +async def get_graph_version(graph_id: str, version: int, user_id: Annotated[str, Depends(get_user_id)]) -> graph_db.Graph: + # Stub implementation + return graph_db.Graph() + +@router.put("/graphs/{graph_id}/versions/active") +async def set_graph_active_version(graph_id: str, request_body: SetGraphActiveVersion, user_id: Annotated[str, Depends(get_user_id)]): + # Stub implementation + pass + +@router.get("/graphs/{graph_id}/input_schema") +async def get_graph_input_schema(graph_id: str, user_id: Annotated[str, Depends(get_user_id)]) -> List[graph_db.InputSchemaItem]: + # Stub implementation + return [] + +@router.post("/graphs/{graph_id}/execute") +async def execute_graph(graph_id: str, node_input: Dict[Any, Any], user_id: Annotated[str, Depends(get_user_id)]) -> Dict[str, Any]: + # Stub implementation + return {} + +@router.get("/graphs/{graph_id}/executions") +async def list_graph_runs(graph_id: str, user_id: Annotated[str, Depends(get_user_id)], graph_version: int | None = None) -> List[str]: + # Stub implementation + return [] + +@router.get("/graphs/{graph_id}/executions/{graph_exec_id}") +async def get_graph_run_node_execution_results(graph_id: str, graph_exec_id: str, user_id: Annotated[str, Depends(get_user_id)]) -> List[Any]: + # Stub implementation + return [] + +@router.post("/graphs/{graph_id}/executions/{graph_exec_id}/stop") +async def stop_graph_run(graph_id: str, graph_exec_id: str, user_id: Annotated[str, Depends(get_user_id)]) -> List[Any]: + # Stub implementation + return [] + +@router.post("/graphs/{graph_id}/schedules") +async def create_schedule(graph_id: str, cron: str, input_data: Dict[Any, Any], user_id: Annotated[str, Depends(get_user_id)]) -> Dict[Any, Any]: + # Stub implementation + return {} + +@router.get("/graphs/{graph_id}/schedules") +async def get_execution_schedules(graph_id: str, user_id: Annotated[str, Depends(get_user_id)]) -> Dict[str, str]: + # Stub implementation + return {} + +@router.put("/graphs/schedules/{schedule_id}") +async def update_schedule(schedule_id: str, input_data: Dict[Any, Any], user_id: Annotated[str, Depends(get_user_id)]) -> Dict[Any, Any]: + # Stub implementation + return {} diff --git a/rnd/autogpt_server/autogpt_server/server/routes/blocks.py b/rnd/autogpt_server/autogpt_server/server/routes/blocks.py new file mode 100644 index 0000000000..e21a1cd5df --- /dev/null +++ b/rnd/autogpt_server/autogpt_server/server/routes/blocks.py @@ -0,0 +1,17 @@ +from fastapi import APIRouter +from autogpt_server.server.rest_api import AgentServer +from typing import Any + +router = APIRouter() + +@router.get("/blocks") +async def get_graph_blocks(): + return AgentServer.get_graph_blocks() + +@router.get("/blocks/costs") +async def get_graph_block_costs(): + return AgentServer.get_graph_block_costs() + +@router.post("/blocks/{block_id}/execute") +async def execute_graph_block(block_id: str, data: dict[str, Any]): + return AgentServer.execute_graph_block(block_id, data) diff --git a/rnd/autogpt_server/autogpt_server/server/routes/root.py b/rnd/autogpt_server/autogpt_server/server/routes/root.py new file mode 100644 index 0000000000..55bf7471e7 --- /dev/null +++ b/rnd/autogpt_server/autogpt_server/server/routes/root.py @@ -0,0 +1,25 @@ +from fastapi import APIRouter + +router = APIRouter() + +@router.get("/") +async def root(): + return {"message": "Welcome to the Autogpt Server API"} + +@router.post("/auth/user") +async def get_or_create_user_route(): + # Stub implementation + return {"message": "User created or retrieved successfully"} + +@router.get("/credits") +async def get_user_credits(): + # Stub implementation + return {"credits": 100} # Replace with actual credit retrieval logic + +@router.post("/settings") +async def update_configuration(updated_settings: dict): + # Stub implementation + return { + "message": "Settings updated successfully", + "updated_fields": {"config": [], "secrets": []} + } # Replace with actual configuration update logic diff --git a/rnd/autogpt_server/autogpt_server/server/routes/store.py b/rnd/autogpt_server/autogpt_server/server/routes/store.py new file mode 100644 index 0000000000..e69de29bb2