|
@@ -12,6 +12,7 @@ from openai.types.beta.threads import MessageContentText, ThreadMessage
|
|
from embedchain.config import AddConfig
|
|
from embedchain.config import AddConfig
|
|
from embedchain.data_formatter import DataFormatter
|
|
from embedchain.data_formatter import DataFormatter
|
|
from embedchain.models.data_type import DataType
|
|
from embedchain.models.data_type import DataType
|
|
|
|
+from embedchain.telemetry.posthog import AnonymousTelemetry
|
|
from embedchain.utils import detect_datatype
|
|
from embedchain.utils import detect_datatype
|
|
|
|
|
|
logging.basicConfig(level=logging.WARN)
|
|
logging.basicConfig(level=logging.WARN)
|
|
@@ -28,6 +29,7 @@ class OpenAIAssistant:
|
|
data_sources=None,
|
|
data_sources=None,
|
|
assistant_id=None,
|
|
assistant_id=None,
|
|
log_level=logging.WARN,
|
|
log_level=logging.WARN,
|
|
|
|
+ collect_metrics=True,
|
|
):
|
|
):
|
|
self.name = name or "OpenAI Assistant"
|
|
self.name = name or "OpenAI Assistant"
|
|
self.instructions = instructions
|
|
self.instructions = instructions
|
|
@@ -38,14 +40,24 @@ class OpenAIAssistant:
|
|
self._client = OpenAI()
|
|
self._client = OpenAI()
|
|
self._initialize_assistant(assistant_id)
|
|
self._initialize_assistant(assistant_id)
|
|
self.thread_id = thread_id or self._create_thread()
|
|
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):
|
|
def add(self, source, data_type=None):
|
|
file_path = self._prepare_source_path(source, data_type)
|
|
file_path = self._prepare_source_path(source, data_type)
|
|
self._add_file_to_assistant(file_path)
|
|
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.")
|
|
logging.info("Data successfully added to the assistant.")
|
|
|
|
|
|
def chat(self, message):
|
|
def chat(self, message):
|
|
self._send_message(message)
|
|
self._send_message(message)
|
|
|
|
+ self.telemetry.capture(event_name="chat", properties=self._telemetry_props)
|
|
return self._get_latest_response()
|
|
return self._get_latest_response()
|
|
|
|
|
|
def delete_thread(self):
|
|
def delete_thread(self):
|