File size: 1,057 Bytes
0f166dc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import os
import json
from typing import Optional

class Tracer:
    def __init__(self, client=None, trace_url: Optional[str] = None):
        self.client = client
        self.trace_url = trace_url

    @classmethod
    def from_env(cls):
        try:
            from langfuse import Langfuse
            pk = os.getenv("LANGFUSE_PUBLIC_KEY")
            sk = os.getenv("LANGFUSE_SECRET_KEY")
            host = os.getenv("LANGFUSE_HOST", "https://cloud.langfuse.com")
            if pk and sk:
                client = Langfuse(public_key=pk, secret_key=sk, host=host)
                session = client.trace("tabular-agentic-xai")
                return cls(client=session, trace_url=session.get_url() if hasattr(session, "get_url") else None)
        except Exception:
            pass
        return cls()

    def trace_event(self, name: str, payload: dict):
        if self.client:
            try:
                self.client.event(name=name, input=json.dumps(payload))
            except Exception:
                pass