mirror of
https://github.com/langgenius/dify.git
synced 2026-02-14 10:01:40 -05:00
103 lines
2.8 KiB
Python
103 lines
2.8 KiB
Python
from typing import Any, Literal
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class SnippetListQuery(BaseModel):
|
|
"""Query parameters for listing snippets."""
|
|
|
|
page: int = Field(default=1, ge=1, le=99999)
|
|
limit: int = Field(default=20, ge=1, le=100)
|
|
keyword: str | None = None
|
|
|
|
|
|
class IconInfo(BaseModel):
|
|
"""Icon information model."""
|
|
|
|
icon: str | None = None
|
|
icon_type: Literal["emoji", "image"] | None = None
|
|
icon_background: str | None = None
|
|
icon_url: str | None = None
|
|
|
|
|
|
class InputFieldDefinition(BaseModel):
|
|
"""Input field definition for snippet parameters."""
|
|
|
|
default: str | None = None
|
|
hint: bool | None = None
|
|
label: str | None = None
|
|
max_length: int | None = None
|
|
options: list[str] | None = None
|
|
placeholder: str | None = None
|
|
required: bool | None = None
|
|
type: str | None = None # e.g., "text-input"
|
|
|
|
|
|
class CreateSnippetPayload(BaseModel):
|
|
"""Payload for creating a new snippet."""
|
|
|
|
name: str = Field(..., min_length=1, max_length=255)
|
|
description: str | None = Field(default=None, max_length=2000)
|
|
type: Literal["node", "group"] = "node"
|
|
icon_info: IconInfo | None = None
|
|
graph: dict[str, Any] | None = None
|
|
input_fields: list[InputFieldDefinition] | None = Field(default_factory=list)
|
|
|
|
|
|
class UpdateSnippetPayload(BaseModel):
|
|
"""Payload for updating a snippet."""
|
|
|
|
name: str | None = Field(default=None, min_length=1, max_length=255)
|
|
description: str | None = Field(default=None, max_length=2000)
|
|
icon_info: IconInfo | None = None
|
|
|
|
|
|
class SnippetDraftSyncPayload(BaseModel):
|
|
"""Payload for syncing snippet draft workflow."""
|
|
|
|
graph: dict[str, Any]
|
|
hash: str | None = None
|
|
environment_variables: list[dict[str, Any]] | None = None
|
|
conversation_variables: list[dict[str, Any]] | None = None
|
|
input_variables: list[dict[str, Any]] | None = None
|
|
|
|
|
|
class WorkflowRunQuery(BaseModel):
|
|
"""Query parameters for workflow runs."""
|
|
|
|
last_id: str | None = None
|
|
limit: int = Field(default=20, ge=1, le=100)
|
|
|
|
|
|
class SnippetDraftRunPayload(BaseModel):
|
|
"""Payload for running snippet draft workflow."""
|
|
|
|
inputs: dict[str, Any]
|
|
files: list[dict[str, Any]] | None = None
|
|
|
|
|
|
class SnippetDraftNodeRunPayload(BaseModel):
|
|
"""Payload for running a single node in snippet draft workflow."""
|
|
|
|
inputs: dict[str, Any]
|
|
query: str = ""
|
|
files: list[dict[str, Any]] | None = None
|
|
|
|
|
|
class SnippetIterationNodeRunPayload(BaseModel):
|
|
"""Payload for running an iteration node in snippet draft workflow."""
|
|
|
|
inputs: dict[str, Any] | None = None
|
|
|
|
|
|
class SnippetLoopNodeRunPayload(BaseModel):
|
|
"""Payload for running a loop node in snippet draft workflow."""
|
|
|
|
inputs: dict[str, Any] | None = None
|
|
|
|
|
|
class PublishWorkflowPayload(BaseModel):
|
|
"""Payload for publishing snippet workflow."""
|
|
|
|
knowledge_base_setting: dict[str, Any] | None = None
|