[Feat] Add anonymous telemetry to assistant (#924)

This commit is contained in:
Deshraj Yadav
2023-11-09 02:07:47 -08:00
committed by GitHub
parent 7c6b88c7c5
commit 0d568c758b
3 changed files with 17 additions and 1 deletions

View File

@@ -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):