diff --git a/docs/get-started/openai-assistant.mdx b/docs/get-started/openai-assistant.mdx
index 66c60129..2316bc66 100644
--- a/docs/get-started/openai-assistant.mdx
+++ b/docs/get-started/openai-assistant.mdx
@@ -68,6 +68,10 @@ assistant = OpenAIAssistant(assistant_id="asst_xxx", thread_id="thread_xxx")
Add data sources to your assistant. You can add in the following format: `[{"source": "https://example.com", "data_type": "web_page"}]`
+
+ Anonymous telemetry (doesn't collect any user information or user's files). Used to improve the Embedchain package utilization. Default is `True`.
+
+
## Step-2: Add data to thread
You can add any custom data source that is supported by Embedchain. Else, you can directly pass the file path on your local system and Embedchain propagates it to OpenAI Assistant.
diff --git a/embedchain/store/assistants.py b/embedchain/store/assistants.py
index 0a396a37..938af55a 100644
--- a/embedchain/store/assistants.py
+++ b/embedchain/store/assistants.py
@@ -12,6 +12,7 @@ from openai.types.beta.threads import MessageContentText, ThreadMessage
from embedchain.config import AddConfig
from embedchain.data_formatter import DataFormatter
from embedchain.models.data_type import DataType
+from embedchain.telemetry.posthog import AnonymousTelemetry
from embedchain.utils import detect_datatype
logging.basicConfig(level=logging.WARN)
@@ -28,6 +29,7 @@ class OpenAIAssistant:
data_sources=None,
assistant_id=None,
log_level=logging.WARN,
+ collect_metrics=True,
):
self.name = name or "OpenAI Assistant"
self.instructions = instructions
@@ -38,14 +40,24 @@ class OpenAIAssistant:
self._client = OpenAI()
self._initialize_assistant(assistant_id)
self.thread_id = thread_id or self._create_thread()
+ self._telemetry_props = {"class": self.__class__.__name__}
+ self.telemetry = AnonymousTelemetry(enabled=collect_metrics)
+ self.telemetry.capture(event_name="init", properties=self._telemetry_props)
def add(self, source, data_type=None):
file_path = self._prepare_source_path(source, data_type)
self._add_file_to_assistant(file_path)
+
+ event_props = {
+ **self._telemetry_props,
+ "data_type": data_type or detect_datatype(source),
+ }
+ self.telemetry.capture(event_name="add", properties=event_props)
logging.info("Data successfully added to the assistant.")
def chat(self, message):
self._send_message(message)
+ self.telemetry.capture(event_name="chat", properties=self._telemetry_props)
return self._get_latest_response()
def delete_thread(self):
diff --git a/pyproject.toml b/pyproject.toml
index ef06f931..afbc2772 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
[tool.poetry]
name = "embedchain"
-version = "0.1.1"
+version = "0.1.2"
description = "Data platform for LLMs - Load, index, retrieve and sync any unstructured data"
authors = [
"Taranjeet Singh ",