system.py 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. from typing import Optional
  2. from shared.api.models.base import WrappedGenericMessageResponse
  3. from shared.api.models.management.responses import (
  4. WrappedLogsResponse,
  5. WrappedServerStatsResponse,
  6. WrappedSettingsResponse,
  7. )
  8. class SystemSDK:
  9. def __init__(self, client):
  10. self.client = client
  11. async def health(self) -> WrappedGenericMessageResponse:
  12. """
  13. Check the health of the R2R server.
  14. """
  15. return await self.client._make_request("GET", "health", version="v3")
  16. async def logs(
  17. self,
  18. run_type_filter: Optional[str] = None,
  19. offset: Optional[int] = 0,
  20. limit: Optional[int] = 100,
  21. ) -> WrappedLogsResponse:
  22. """
  23. Get logs from the server.
  24. Args:
  25. run_type_filter (Optional[str]): The run type to filter by.
  26. offset (int, optional): Specifies the number of objects to skip. Defaults to 0.
  27. limit (int, optional): Specifies a limit on the number of objects to return, ranging between 1 and 100. Defaults to 100.
  28. Returns:
  29. dict: The logs from the server.
  30. """
  31. params = {
  32. key: value
  33. for key, value in {
  34. "run_type_filter": run_type_filter,
  35. "offset": offset,
  36. "limit": limit,
  37. }.items()
  38. if value is not None
  39. }
  40. return await self.client._make_request(
  41. "GET", "system/logs", params=params, version="v3"
  42. )
  43. async def settings(self) -> WrappedSettingsResponse:
  44. """
  45. Get the configuration settings for the R2R server.
  46. Returns:
  47. dict: The server settings.
  48. """
  49. return await self.client._make_request(
  50. "GET", "system/settings", version="v3"
  51. )
  52. async def status(self) -> WrappedServerStatsResponse:
  53. """
  54. Get statistics about the server, including the start time, uptime, CPU usage, and memory usage.
  55. Returns:
  56. dict: The server statistics.
  57. """
  58. return await self.client._make_request(
  59. "GET", "system/status", version="v3"
  60. )