From a16be9ccb248f6b580448f63dc2acd6477fba8f4 Mon Sep 17 00:00:00 2001 From: Boris Feld Date: Thu, 12 Dec 2024 15:30:50 +0100 Subject: [PATCH] Add validation and proper default for Opik URL Also add better documentation link for Opik configuration in the UI --- api/core/ops/entities/config_entity.py | 14 +++++++++++++- .../[appId]/overview/tracing/config.ts | 2 +- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/api/core/ops/entities/config_entity.py b/api/core/ops/entities/config_entity.py index 500d933f4c..b484242b61 100644 --- a/api/core/ops/entities/config_entity.py +++ b/api/core/ops/entities/config_entity.py @@ -69,12 +69,24 @@ class OpikConfig(BaseTracingConfig): @field_validator("project") @classmethod - def set_value(cls, v, info: ValidationInfo): + def project_validator(cls, v, info: ValidationInfo): if v is None or v == "": v = "Default Project" return v + @field_validator("url") + @classmethod + def url_validator(cls, v, info: ValidationInfo): + if v is None or v == "": + v = "https://www.comet.com/opik/api/" + if not v.startswith(("https://", "http://")): + raise ValueError("url must start with https:// or http://") + if not v.endswith("/api/"): + raise ValueError("url should ends with /api/") + + return v + OPS_FILE_PATH = "ops_trace/" OPS_TRACE_FAILED_KEY = "FAILED_OPS_TRACE" diff --git a/web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/tracing/config.ts b/web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/tracing/config.ts index 51f2699587..0f3f280b30 100644 --- a/web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/tracing/config.ts +++ b/web/app/(commonLayout)/app/(appDetailLayout)/[appId]/overview/tracing/config.ts @@ -3,5 +3,5 @@ import { TracingProvider } from './type' export const docURL = { [TracingProvider.langSmith]: 'https://docs.smith.langchain.com/', [TracingProvider.langfuse]: 'https://docs.langfuse.com', - [TracingProvider.opik]: 'https://www.comet.com/docs/opik/', + [TracingProvider.opik]: 'https://www.comet.com/docs/opik/tracing/integrations/dify#setup-instructions', }