9
9
10
10
from langflow .services .base import Service
11
11
from langflow .services .tracing .base import BaseTracer
12
- from langflow .services .tracing .langsmith import LangSmithTracer
13
- from langflow .services .tracing .langwatch import LangWatchTracer
14
12
from langflow .services .tracing .schema import Log
15
13
16
14
if TYPE_CHECKING :
20
18
from langflow .services .settings .service import SettingsService
21
19
22
20
21
+ def _get_langsmith_tracer ():
22
+ from langflow .services .tracing .langsmith import LangSmithTracer
23
+
24
+ return LangSmithTracer
25
+
26
+
27
+ def _get_langwatch_tracer ():
28
+ from langflow .services .tracing .langwatch import LangWatchTracer
29
+
30
+ return LangWatchTracer
31
+
32
+
23
33
class TracingService (Service ):
24
34
name = "tracing_service"
25
35
@@ -95,7 +105,8 @@ async def initialize_tracers(self):
95
105
def _initialize_langsmith_tracer (self ):
96
106
project_name = os .getenv ("LANGCHAIN_PROJECT" , "Langflow" )
97
107
self .project_name = project_name
98
- self ._tracers ["langsmith" ] = LangSmithTracer (
108
+ langsmith_tracer = _get_langsmith_tracer ()
109
+ self ._tracers ["langsmith" ] = langsmith_tracer (
99
110
trace_name = self .run_name ,
100
111
trace_type = "chain" ,
101
112
project_name = self .project_name ,
@@ -108,7 +119,8 @@ def _initialize_langwatch_tracer(self):
108
119
and "langwatch" not in self ._tracers
109
120
or self ._tracers ["langwatch" ].trace_id != self .run_id # type: ignore
110
121
):
111
- self ._tracers ["langwatch" ] = LangWatchTracer (
122
+ langwatch_tracer = _get_langwatch_tracer ()
123
+ self ._tracers ["langwatch" ] = langwatch_tracer (
112
124
trace_name = self .run_name ,
113
125
trace_type = "chain" ,
114
126
project_name = self .project_name ,
0 commit comments