From 35f2e6238584533a816d49f046f55422c6bdd81d Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Sun, 23 Jun 2024 01:10:23 -0300 Subject: [PATCH] feat: Add TelemetryService schema and service The code changes introduce the `TelemetryService` schema and service in the `langflow.services.telemetry` module. This addition enables the application to collect and analyze telemetry data. --- .../langflow/services/telemetry/schema.py | 35 ++++++++++++++++ .../langflow/services/telemetry/service.py | 42 ++++--------------- 2 files changed, 42 insertions(+), 35 deletions(-) create mode 100644 src/backend/base/langflow/services/telemetry/schema.py diff --git a/src/backend/base/langflow/services/telemetry/schema.py b/src/backend/base/langflow/services/telemetry/schema.py new file mode 100644 index 000000000..d9ac221b0 --- /dev/null +++ b/src/backend/base/langflow/services/telemetry/schema.py @@ -0,0 +1,35 @@ +from pydantic import BaseModel + + +class RunPayload(BaseModel): + IsWebhook: bool = False + seconds: int + success: bool + errorMessage: str = "" + + +class ShutdownPayload(BaseModel): + timeRunning: int + + +class VersionPayload(BaseModel): + version: str + platform: str + python: str + arch: str + autoLogin: bool + cacheType: str + backendOnly: bool + + +class PlaygroundPayload(BaseModel): + seconds: int + componentCount: int + success: bool + + +class ComponentPayload(BaseModel): + name: str + seconds: int + success: bool + errorMessage: str diff --git a/src/backend/base/langflow/services/telemetry/service.py b/src/backend/base/langflow/services/telemetry/service.py index 45d3fa353..15ccacf69 100644 --- a/src/backend/base/langflow/services/telemetry/service.py +++ b/src/backend/base/langflow/services/telemetry/service.py @@ -9,47 +9,19 @@ from loguru import logger from pydantic import BaseModel from langflow.services.base import Service +from langflow.services.telemetry.schema import ( + ComponentPayload, + PlaygroundPayload, + RunPayload, + ShutdownPayload, + VersionPayload, +) from langflow.utils.version import get_version_info if TYPE_CHECKING: from langflow.services.settings.service import SettingsService -class RunPayload(BaseModel): - isEndpointName: str - IsWebhook: bool - seconds: int - success: bool - errorMessage: str - - -class ShutdownPayload(BaseModel): - timeRunning: int - - -class VersionPayload(BaseModel): - version: str - platform: str - python: str - arch: str - autoLogin: bool - cacheType: str - backendOnly: bool - - -class PlaygroundPayload(BaseModel): - seconds: int - componentCount: int - success: bool - - -class ComponentPayload(BaseModel): - name: str - seconds: int - success: bool - errorMessage: str - - class TelemetryService(Service): name = "telemetry_service"