forked from Archives/langchain
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
2.0 KiB
Python
77 lines
2.0 KiB
Python
"""Schemas for tracers."""
|
|
from __future__ import annotations
|
|
|
|
import datetime
|
|
from typing import Any, Dict, List, Optional, Union
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
from langchain.schema import LLMResult
|
|
|
|
|
|
class TracerSessionBase(BaseModel):
|
|
"""Base class for TracerSession."""
|
|
|
|
start_time: datetime.datetime = Field(default_factory=datetime.datetime.utcnow)
|
|
name: Optional[str] = None
|
|
extra: Optional[Dict[str, Any]] = None
|
|
|
|
|
|
class TracerSessionCreate(TracerSessionBase):
|
|
"""Create class for TracerSession."""
|
|
|
|
pass
|
|
|
|
|
|
class TracerSession(TracerSessionBase):
|
|
"""TracerSession schema."""
|
|
|
|
id: int
|
|
|
|
|
|
class BaseRun(BaseModel):
|
|
"""Base class for Run."""
|
|
|
|
id: Optional[Union[int, str]] = None
|
|
start_time: datetime.datetime = Field(default_factory=datetime.datetime.utcnow)
|
|
end_time: datetime.datetime = Field(default_factory=datetime.datetime.utcnow)
|
|
extra: Optional[Dict[str, Any]] = None
|
|
execution_order: int
|
|
serialized: Dict[str, Any]
|
|
session_id: int
|
|
error: Optional[str] = None
|
|
|
|
|
|
class LLMRun(BaseRun):
|
|
"""Class for LLMRun."""
|
|
|
|
prompts: List[str]
|
|
response: Optional[LLMResult] = None
|
|
|
|
|
|
class ChainRun(BaseRun):
|
|
"""Class for ChainRun."""
|
|
|
|
inputs: Dict[str, Any]
|
|
outputs: Optional[Dict[str, Any]] = None
|
|
child_llm_runs: List[LLMRun] = Field(default_factory=list)
|
|
child_chain_runs: List[ChainRun] = Field(default_factory=list)
|
|
child_tool_runs: List[ToolRun] = Field(default_factory=list)
|
|
child_runs: List[Union[LLMRun, ChainRun, ToolRun]] = Field(default_factory=list)
|
|
|
|
|
|
class ToolRun(BaseRun):
|
|
"""Class for ToolRun."""
|
|
|
|
tool_input: str
|
|
output: Optional[str] = None
|
|
action: str
|
|
child_llm_runs: List[LLMRun] = Field(default_factory=list)
|
|
child_chain_runs: List[ChainRun] = Field(default_factory=list)
|
|
child_tool_runs: List[ToolRun] = Field(default_factory=list)
|
|
child_runs: List[Union[LLMRun, ChainRun, ToolRun]] = Field(default_factory=list)
|
|
|
|
|
|
ChainRun.update_forward_refs()
|
|
ToolRun.update_forward_refs()
|