diff --git a/api/core/ops/entities/config_entity.py b/api/core/ops/entities/config_entity.py index 874b2800b2..9fa796595b 100644 --- a/api/core/ops/entities/config_entity.py +++ b/api/core/ops/entities/config_entity.py @@ -88,6 +88,26 @@ class OpikConfig(BaseTracingConfig): return v +class WeaveConfig(BaseTracingConfig): + """ + Model class for Weave tracing config. + """ + + api_key: str + entity: str | None = None + project: str + endpoint: str = "https://trace.wandb.ai" + + @field_validator("endpoint") + @classmethod + def set_value(cls, v, info: ValidationInfo): + if v is None or v == "": + v = "https://trace.wandb.ai" + if not v.startswith("https://"): + raise ValueError("endpoint must start with https://") + + return v + class WeaveConfig(BaseTracingConfig): """ diff --git a/api/core/ops/ops_trace_manager.py b/api/core/ops/ops_trace_manager.py index 195ea41e9d..b023408b06 100644 --- a/api/core/ops/ops_trace_manager.py +++ b/api/core/ops/ops_trace_manager.py @@ -19,6 +19,7 @@ from core.ops.entities.config_entity import ( LangfuseConfig, LangSmithConfig, OpikConfig, + WeaveConfig, TracingProviderEnum, WeaveConfig, ) @@ -35,6 +36,8 @@ 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.weave_trace.weave_trace import WeaveDataTrace +from core.ops.opik_trace.opik_trace import OpikDataTrace from core.ops.utils import get_message_data from core.ops.weave_trace.weave_trace import WeaveDataTrace from extensions.ext_database import db