"""Schemas for tracers."""from__future__importannotationsimportdatetimeimportwarningsfromtypingimportAny,OptionalfromuuidimportUUIDfromlangsmithimportRunTreefromlangsmith.schemasimportRunTypeEnumasRunTypeEnumDepfrompydanticimportPydanticDeprecationWarningfrompydantic.v1importBaseModelasBaseModelV1frompydantic.v1importFieldasFieldV1fromlangchain_core._apiimportdeprecated
[docs]@deprecated("0.1.0",alternative="Use string instead.",removal="1.0")defRunTypeEnum()->type[RunTypeEnumDep]:# noqa: N802"""RunTypeEnum."""warnings.warn("RunTypeEnum is deprecated. Please directly use a string instead"" (e.g. 'llm', 'chain', 'tool').",DeprecationWarning,stacklevel=2,)returnRunTypeEnumDep
[docs]@deprecated("0.1.0",removal="1.0")classTracerSessionV1Base(BaseModelV1):"""Base class for TracerSessionV1."""start_time:datetime.datetime=FieldV1(default_factory=datetime.datetime.utcnow)name:Optional[str]=Noneextra:Optional[dict[str,Any]]=None
[docs]@deprecated("0.1.0",removal="1.0")classTracerSessionV1Create(TracerSessionV1Base):"""Create class for TracerSessionV1."""
[docs]@deprecated("0.1.0",removal="1.0")classTracerSessionBase(TracerSessionV1Base):"""Base class for TracerSession."""tenant_id:UUID
[docs]@deprecated("0.1.0",removal="1.0")classTracerSession(TracerSessionBase):"""TracerSessionV1 schema for the V2 API."""id:UUID
[docs]@deprecated("0.1.0",alternative="Run",removal="1.0")classBaseRun(BaseModelV1):"""Base class for Run."""uuid:strparent_uuid:Optional[str]=Nonestart_time:datetime.datetime=FieldV1(default_factory=datetime.datetime.utcnow)end_time:datetime.datetime=FieldV1(default_factory=datetime.datetime.utcnow)extra:Optional[dict[str,Any]]=Noneexecution_order:intchild_execution_order:intserialized:dict[str,Any]session_id:interror:Optional[str]=None
[docs]@deprecated("0.1.0",alternative="Run",removal="1.0")classLLMRun(BaseRun):"""Class for LLMRun."""prompts:list[str]
# Temporarily, remove but we will completely remove LLMRun# response: Optional[LLMResult] = None
[docs]@deprecated("0.1.0",alternative="Run",removal="1.0")classChainRun(BaseRun):"""Class for ChainRun."""inputs:dict[str,Any]outputs:Optional[dict[str,Any]]=Nonechild_llm_runs:list[LLMRun]=FieldV1(default_factory=list)child_chain_runs:list[ChainRun]=FieldV1(default_factory=list)child_tool_runs:list[ToolRun]=FieldV1(default_factory=list)
[docs]@deprecated("0.1.0",alternative="Run",removal="1.0")classToolRun(BaseRun):"""Class for ToolRun."""tool_input:stroutput:Optional[str]=Noneaction:strchild_llm_runs:list[LLMRun]=FieldV1(default_factory=list)child_chain_runs:list[ChainRun]=FieldV1(default_factory=list)child_tool_runs:list[ToolRun]=FieldV1(default_factory=list)
# Begin V2 API SchemasRun=RunTree# For backwards compatibility# TODO: Update once langsmith moves to Pydantic V2 and we can swap Run.model_rebuild# for Run.update_forward_refswithwarnings.catch_warnings():warnings.simplefilter("ignore",category=PydanticDeprecationWarning)ChainRun.update_forward_refs()ToolRun.update_forward_refs()__all__=["BaseRun","ChainRun","LLMRun","Run","RunTypeEnum","ToolRun","TracerSession","TracerSessionBase","TracerSessionV1","TracerSessionV1Base","TracerSessionV1Create",]