aboutsummaryrefslogtreecommitdiff
path: root/R2R/r2r/main/api/routes/management.py
diff options
context:
space:
mode:
authorS. Solomon Darnell2025-03-28 21:52:21 -0500
committerS. Solomon Darnell2025-03-28 21:52:21 -0500
commit4a52a71956a8d46fcb7294ac71734504bb09bcc2 (patch)
treeee3dc5af3b6313e921cd920906356f5d4febc4ed /R2R/r2r/main/api/routes/management.py
parentcc961e04ba734dd72309fb548a2f97d67d578813 (diff)
downloadgn-ai-master.tar.gz
two version of R2R are hereHEADmaster
Diffstat (limited to 'R2R/r2r/main/api/routes/management.py')
-rwxr-xr-xR2R/r2r/main/api/routes/management.py101
1 files changed, 101 insertions, 0 deletions
diff --git a/R2R/r2r/main/api/routes/management.py b/R2R/r2r/main/api/routes/management.py
new file mode 100755
index 00000000..921fb534
--- /dev/null
+++ b/R2R/r2r/main/api/routes/management.py
@@ -0,0 +1,101 @@
+from ...engine import R2REngine
+from ..requests import (
+ R2RAnalyticsRequest,
+ R2RDeleteRequest,
+ R2RDocumentChunksRequest,
+ R2RDocumentsOverviewRequest,
+ R2RLogsRequest,
+ R2RPrintRelationshipsRequest,
+ R2RUpdatePromptRequest,
+ R2RUsersOverviewRequest,
+)
+from .base_router import BaseRouter
+
+
+class ManagementRouter(BaseRouter):
+ def __init__(self, engine: R2REngine):
+ super().__init__(engine)
+ self.setup_routes()
+
+ def setup_routes(self):
+ @self.router.get("/health")
+ async def health_check():
+ return {"response": "ok"}
+
+ @self.router.post("/update_prompt")
+ @self.base_endpoint
+ async def update_prompt_app(request: R2RUpdatePromptRequest):
+ return await self.engine.aupdate_prompt(
+ request.name, request.template, request.input_types
+ )
+
+ @self.router.post("/logs")
+ @self.router.get("/logs")
+ @self.base_endpoint
+ async def get_logs_app(request: R2RLogsRequest):
+ return await self.engine.alogs(
+ log_type_filter=request.log_type_filter,
+ max_runs_requested=request.max_runs_requested,
+ )
+
+ @self.router.post("/analytics")
+ @self.router.get("/analytics")
+ @self.base_endpoint
+ async def get_analytics_app(request: R2RAnalyticsRequest):
+ return await self.engine.aanalytics(
+ filter_criteria=request.filter_criteria,
+ analysis_types=request.analysis_types,
+ )
+
+ @self.router.post("/users_overview")
+ @self.router.get("/users_overview")
+ @self.base_endpoint
+ async def get_users_overview_app(request: R2RUsersOverviewRequest):
+ return await self.engine.ausers_overview(user_ids=request.user_ids)
+
+ @self.router.delete("/delete")
+ @self.base_endpoint
+ async def delete_app(request: R2RDeleteRequest):
+ return await self.engine.adelete(
+ keys=request.keys, values=request.values
+ )
+
+ @self.router.post("/documents_overview")
+ @self.router.get("/documents_overview")
+ @self.base_endpoint
+ async def get_documents_overview_app(
+ request: R2RDocumentsOverviewRequest,
+ ):
+ return await self.engine.adocuments_overview(
+ document_ids=request.document_ids, user_ids=request.user_ids
+ )
+
+ @self.router.post("/document_chunks")
+ @self.router.get("/document_chunks")
+ @self.base_endpoint
+ async def get_document_chunks_app(request: R2RDocumentChunksRequest):
+ return await self.engine.adocument_chunks(request.document_id)
+
+ @self.router.post("/inspect_knowledge_graph")
+ @self.router.get("/inspect_knowledge_graph")
+ @self.base_endpoint
+ async def inspect_knowledge_graph(
+ request: R2RPrintRelationshipsRequest,
+ ):
+ return await self.engine.inspect_knowledge_graph(
+ limit=request.limit
+ )
+
+ @self.router.get("/app_settings")
+ @self.base_endpoint
+ async def get_app_settings_app():
+ return await self.engine.aapp_settings()
+
+ @self.router.get("/openapi_spec")
+ @self.base_endpoint
+ def get_openapi_spec_app():
+ return self.engine.openapi_spec()
+
+
+def create_management_router(engine: R2REngine):
+ return ManagementRouter(engine).router