From 73dce2482fcb0c781bac443baa132868b1a8c6f4 Mon Sep 17 00:00:00 2001 From: Arslan Saleem Date: Mon, 1 Jul 2024 09:50:07 +0200 Subject: [PATCH] Add scarf telemetry in pandasai (#1260) * Add scarf telemetry in pandasai * fix: ruff errors --- pandasai/__init__.py | 3 --- pandasai/__version__.py | 3 +++ pandasai/helpers/logger.py | 4 ++++ pandasai/helpers/query_exec_tracker.py | 4 ++-- pandasai/helpers/telemetry.py | 22 ++++++++++++++++++++++ 5 files changed, 31 insertions(+), 5 deletions(-) create mode 100644 pandasai/__version__.py create mode 100644 pandasai/helpers/telemetry.py diff --git a/pandasai/__init__.py b/pandasai/__init__.py index d525d50b9..80cb84232 100644 --- a/pandasai/__init__.py +++ b/pandasai/__init__.py @@ -2,7 +2,6 @@ """ PandasAI is a wrapper around a LLM to make dataframes conversational """ -import importlib.metadata from pandasai.smart_dataframe import SmartDataframe from pandasai.smart_datalake import SmartDatalake @@ -12,8 +11,6 @@ from .helpers.cache import Cache from .skills import skill -__version__ = importlib.metadata.version(__package__ or __name__) - def clear_cache(filename: str = None): """Clear the cache""" diff --git a/pandasai/__version__.py b/pandasai/__version__.py new file mode 100644 index 000000000..2c02b6446 --- /dev/null +++ b/pandasai/__version__.py @@ -0,0 +1,3 @@ +import importlib.metadata + +__version__ = importlib.metadata.version(__package__ or __name__) diff --git a/pandasai/helpers/logger.py b/pandasai/helpers/logger.py index 7b2b6de24..194a93a08 100644 --- a/pandasai/helpers/logger.py +++ b/pandasai/helpers/logger.py @@ -22,6 +22,7 @@ import time from typing import List +from pandasai.helpers.telemetry import scarf_analytics from pandasai.pydantic import BaseModel from .path import find_closest @@ -148,3 +149,6 @@ def save_logs(self, save_logs: bool): for handler in self._logger.handlers: if isinstance(handler, logging.FileHandler): self._logger.removeHandler(handler) + + +scarf_analytics() diff --git a/pandasai/helpers/query_exec_tracker.py b/pandasai/helpers/query_exec_tracker.py index 1702ca957..b3f334e7a 100644 --- a/pandasai/helpers/query_exec_tracker.py +++ b/pandasai/helpers/query_exec_tracker.py @@ -7,7 +7,7 @@ import requests -import pandasai +from pandasai.__version__ import __version__ from pandasai.connectors import BaseConnector from pandasai.helpers.encoder import CustomEncoder from pandasai.pipelines.chat.chat_pipeline_input import ( @@ -70,7 +70,7 @@ def start_new_track(self, input: ChatPipelineInput): "instance": "Agent", "query": input.query, "output_type": input.output_type, - "pandasai_version": pandasai.__version__, + "pandasai_version": __version__, } def convert_dataframe_to_dict(self, df): diff --git a/pandasai/helpers/telemetry.py b/pandasai/helpers/telemetry.py new file mode 100644 index 000000000..388634f6b --- /dev/null +++ b/pandasai/helpers/telemetry.py @@ -0,0 +1,22 @@ +import os +import platform + +import requests + +from pandasai.__version__ import __version__ + + +def scarf_analytics(): + try: + if ( + os.getenv("SCARF_NO_ANALYTICS") != "true" + and os.getenv("DO_NOT_TRACK") != "true" + ): + requests.get( + "https://package.pandabi.ai/pandasai-telemetry?version=" + + __version__ + + "&platform=" + + platform.system() + ) + except Exception: + pass