Skip to content

Commit 2dba2a4

Browse files
committed
capture all metadata in llm event
1 parent 1f8b5a8 commit 2dba2a4

File tree

3 files changed

+26
-112
lines changed

3 files changed

+26
-112
lines changed

posthog/ai/langchain/callbacks.py

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -576,14 +576,23 @@ def _capture_generation(
576576
if run.tools:
577577
event_properties["$ai_tools"] = run.tools
578578

579+
if self._properties:
580+
event_properties.update(self._properties)
581+
582+
if self._distinct_id is None:
583+
event_properties["$process_person_profile"] = False
584+
579585
if isinstance(output, BaseException):
580586
event_properties["$ai_http_status"] = _get_http_status(output)
581587
event_properties["$ai_error"] = _stringify_exception(output)
582588
event_properties["$ai_is_error"] = True
583589

584590
if self._ph_client.enable_exception_autocapture:
585591
exception_id = self._ph_client.capture_exception(
586-
output, properties=event_properties
592+
output,
593+
distinct_id=self._distinct_id,
594+
groups=self._groups,
595+
properties=event_properties,
587596
)
588597
event_properties["$exception_event_id"] = exception_id
589598
else:
@@ -613,12 +622,6 @@ def _capture_generation(
613622
self._ph_client, self._privacy_mode, completions
614623
)
615624

616-
if self._properties:
617-
event_properties.update(self._properties)
618-
619-
if self._distinct_id is None:
620-
event_properties["$process_person_profile"] = False
621-
622625
self._ph_client.capture(
623626
distinct_id=self._distinct_id or trace_id,
624627
event="$ai_generation",

posthog/client.py

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,33 @@
44
import sys
55
from datetime import datetime, timedelta
66
from typing import Any, Dict, Optional, Union
7-
from typing_extensions import Unpack
87
from uuid import uuid4
98

109
from dateutil.tz import tzutc
1110
from six import string_types
11+
from typing_extensions import Unpack
1212

13-
from posthog.args import OptionalCaptureArgs, OptionalSetArgs, ID_TYPES, ExceptionArg
13+
from posthog.args import ID_TYPES, ExceptionArg, OptionalCaptureArgs, OptionalSetArgs
1414
from posthog.consumer import Consumer
15+
from posthog.contexts import (
16+
_get_current_context,
17+
get_capture_exception_code_variables_context,
18+
get_code_variables_ignore_patterns_context,
19+
get_code_variables_mask_patterns_context,
20+
get_context_distinct_id,
21+
get_context_session_id,
22+
new_context,
23+
)
1524
from posthog.exception_capture import ExceptionCapture
1625
from posthog.exception_utils import (
26+
DEFAULT_CODE_VARIABLES_IGNORE_PATTERNS,
27+
DEFAULT_CODE_VARIABLES_MASK_PATTERNS,
1728
exc_info_from_error,
29+
exception_is_already_captured,
1830
exceptions_from_error_tuple,
1931
handle_in_app,
20-
exception_is_already_captured,
2132
mark_exception_as_captured,
2233
try_attach_code_variables_to_frames,
23-
DEFAULT_CODE_VARIABLES_MASK_PATTERNS,
24-
DEFAULT_CODE_VARIABLES_IGNORE_PATTERNS,
2534
)
2635
from posthog.feature_flags import (
2736
InconclusiveMatchError,
@@ -38,15 +47,6 @@
3847
get,
3948
remote_config,
4049
)
41-
from posthog.contexts import (
42-
_get_current_context,
43-
get_context_distinct_id,
44-
get_context_session_id,
45-
get_capture_exception_code_variables_context,
46-
get_code_variables_mask_patterns_context,
47-
get_code_variables_ignore_patterns_context,
48-
new_context,
49-
)
5050
from posthog.types import (
5151
FeatureFlag,
5252
FeatureFlagResult,
@@ -2016,9 +2016,9 @@ def _initialize_flag_cache(self, cache_url):
20162016
return None
20172017

20182018
try:
2019-
from urllib.parse import urlparse, parse_qs
2019+
from urllib.parse import parse_qs, urlparse
20202020
except ImportError:
2021-
from urlparse import urlparse, parse_qs
2021+
from urlparse import parse_qs, urlparse
20222022

20232023
try:
20242024
parsed = urlparse(cache_url)

posthog/integrations/lang_chain.py

Lines changed: 0 additions & 89 deletions
This file was deleted.

0 commit comments

Comments
 (0)