From d40e7147a92b27e9d08db6e295556823a2a28b32 Mon Sep 17 00:00:00 2001 From: guillaumefontan Date: Fri, 23 May 2025 11:05:22 +0200 Subject: [PATCH 1/2] commit --- examples/sdk_test.py | 26 +++++++++++--------------- trubrics/main.py | 12 ++++++++++++ 2 files changed, 23 insertions(+), 15 deletions(-) diff --git a/examples/sdk_test.py b/examples/sdk_test.py index b879136..4cb941d 100644 --- a/examples/sdk_test.py +++ b/examples/sdk_test.py @@ -1,21 +1,17 @@ -import logging -import os - from trubrics import Trubrics -trubrics = Trubrics(api_key=os.environ["TRUBRICS_API_KEY"]) -trubrics.logger.setLevel(logging.DEBUG) - - -trubrics.track(event="Page view", user_id="user_id", properties={"page": "home"}) -trubrics.track(event="Page view", user_id="user_id", properties={"page": "events"}) +trubrics = Trubrics( + api_key="LuggKCVUi-Ef3hEuQukoJUF2P-Dx98apzoUY3g41js04it5v-v2DC4BfR14SOXPT", + host="https://app.trubrics.com/api/ingestion", +) -trubrics.track_llm( - user_id="sdk_test", - prompt="What is Trubrics?", - assistant_id="gpt4o", - generation="Trubrics is a product analytics platform for AI applications.", - latency=2, +trubrics.track( + event="Sign Up", + user_id="Britney", + properties={ + "country": "USA", + "company": "Acme", # Add more properties as needed + }, ) trubrics.close() diff --git a/trubrics/main.py b/trubrics/main.py index 254847d..0d88128 100644 --- a/trubrics/main.py +++ b/trubrics/main.py @@ -3,6 +3,7 @@ import threading import time from datetime import datetime, timezone +from importlib.metadata import version import requests @@ -93,6 +94,8 @@ def track( timestamp (datetime | None): The timestamp of event. If None, the current time in UTC is used. If not a datetime object, the event is ignored. """ + properties = self._add_source_property(properties) + event_dict = { "user_id": user_id, "event": event, @@ -138,6 +141,8 @@ def track_llm( thread_id (str | None): The ID of the thread, used to link messages in a conversation. """ + properties = self._add_source_property(properties) + llm_event_dict = { "user_id": user_id, "prompt": prompt, @@ -279,3 +284,10 @@ def _periodic_flush(self): ): self.logger.debug(f"Time since last flush: {time_since_last_flush}") self.flush() + + @staticmethod + def _add_source_property(properties: dict | None = None): + if properties is None: + properties = {} + properties["source"] = f"python_sdk_{version('trubrics')}" + return properties From e997e980aa66bd745451871d4f66aaf273564d11 Mon Sep 17 00:00:00 2001 From: guillaumefontan Date: Fri, 23 May 2025 11:16:02 +0200 Subject: [PATCH 2/2] commit --- examples/sdk_test.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/examples/sdk_test.py b/examples/sdk_test.py index 4cb941d..9129703 100644 --- a/examples/sdk_test.py +++ b/examples/sdk_test.py @@ -14,4 +14,12 @@ }, ) +trubrics.track_llm( + user_id="sdk_test", + prompt="What is Trubrics?", + assistant_id="gpt4o", + generation="Trubrics is a product analytics platform for AI applications.", + latency=2, +) + trubrics.close()