mirror of
https://github.com/langgenius/dify.git
synced 2026-03-04 15:26:21 +08:00
66 lines
1.7 KiB
Python
66 lines
1.7 KiB
Python
from collections.abc import Sequence
|
|
from enum import StrEnum, auto
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
from dify_graph.nodes.base import BaseNodeData
|
|
|
|
|
|
class AnswerNodeData(BaseNodeData):
|
|
"""
|
|
Answer Node Data.
|
|
"""
|
|
|
|
answer: str = Field(..., description="answer template string")
|
|
|
|
|
|
class GenerateRouteChunk(BaseModel):
|
|
"""
|
|
Generate Route Chunk.
|
|
"""
|
|
|
|
class ChunkType(StrEnum):
|
|
VAR = auto()
|
|
TEXT = auto()
|
|
|
|
type: ChunkType = Field(..., description="generate route chunk type")
|
|
|
|
|
|
class VarGenerateRouteChunk(GenerateRouteChunk):
|
|
"""
|
|
Var Generate Route Chunk.
|
|
"""
|
|
|
|
type: GenerateRouteChunk.ChunkType = GenerateRouteChunk.ChunkType.VAR
|
|
"""generate route chunk type"""
|
|
value_selector: Sequence[str] = Field(..., description="value selector")
|
|
|
|
|
|
class TextGenerateRouteChunk(GenerateRouteChunk):
|
|
"""
|
|
Text Generate Route Chunk.
|
|
"""
|
|
|
|
type: GenerateRouteChunk.ChunkType = GenerateRouteChunk.ChunkType.TEXT
|
|
"""generate route chunk type"""
|
|
text: str = Field(..., description="text")
|
|
|
|
|
|
class AnswerNodeDoubleLink(BaseModel):
|
|
node_id: str = Field(..., description="node id")
|
|
source_node_ids: list[str] = Field(..., description="source node ids")
|
|
target_node_ids: list[str] = Field(..., description="target node ids")
|
|
|
|
|
|
class AnswerStreamGenerateRoute(BaseModel):
|
|
"""
|
|
AnswerStreamGenerateRoute entity
|
|
"""
|
|
|
|
answer_dependencies: dict[str, list[str]] = Field(
|
|
..., description="answer dependencies (answer node id -> dependent answer node ids)"
|
|
)
|
|
answer_generate_route: dict[str, list[GenerateRouteChunk]] = Field(
|
|
..., description="answer generate route (answer node id -> generate route chunks)"
|
|
)
|