Browse Source

refactor: add OpikDataTrace instance builder. (#16444)

Signed-off-by: -LAN- <laipz8200@outlook.com>
-LAN- 1 month ago
parent
commit
0e2e2db3fa
1 changed files with 8 additions and 2 deletions
  1. 8 2
      api/core/ops/ops_trace_manager.py

+ 8 - 2
api/core/ops/ops_trace_manager.py

@@ -33,7 +33,6 @@ from core.ops.entities.trace_entity import (
 )
 from core.ops.langfuse_trace.langfuse_trace import LangFuseDataTrace
 from core.ops.langsmith_trace.langsmith_trace import LangSmithDataTrace
-from core.ops.opik_trace.opik_trace import OpikDataTrace
 from core.ops.utils import get_message_data
 from extensions.ext_database import db
 from extensions.ext_storage import storage
@@ -41,6 +40,13 @@ from models.model import App, AppModelConfig, Conversation, Message, MessageFile
 from models.workflow import WorkflowAppLog, WorkflowRun
 from tasks.ops_trace_task import process_trace_tasks
 
+
+def build_opik_trace_instance(config: OpikConfig):
+    from core.ops.opik_trace.opik_trace import OpikDataTrace
+
+    return OpikDataTrace(config)
+
+
 provider_config_map: dict[str, dict[str, Any]] = {
     TracingProviderEnum.LANGFUSE.value: {
         "config_class": LangfuseConfig,
@@ -58,7 +64,7 @@ provider_config_map: dict[str, dict[str, Any]] = {
         "config_class": OpikConfig,
         "secret_keys": ["api_key"],
         "other_keys": ["project", "url", "workspace"],
-        "trace_instance": OpikDataTrace,
+        "trace_instance": lambda config: build_opik_trace_instance(config),
     },
 }