pull/19504/head
Bowen Liang 1 year ago
parent 297d7e7062
commit 72172c2240

@ -1,9 +1,9 @@
from enum import Enum from enum import StrEnum
from pydantic import BaseModel, ValidationInfo, field_validator from pydantic import BaseModel, ValidationInfo, field_validator
class TracingProviderEnum(Enum): class TracingProviderEnum(StrEnum):
LANGFUSE = "langfuse" LANGFUSE = "langfuse"
LANGSMITH = "langsmith" LANGSMITH = "langsmith"
OPIK = "opik" OPIK = "opik"

@ -33,9 +33,7 @@ from core.ops.entities.trace_entity import (
TraceTaskName, TraceTaskName,
WorkflowTraceInfo, WorkflowTraceInfo,
) )
from core.ops.langsmith_trace.langsmith_trace import LangSmithDataTrace
from core.ops.utils import get_message_data from core.ops.utils import get_message_data
from core.ops.weave_trace.weave_trace import WeaveDataTrace
from extensions.ext_database import db from extensions.ext_database import db
from extensions.ext_storage import storage from extensions.ext_storage import storage
from models.model import App, AppModelConfig, Conversation, Message, MessageFile, TraceAppConfig from models.model import App, AppModelConfig, Conversation, Message, MessageFile, TraceAppConfig
@ -56,33 +54,37 @@ def build_langsmith_trace_instance(config: LangfuseConfig):
def build_opik_trace_instance(config: LangSmithConfig): def build_opik_trace_instance(config: LangSmithConfig):
from core.ops.langsmith_trace.langsmith_trace import LangSmithDataTrace
return LangSmithDataTrace(config) return LangSmithDataTrace(config)
def build_weave_trace_instance(config: WeaveConfig): def build_weave_trace_instance(config: WeaveConfig):
from core.ops.weave_trace.weave_trace import WeaveDataTrace
return WeaveDataTrace(config) return WeaveDataTrace(config)
provider_config_map: dict[str, dict[str, Any]] = { provider_config_map: dict[str, dict[str, Any]] = {
TracingProviderEnum.LANGFUSE.value: { TracingProviderEnum.LANGFUSE: {
"config_class": LangfuseConfig, "config_class": LangfuseConfig,
"secret_keys": ["public_key", "secret_key"], "secret_keys": ["public_key", "secret_key"],
"other_keys": ["host", "project_key"], "other_keys": ["host", "project_key"],
"trace_instance": lambda config: build_langfuse_trace_instance(config), "trace_instance": lambda config: build_langfuse_trace_instance(config),
}, },
TracingProviderEnum.LANGSMITH.value: { TracingProviderEnum.LANGSMITH: {
"config_class": LangSmithConfig, "config_class": LangSmithConfig,
"secret_keys": ["api_key"], "secret_keys": ["api_key"],
"other_keys": ["project", "endpoint"], "other_keys": ["project", "endpoint"],
"trace_instance": lambda config: build_langsmith_trace_instance(config), "trace_instance": lambda config: build_langsmith_trace_instance(config),
}, },
TracingProviderEnum.OPIK.value: { TracingProviderEnum.OPIK: {
"config_class": OpikConfig, "config_class": OpikConfig,
"secret_keys": ["api_key"], "secret_keys": ["api_key"],
"other_keys": ["project", "url", "workspace"], "other_keys": ["project", "url", "workspace"],
"trace_instance": lambda config: build_opik_trace_instance(config), "trace_instance": lambda config: build_opik_trace_instance(config),
}, },
TracingProviderEnum.WEAVE.value: { TracingProviderEnum.WEAVE: {
"config_class": WeaveConfig, "config_class": WeaveConfig,
"secret_keys": ["api_key"], "secret_keys": ["api_key"],
"other_keys": ["project", "entity", "endpoint"], "other_keys": ["project", "entity", "endpoint"],

Loading…
Cancel
Save