mirror of
https://github.com/langgenius/dify.git
synced 2026-04-21 09:00:38 -04:00
57 lines
1.3 KiB
Python
57 lines
1.3 KiB
Python
from enum import StrEnum
|
|
|
|
from pydantic import BaseModel
|
|
|
|
from core.ops.utils import validate_project_name, validate_url
|
|
|
|
|
|
class TracingProviderEnum(StrEnum):
|
|
ARIZE = "arize"
|
|
PHOENIX = "phoenix"
|
|
LANGFUSE = "langfuse"
|
|
LANGSMITH = "langsmith"
|
|
OPIK = "opik"
|
|
WEAVE = "weave"
|
|
ALIYUN = "aliyun"
|
|
MLFLOW = "mlflow"
|
|
DATABRICKS = "databricks"
|
|
TENCENT = "tencent"
|
|
|
|
|
|
class BaseTracingConfig(BaseModel):
|
|
"""
|
|
Base model class for tracing configurations
|
|
"""
|
|
|
|
@classmethod
|
|
def validate_endpoint_url(cls, v: str, default_url: str) -> str:
|
|
"""
|
|
Common endpoint URL validation logic
|
|
|
|
Args:
|
|
v: URL value to validate
|
|
default_url: Default URL to use if input is None or empty
|
|
|
|
Returns:
|
|
Validated and normalized URL
|
|
"""
|
|
return validate_url(v, default_url)
|
|
|
|
@classmethod
|
|
def validate_project_field(cls, v: str, default_name: str) -> str:
|
|
"""
|
|
Common project name validation logic
|
|
|
|
Args:
|
|
v: Project name to validate
|
|
default_name: Default name to use if input is None or empty
|
|
|
|
Returns:
|
|
Validated project name
|
|
"""
|
|
return validate_project_name(v, default_name)
|
|
|
|
|
|
OPS_FILE_PATH = "ops_trace/"
|
|
OPS_TRACE_FAILED_KEY = "FAILED_OPS_TRACE"
|