create an abstract class for an existing class

This commit is contained in:
italojohnny 2024-06-26 17:48:42 -03:00 committed by Gabriel Luiz Freitas Almeida
commit b99f292f1c
2 changed files with 36 additions and 2 deletions

View file

@ -0,0 +1,33 @@
from abc import ABC, abstractmethod
from typing import Dict, Any
class BaseTrace(ABC):
@abstractmethod
def ready(self):
raise NotImplementedError
@abstractmethod
def setup_langsmith(self):
raise NotImplementedError
@abstractmethod
def add_trace(self, trace_name: str, trace_type: str, inputs: Dict[str, Any], metadata: Dict[str, Any] = None):
raise NotImplementedError
@abstractmethod
def _convert_to_langchain_types(self, io_dict: Dict[str, Any]):
raise NotImplementedError
@abstractmethod
def _convert_to_langchain_type(self, value):
raise NotImplementedError
@abstractmethod
def end_trace(self, trace_name: str, outputs: Dict[str, Any] = None, error: str = None):
raise NotImplementedError
@abstractmethod
def end(self, outputs: Dict[str, Any], error: str | None = None):
raise NotImplementedError

View file

@ -13,6 +13,7 @@ from loguru import logger
from langflow.schema.data import Data
from langflow.services.base import Service
from langflow.services.tracing.schema import Log
from langflow.services.tracing.base import BaseTrace
if TYPE_CHECKING:
from langflow.services.monitor.service import MonitorService
@ -180,8 +181,8 @@ class TracingService(Service):
self.outputs_metadata[trace_name] |= output_metadata or {}
class LangSmithTracer:
def __init__(self, trace_name: str, trace_type: str, project_name: str, trace_id: UUID):
class LangSmithTracer(BaseTrace):
def __init__(self, trace_name: str, trace_type: str, project_name: str, trace_id: str):
from langsmith.run_trees import RunTree
self.trace_name = trace_name