File size: 504 Bytes
ed4d993
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
from __future__ import annotations

from enum import Enum
from typing import Set

from langchain_experimental.pydantic_v1 import BaseModel, Field


class ThoughtValidity(Enum):
    """Enum for the validity of a thought."""

    VALID_INTERMEDIATE = 0
    VALID_FINAL = 1
    INVALID = 2


class Thought(BaseModel):
    """A thought in the ToT."""

    text: str
    validity: ThoughtValidity
    children: Set[Thought] = Field(default_factory=set)

    def __hash__(self) -> int:
        return id(self)